From 026f5e2f26ab1671c44d3f16f83fb42de7c9ac10 Mon Sep 17 00:00:00 2001 From: Mitsuhiro Koga Date: Tue, 14 Feb 2017 12:09:41 +0900 Subject: [PATCH 1/2] Also move the LFS directory --- .../controller/RepositorySettingsController.scala | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala b/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala index 6a349d942..0398386f6 100644 --- a/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala +++ b/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala @@ -125,6 +125,12 @@ 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)) + } + } } flash += "info" -> "Repository settings has been updated." redirect(s"/${repository.owner}/${form.repositoryName}/settings/options") @@ -323,6 +329,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)) + + } + } } } redirect(s"/${form.newOwner}/${repository.name}") From ca0302723dc6d25c475a28a21e11f2dabc4e1b56 Mon Sep 17 00:00:00 2001 From: Mitsuhiro Koga Date: Tue, 14 Feb 2017 12:28:11 +0900 Subject: [PATCH 2/2] Delete if parent folder is empty --- .../core/controller/RepositorySettingsController.scala | 7 +++++-- src/main/scala/gitbucket/core/util/FileUtil.scala | 6 ++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala b/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala index 0398386f6..53b7da270 100644 --- a/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala +++ b/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala @@ -129,6 +129,7 @@ trait RepositorySettingsControllerBase extends ControllerBase { defining(getLfsDir(repository.owner, repository.name)){ dir => if(dir.isDirectory()) { FileUtils.moveDirectory(dir, getLfsDir(repository.owner, form.repositoryName)) + FileUtil.deleteDirectoryIfEmpty(dir.getParentFile()) } } } @@ -333,7 +334,7 @@ trait RepositorySettingsControllerBase extends ControllerBase { defining(getLfsDir(repository.owner, repository.name)){ dir => if(dir.isDirectory()) { FileUtils.moveDirectory(dir, getLfsDir(form.newOwner, repository.name)) - + FileUtil.deleteDirectoryIfEmpty(dir.getParentFile()) } } } @@ -351,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}") }) diff --git a/src/main/scala/gitbucket/core/util/FileUtil.scala b/src/main/scala/gitbucket/core/util/FileUtil.scala index 8ca49e5be..d6947c0b0 100644 --- a/src/main/scala/gitbucket/core/util/FileUtil.scala +++ b/src/main/scala/gitbucket/core/util/FileUtil.scala @@ -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) + } + } }