Merge pull request #1453 from shiena/move_lfs_dir

Failure to clone LFS file when repository rename or transfer
This commit is contained in:
Naoki Takezoe
2017-02-14 16:36:19 +09:00
committed by GitHub
2 changed files with 23 additions and 1 deletions

View File

@@ -125,6 +125,13 @@ trait RepositorySettingsControllerBase extends ControllerBase {
defining(getWikiRepositoryDir(repository.owner, repository.name)){ dir =>
FileUtils.moveDirectory(dir, getWikiRepositoryDir(repository.owner, form.repositoryName))
}
// Move lfs directory
defining(getLfsDir(repository.owner, repository.name)){ dir =>
if(dir.isDirectory()) {
FileUtils.moveDirectory(dir, getLfsDir(repository.owner, form.repositoryName))
FileUtil.deleteDirectoryIfEmpty(dir.getParentFile())
}
}
}
flash += "info" -> "Repository settings has been updated."
redirect(s"/${repository.owner}/${form.repositoryName}/settings/options")
@@ -323,6 +330,13 @@ trait RepositorySettingsControllerBase extends ControllerBase {
defining(getWikiRepositoryDir(repository.owner, repository.name)){ dir =>
FileUtils.moveDirectory(dir, getWikiRepositoryDir(form.newOwner, repository.name))
}
// Move lfs directory
defining(getLfsDir(repository.owner, repository.name)){ dir =>
if(dir.isDirectory()) {
FileUtils.moveDirectory(dir, getLfsDir(form.newOwner, repository.name))
FileUtil.deleteDirectoryIfEmpty(dir.getParentFile())
}
}
}
}
redirect(s"/${form.newOwner}/${repository.name}")
@@ -338,7 +352,9 @@ trait RepositorySettingsControllerBase extends ControllerBase {
FileUtils.deleteDirectory(getRepositoryDir(repository.owner, repository.name))
FileUtils.deleteDirectory(getWikiRepositoryDir(repository.owner, repository.name))
FileUtils.deleteDirectory(getTemporaryDir(repository.owner, repository.name))
FileUtils.deleteDirectory(getLfsDir(repository.owner, repository.name))
val lfsDir = getLfsDir(repository.owner, repository.name)
FileUtils.deleteDirectory(lfsDir)
FileUtil.deleteDirectoryIfEmpty(lfsDir.getParentFile())
}
redirect(s"/${repository.owner}")
})

View File

@@ -67,4 +67,10 @@ object FileUtil {
Directory.getLfsDir(owner, repository) + "/" + oid
def readableSize(size: Long): String = FileUtils.byteCountToDisplaySize(size)
def deleteDirectoryIfEmpty(dir: File): Unit = {
if(dir.isDirectory() && dir.list().isEmpty) {
FileUtils.deleteDirectory(dir)
}
}
}