diff --git a/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala b/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala index 6a349d9..53b7da2 100644 --- a/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala +++ b/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala @@ -125,6 +125,13 @@ 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 @@ 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 @@ 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}") }) diff --git a/src/main/scala/gitbucket/core/util/FileUtil.scala b/src/main/scala/gitbucket/core/util/FileUtil.scala index 8ca49e5..d6947c0 100644 --- a/src/main/scala/gitbucket/core/util/FileUtil.scala +++ b/src/main/scala/gitbucket/core/util/FileUtil.scala @@ -67,4 +67,10 @@ 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) + } + } }