diff --git a/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala b/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala index 53b7da2..cd0371a 100644 --- a/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala +++ b/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala @@ -119,19 +119,24 @@ renameRepository(repository.owner, repository.name, repository.owner, form.repositoryName) // Move git repository defining(getRepositoryDir(repository.owner, repository.name)){ dir => - FileUtils.moveDirectory(dir, getRepositoryDir(repository.owner, form.repositoryName)) + if(dir.isDirectory){ + FileUtils.moveDirectory(dir, getRepositoryDir(repository.owner, form.repositoryName)) + } } // Move wiki repository defining(getWikiRepositoryDir(repository.owner, repository.name)){ dir => - FileUtils.moveDirectory(dir, getWikiRepositoryDir(repository.owner, form.repositoryName)) + if(dir.isDirectory) { + FileUtils.moveDirectory(dir, getWikiRepositoryDir(repository.owner, form.repositoryName)) + } } // Move lfs directory defining(getLfsDir(repository.owner, repository.name)){ dir => - if(dir.isDirectory()) { + if(dir.isDirectory) { FileUtils.moveDirectory(dir, getLfsDir(repository.owner, form.repositoryName)) - FileUtil.deleteDirectoryIfEmpty(dir.getParentFile()) } } + // Delete parent directory + FileUtil.deleteDirectoryIfEmpty(getRepositoryFilesDir(repository.owner, repository.name)) } flash += "info" -> "Repository settings has been updated." redirect(s"/${repository.owner}/${form.repositoryName}/settings/options") @@ -324,19 +329,24 @@ renameRepository(repository.owner, repository.name, form.newOwner, repository.name) // Move git repository defining(getRepositoryDir(repository.owner, repository.name)){ dir => - FileUtils.moveDirectory(dir, getRepositoryDir(form.newOwner, repository.name)) + if(dir.isDirectory){ + FileUtils.moveDirectory(dir, getRepositoryDir(form.newOwner, repository.name)) + } } // Move wiki repository defining(getWikiRepositoryDir(repository.owner, repository.name)){ dir => - FileUtils.moveDirectory(dir, getWikiRepositoryDir(form.newOwner, repository.name)) + if(dir.isDirectory) { + 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()) } } + // Delere parent directory + FileUtil.deleteDirectoryIfEmpty(getRepositoryFilesDir(repository.owner, repository.name)) } } redirect(s"/${form.newOwner}/${repository.name}") diff --git a/src/main/scala/gitbucket/core/util/Directory.scala b/src/main/scala/gitbucket/core/util/Directory.scala index e73bca8..e54a786 100644 --- a/src/main/scala/gitbucket/core/util/Directory.scala +++ b/src/main/scala/gitbucket/core/util/Directory.scala @@ -43,21 +43,28 @@ new File(s"${RepositoryHome}/${owner}/${repository}.git") /** + * Directory for repository files. + */ + def getRepositoryFilesDir(owner: String, repository: String): File = + new File(s"${RepositoryHome}/${owner}/${repository}") + + /** * Directory for files which are attached to issue. */ def getAttachedDir(owner: String, repository: String): File = - new File(s"${RepositoryHome}/${owner}/${repository}/comments") + new File(getRepositoryFilesDir(owner, repository), "comments") /** * Directory for files which are attached to issue. */ def getLfsDir(owner: String, repository: String): File = - new File(s"${RepositoryHome}/${owner}/${repository}/lfs") + new File(getRepositoryFilesDir(owner, repository), "lfs") /** * Directory for uploaded files by the specified user. */ - def getUserUploadDir(userName: String): File = new File(s"${GitBucketHome}/data/${userName}/files") + def getUserUploadDir(userName: String): File = + new File(s"${GitBucketHome}/data/${userName}/files") /** * Root of temporary directories for the upload file. @@ -74,7 +81,8 @@ /** * Root of plugin cache directory. Plugin repositories are cloned into this directory. */ - def getPluginCacheDir(): File = new File(s"${TemporaryHome}/_plugins") + def getPluginCacheDir(): File = + new File(s"${TemporaryHome}/_plugins") /** * Substance directory of the wiki repository.