diff --git a/src/main/scala/app/CreateRepositoryController.scala b/src/main/scala/app/CreateRepositoryController.scala index 1e51caa..e10e5bb 100644 --- a/src/main/scala/app/CreateRepositoryController.scala +++ b/src/main/scala/app/CreateRepositoryController.scala @@ -1,7 +1,7 @@ package app import util.Directory._ -import util.UsersAuthenticator +import util.{JGitUtil, UsersAuthenticator} import service._ import java.io.File import org.eclipse.jgit.api.Git @@ -56,13 +56,7 @@ // Create the actual repository val gitdir = getRepositoryDir(loginUserName, form.name) - val repository = new RepositoryBuilder().setGitDir(gitdir).setBare.build - - repository.create - - val config = repository.getConfig - config.setBoolean("http", null, "receivepack", true) - config.save + JGitUtil.initRepository(gitdir) if(form.createReadme){ val tmpdir = getInitRepositoryDir(loginUserName, form.name) @@ -73,9 +67,13 @@ // Create README.md FileUtils.writeStringToFile(new File(tmpdir, "README.md"), if(form.description.nonEmpty){ - form.name + "\n===============\n\n" + form.description.get + form.name + "\n" + + "===============\n" + + "\n" + + form.description.get } else { - form.name + "\n===============\n" + form.name + "\n" + + "===============\n" }, "UTF-8") val git = Git.open(tmpdir) @@ -95,7 +93,7 @@ recordCreateRepositoryActivity(loginUserName, form.name, loginUserName) // redirect to the repository - redirect("/%s/%s".format(loginUserName, form.name)) + redirect(s"/${loginUserName}/${form.name}") }) /** diff --git a/src/main/scala/service/WikiService.scala b/src/main/scala/service/WikiService.scala index 76d742c..8c02515 100644 --- a/src/main/scala/service/WikiService.scala +++ b/src/main/scala/service/WikiService.scala @@ -68,12 +68,10 @@ lock(owner.userName, repository){ val dir = Directory.getWikiRepositoryDir(owner.userName, repository) if(!dir.exists){ - val repo = new RepositoryBuilder().setGitDir(dir).setBare.build try { - repo.create - saveWikiPage(owner.userName, repository, "Home", "Home", "Welcome to the %s wiki!!".format(repository), owner, "Initial Commit") + JGitUtil.initRepository(dir) + saveWikiPage(owner.userName, repository, "Home", "Home", s"Welcome to the ${repository} wiki!!", owner, "Initial Commit") } finally { - repo.close // once delete cloned repository because initial cloned repository does not have 'branch.master.merge' FileUtils.deleteDirectory(Directory.getWikiWorkDir(owner.userName, repository)) } diff --git a/src/main/scala/util/JGitUtil.scala b/src/main/scala/util/JGitUtil.scala index e69fcd3..9bde1e8 100644 --- a/src/main/scala/util/JGitUtil.scala +++ b/src/main/scala/util/JGitUtil.scala @@ -502,4 +502,20 @@ } } + def initRepository(dir: java.io.File): Unit = { + val repository = new RepositoryBuilder().setGitDir(dir).setBare.build + try { + repository.create + setReceivePack(repository) + } finally { + repository.close + } + } + + private def setReceivePack(repository: org.eclipse.jgit.lib.Repository): Unit = { + val config = repository.getConfig + config.setBoolean("http", null, "receivepack", true) + config.save + } + } \ No newline at end of file