From 0a6e50cbbe35f3a1cf7e33bfd1b907fcc3583e1e Mon Sep 17 00:00:00 2001 From: Naoki Takezoe Date: Sat, 28 Feb 2015 12:43:50 +0900 Subject: [PATCH] Compare view supports diff for commit id, not only branch name --- .../scala/app/PullRequestsController.scala | 29 ++++++++++--------- src/main/twirl/pulls/commits.scala.html | 2 +- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/main/scala/app/PullRequestsController.scala b/src/main/scala/app/PullRequestsController.scala index 23ed289c0..675778b98 100644 --- a/src/main/scala/app/PullRequestsController.scala +++ b/src/main/scala/app/PullRequestsController.scala @@ -242,8 +242,8 @@ trait PullRequestsControllerBase extends ControllerBase { get("/:owner/:repository/compare/*...*")(referrersOnly { forkedRepository => val Seq(origin, forked) = multiParams("splat") - val (originOwner, tmpOriginBranch) = parseCompareIdentifie(origin, forkedRepository.owner) - val (forkedOwner, tmpForkedBranch) = parseCompareIdentifie(forked, forkedRepository.owner) + val (originOwner, originId) = parseCompareIdentifie(origin, forkedRepository.owner) + val (forkedOwner, forkedId) = parseCompareIdentifie(forked, forkedRepository.owner) (for( originRepositoryName <- if(originOwner == forkedOwner){ @@ -259,15 +259,18 @@ trait PullRequestsControllerBase extends ControllerBase { Git.open(getRepositoryDir(originRepository.owner, originRepository.name)), Git.open(getRepositoryDir(forkedRepository.owner, forkedRepository.name)) ){ case (oldGit, newGit) => - val originBranch = JGitUtil.getDefaultBranch(oldGit, originRepository, tmpOriginBranch).get._2 - val forkedBranch = JGitUtil.getDefaultBranch(newGit, forkedRepository, tmpForkedBranch).get._2 - - val forkedId = JGitUtil.getForkedCommitId(oldGit, newGit, - originRepository.owner, originRepository.name, originBranch, - forkedRepository.owner, forkedRepository.name, forkedBranch) - - val oldId = oldGit.getRepository.resolve(forkedId) - val newId = newGit.getRepository.resolve(forkedBranch) + val (oldId, newId) = + if(originRepository.branchList.contains(originId) && forkedRepository.branchList.contains(forkedId)){ + // Branch name + val forkedId = JGitUtil.getForkedCommitId(oldGit, newGit, + originRepository.owner, originRepository.name, originId, + forkedRepository.owner, forkedRepository.name, forkedId) + + (oldGit.getRepository.resolve(forkedId), newGit.getRepository.resolve(forkedId)) + } else { + // Commit id + (oldGit.getRepository.resolve(originId), newGit.getRepository.resolve(forkedId)) + } val (commits, diffs) = getRequestCompareInfo( originRepository.owner, originRepository.name, oldId.getName, @@ -281,8 +284,8 @@ trait PullRequestsControllerBase extends ControllerBase { case _ => (forkedRepository.owner, forkedRepository.name) :: getForkedRepositories(forkedRepository.owner, forkedRepository.name) }, commits.flatten.map(commit => getCommitComments(forkedRepository.owner, forkedRepository.name, commit.id, false)).flatten.toList, - originBranch, - forkedBranch, + originId, + forkedId, oldId.getName, newId.getName, forkedRepository, diff --git a/src/main/twirl/pulls/commits.scala.html b/src/main/twirl/pulls/commits.scala.html index 2d729b5b9..a81588f65 100644 --- a/src/main/twirl/pulls/commits.scala.html +++ b/src/main/twirl/pulls/commits.scala.html @@ -7,7 +7,7 @@ @commits.map { day => - + @day.map { commit =>
@date(day.head.commitTime)@date(day.head.commitTime)