mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-14 17:35:50 +01:00
Compare view supports diff for commit id, not only branch name
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user