Compare view supports diff for commit id, not only branch name

This commit is contained in:
Naoki Takezoe
2015-02-28 12:43:50 +09:00
parent 3732963d4b
commit 0a6e50cbbe
2 changed files with 17 additions and 14 deletions

View File

@@ -242,8 +242,8 @@ trait PullRequestsControllerBase extends ControllerBase {
get("/:owner/:repository/compare/*...*")(referrersOnly { forkedRepository => get("/:owner/:repository/compare/*...*")(referrersOnly { forkedRepository =>
val Seq(origin, forked) = multiParams("splat") val Seq(origin, forked) = multiParams("splat")
val (originOwner, tmpOriginBranch) = parseCompareIdentifie(origin, forkedRepository.owner) val (originOwner, originId) = parseCompareIdentifie(origin, forkedRepository.owner)
val (forkedOwner, tmpForkedBranch) = parseCompareIdentifie(forked, forkedRepository.owner) val (forkedOwner, forkedId) = parseCompareIdentifie(forked, forkedRepository.owner)
(for( (for(
originRepositoryName <- if(originOwner == forkedOwner){ originRepositoryName <- if(originOwner == forkedOwner){
@@ -259,15 +259,18 @@ trait PullRequestsControllerBase extends ControllerBase {
Git.open(getRepositoryDir(originRepository.owner, originRepository.name)), Git.open(getRepositoryDir(originRepository.owner, originRepository.name)),
Git.open(getRepositoryDir(forkedRepository.owner, forkedRepository.name)) Git.open(getRepositoryDir(forkedRepository.owner, forkedRepository.name))
){ case (oldGit, newGit) => ){ case (oldGit, newGit) =>
val originBranch = JGitUtil.getDefaultBranch(oldGit, originRepository, tmpOriginBranch).get._2 val (oldId, newId) =
val forkedBranch = JGitUtil.getDefaultBranch(newGit, forkedRepository, tmpForkedBranch).get._2 if(originRepository.branchList.contains(originId) && forkedRepository.branchList.contains(forkedId)){
// Branch name
val forkedId = JGitUtil.getForkedCommitId(oldGit, newGit, val forkedId = JGitUtil.getForkedCommitId(oldGit, newGit,
originRepository.owner, originRepository.name, originBranch, originRepository.owner, originRepository.name, originId,
forkedRepository.owner, forkedRepository.name, forkedBranch) forkedRepository.owner, forkedRepository.name, forkedId)
val oldId = oldGit.getRepository.resolve(forkedId) (oldGit.getRepository.resolve(forkedId), newGit.getRepository.resolve(forkedId))
val newId = newGit.getRepository.resolve(forkedBranch) } else {
// Commit id
(oldGit.getRepository.resolve(originId), newGit.getRepository.resolve(forkedId))
}
val (commits, diffs) = getRequestCompareInfo( val (commits, diffs) = getRequestCompareInfo(
originRepository.owner, originRepository.name, oldId.getName, originRepository.owner, originRepository.name, oldId.getName,
@@ -281,8 +284,8 @@ trait PullRequestsControllerBase extends ControllerBase {
case _ => (forkedRepository.owner, forkedRepository.name) :: getForkedRepositories(forkedRepository.owner, forkedRepository.name) case _ => (forkedRepository.owner, forkedRepository.name) :: getForkedRepositories(forkedRepository.owner, forkedRepository.name)
}, },
commits.flatten.map(commit => getCommitComments(forkedRepository.owner, forkedRepository.name, commit.id, false)).flatten.toList, commits.flatten.map(commit => getCommitComments(forkedRepository.owner, forkedRepository.name, commit.id, false)).flatten.toList,
originBranch, originId,
forkedBranch, forkedId,
oldId.getName, oldId.getName,
newId.getName, newId.getName,
forkedRepository, forkedRepository,

View File

@@ -7,7 +7,7 @@
<table class="table table-file-list" style="border: 1px solid silver;"> <table class="table table-file-list" style="border: 1px solid silver;">
@commits.map { day => @commits.map { day =>
<tr> <tr>
<th colspan="3" class="box-header" style="font-weight: normal;">@date(day.head.commitTime)</th> <th colspan="4" class="box-header" style="font-weight: normal;">@date(day.head.commitTime)</th>
</tr> </tr>
@day.map { commit => @day.map { commit =>
<tr> <tr>