diff --git a/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala b/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala index 0807cd4..f479d07 100644 --- a/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala +++ b/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala @@ -148,29 +148,6 @@ if (repository.name != form.repositoryName) { // Update database renameRepository(repository.owner, repository.name, repository.owner, form.repositoryName) - // Move git repository - defining(getRepositoryDir(repository.owner, repository.name)) { dir => - if (dir.isDirectory) { - FileUtils.moveDirectory(dir, getRepositoryDir(repository.owner, form.repositoryName)) - } - } - // Move wiki repository - defining(getWikiRepositoryDir(repository.owner, repository.name)) { dir => - if (dir.isDirectory) { - FileUtils.moveDirectory(dir, getWikiRepositoryDir(repository.owner, form.repositoryName)) - } - } - // Move files directory - defining(getRepositoryFilesDir(repository.owner, repository.name)) { dir => - if (dir.isDirectory) { - FileUtils.moveDirectory(dir, getRepositoryFilesDir(repository.owner, form.repositoryName)) - } - } - // Delete parent directory - FileUtil.deleteDirectoryIfEmpty(getRepositoryFilesDir(repository.owner, repository.name)) - - // Call hooks - PluginRegistry().getRepositoryHooks.foreach(_.renamed(repository.owner, repository.name, form.repositoryName)) } flash += "info" -> "Repository settings has been updated." redirect(s"/${repository.owner}/${form.repositoryName}/settings/options") @@ -395,27 +372,6 @@ LockUtil.lock(s"${repository.owner}/${repository.name}") { // Update database renameRepository(repository.owner, repository.name, form.newOwner, repository.name) - // Move git repository - defining(getRepositoryDir(repository.owner, repository.name)) { dir => - if (dir.isDirectory) { - FileUtils.moveDirectory(dir, getRepositoryDir(form.newOwner, repository.name)) - } - } - // Move wiki repository - defining(getWikiRepositoryDir(repository.owner, repository.name)) { dir => - if (dir.isDirectory) { - FileUtils.moveDirectory(dir, getWikiRepositoryDir(form.newOwner, repository.name)) - } - } - // Move files directory - defining(getRepositoryFilesDir(repository.owner, repository.name)) { dir => - if (dir.isDirectory) { - FileUtils.moveDirectory(dir, getRepositoryFilesDir(form.newOwner, repository.name)) - } - } - - // Call hooks - PluginRegistry().getRepositoryHooks.foreach(_.transferred(repository.owner, form.newOwner, repository.name)) } } redirect(s"/${form.newOwner}/${repository.name}") diff --git a/src/main/scala/gitbucket/core/service/RepositoryService.scala b/src/main/scala/gitbucket/core/service/RepositoryService.scala index 08f077d..f86adf0 100644 --- a/src/main/scala/gitbucket/core/service/RepositoryService.scala +++ b/src/main/scala/gitbucket/core/service/RepositoryService.scala @@ -3,11 +3,14 @@ import gitbucket.core.controller.Context import gitbucket.core.util._ import gitbucket.core.util.SyntaxSugars._ -import gitbucket.core.model.{Account, Collaborator, Repository, RepositoryOptions, Role, ReleaseTag} +import gitbucket.core.model.{Account, Collaborator, ReleaseTag, Repository, RepositoryOptions, Role} import gitbucket.core.model.Profile._ import gitbucket.core.model.Profile.profile.blockingApi._ import gitbucket.core.model.Profile.dateColumnType +import gitbucket.core.plugin.PluginRegistry +import gitbucket.core.util.Directory.{getRepositoryDir, getRepositoryFilesDir, getWikiRepositoryDir} import gitbucket.core.util.JGitUtil.FileInfo +import org.apache.commons.io.FileUtils import org.eclipse.jgit.api.Git trait RepositoryService { self: AccountService => @@ -238,6 +241,29 @@ ) ) } + // Move git repository + defining(getRepositoryDir(repository.owner, repository.name)) { dir => + if (dir.isDirectory) { + FileUtils.moveDirectory(dir, getRepositoryDir(repository.owner, form.repositoryName)) + } + } + // Move wiki repository + defining(getWikiRepositoryDir(repository.owner, repository.name)) { dir => + if (dir.isDirectory) { + FileUtils.moveDirectory(dir, getWikiRepositoryDir(repository.owner, form.repositoryName)) + } + } + // Move files directory + defining(getRepositoryFilesDir(repository.owner, repository.name)) { dir => + if (dir.isDirectory) { + FileUtils.moveDirectory(dir, getRepositoryFilesDir(repository.owner, form.repositoryName)) + } + } + // Delete parent directory + FileUtil.deleteDirectoryIfEmpty(getRepositoryFilesDir(repository.owner, repository.name)) + + // Call hooks + PluginRegistry().getRepositoryHooks.foreach(_.renamed(repository.owner, repository.name, form.repositoryName)) } } }