(refs #142)Fix NoSuchElementException for empty repository.

This commit is contained in:
takezoe
2013-10-11 02:42:07 +09:00
parent c16b89b0be
commit cf79ac1069
2 changed files with 10 additions and 6 deletions

View File

@@ -186,8 +186,11 @@ trait PullRequestsControllerBase extends ControllerBase {
} }
case _ => { case _ => {
using(Git.open(getRepositoryDir(forkedRepository.owner, forkedRepository.name))){ git => using(Git.open(getRepositoryDir(forkedRepository.owner, forkedRepository.name))){ git =>
val defaultBranch = JGitUtil.getDefaultBranch(git, forkedRepository).get._2 JGitUtil.getDefaultBranch(git, forkedRepository).map { case (_, defaultBranch) =>
redirect(s"${context.path}/${forkedRepository.owner}/${forkedRepository.name}/compare/${defaultBranch}...${defaultBranch}") redirect(s"${context.path}/${forkedRepository.owner}/${forkedRepository.name}/compare/${defaultBranch}...${defaultBranch}")
} getOrElse {
redirect(s"${context.path}/${forkedRepository.owner}/${forkedRepository.name}")
}
} }
} }
} }

View File

@@ -453,10 +453,11 @@ object JGitUtil {
def getDefaultBranch(git: Git, repository: RepositoryService.RepositoryInfo, def getDefaultBranch(git: Git, repository: RepositoryService.RepositoryInfo,
revstr: String = ""): Option[(ObjectId, String)] = { revstr: String = ""): Option[(ObjectId, String)] = {
Seq( Seq(
if(revstr.isEmpty) repository.repository.defaultBranch else revstr, Some(if(revstr.isEmpty) repository.repository.defaultBranch else revstr),
repository.branchList.head repository.branchList.headOption
).map { rev => ).flatMap {
(git.getRepository.resolve(rev), rev) case Some(rev) => Some((git.getRepository.resolve(rev), rev))
case None => None
}.find(_._1 != null) }.find(_._1 != null)
} }