diff --git a/src/main/scala/gitbucket/core/controller/AccountController.scala b/src/main/scala/gitbucket/core/controller/AccountController.scala index b01c69e..c95f4fc 100644 --- a/src/main/scala/gitbucket/core/controller/AccountController.scala +++ b/src/main/scala/gitbucket/core/controller/AccountController.scala @@ -2,7 +2,7 @@ import gitbucket.core.account.html import gitbucket.core.helper -import gitbucket.core.model.{GroupMember, Role, WebHook, WebHookContentType, AccountWebHook, RepositoryWebHook, RepositoryWebHookEvent} +import gitbucket.core.model.{AccountWebHook, GroupMember, RepositoryWebHook, RepositoryWebHookEvent, Role, WebHook, WebHookContentType} import gitbucket.core.plugin.PluginRegistry import gitbucket.core.service._ import gitbucket.core.service.WebHookService._ @@ -13,6 +13,7 @@ import gitbucket.core.util.StringUtil._ import gitbucket.core.util._ import io.github.gitbucket.scalatra.forms._ +import org.apache.commons.io.FileUtils import org.scalatra.i18n.Messages import org.scalatra.BadRequest @@ -604,6 +605,12 @@ getWikiRepositoryDir(repository.owner, repository.name), getWikiRepositoryDir(accountName, repository.name)) + // Copy files + FileUtils.copyDirectory( + Directory.getRepositoryFilesDir(repository.owner, repository.name), + Directory.getRepositoryFilesDir(accountName, repository.name) + ) + // Record activity recordForkActivity(repository.owner, repository.name, loginUserName, accountName) diff --git a/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala b/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala index 7b154ce..7c4bc5e 100644 --- a/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala +++ b/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala @@ -133,21 +133,12 @@ FileUtils.moveDirectory(dir, getWikiRepositoryDir(repository.owner, form.repositoryName)) } } - // Move lfs directory - defining(getLfsDir(repository.owner, repository.name)){ dir => + // Move files directory + defining(getRepositoryFilesDir(repository.owner, repository.name)){ dir => if(dir.isDirectory) { - FileUtils.moveDirectory(dir, getLfsDir(repository.owner, form.repositoryName)) + FileUtils.moveDirectory(dir, getRepositoryFilesDir(repository.owner, form.repositoryName)) } } - // Move attached directory - defining(getAttachedDir(repository.owner, repository.name)){ dir => - if(dir.isDirectory) { - FileUtils.moveDirectory(dir, getAttachedDir(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)) } diff --git a/src/main/scala/gitbucket/core/service/RepositoryService.scala b/src/main/scala/gitbucket/core/service/RepositoryService.scala index a2fe53d..e912e3f 100644 --- a/src/main/scala/gitbucket/core/service/RepositoryService.scala +++ b/src/main/scala/gitbucket/core/service/RepositoryService.scala @@ -59,8 +59,8 @@ (Repositories filter { t => t.byRepository(oldUserName, oldRepositoryName) } firstOption).map { repository => Repositories insert repository.copy(userName = newUserName, repositoryName = newRepositoryName) - val webHooks = RepositoryWebHooks .filter(_.byRepository(oldUserName, oldRepositoryName)).list - val webHookEvents = RepositoryWebHookEvents .filter(_.byRepository(oldUserName, oldRepositoryName)).list + val webHooks = RepositoryWebHooks .filter(_.byRepository(oldUserName, oldRepositoryName)).list + val webHookEvents = RepositoryWebHookEvents.filter(_.byRepository(oldUserName, oldRepositoryName)).list val milestones = Milestones .filter(_.byRepository(oldUserName, oldRepositoryName)).list val issueId = IssueId .filter(_.byRepository(oldUserName, oldRepositoryName)).list val issues = Issues .filter(_.byRepository(oldUserName, oldRepositoryName)).list