Fix files/commits of merged PRs (#2937)
This commit is contained in:
parent
183da4c2c1
commit
40c545ddbc
1 changed files with 30 additions and 8 deletions
|
@ -257,12 +257,24 @@ func PrepareMergedViewPullInfo(ctx *context.Context, issue *models.Issue) {
|
||||||
setMergeTarget(ctx, pull)
|
setMergeTarget(ctx, pull)
|
||||||
ctx.Data["HasMerged"] = true
|
ctx.Data["HasMerged"] = true
|
||||||
|
|
||||||
ctx.Data["NumCommits"], err = ctx.Repo.GitRepo.CommitsCountBetween(pull.MergeBase, pull.MergedCommitID)
|
mergedCommit, err := ctx.Repo.GitRepo.GetCommit(pull.MergedCommitID)
|
||||||
|
if err != nil {
|
||||||
|
ctx.Handle(500, "GetCommit", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// the ID of the last commit in the PR (not including the merge commit)
|
||||||
|
endCommitID, err := mergedCommit.ParentID(mergedCommit.ParentCount() - 1)
|
||||||
|
if err != nil {
|
||||||
|
ctx.Handle(500, "ParentID", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx.Data["NumCommits"], err = ctx.Repo.GitRepo.CommitsCountBetween(pull.MergeBase, endCommitID.String())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Handle(500, "Repo.GitRepo.CommitsCountBetween", err)
|
ctx.Handle(500, "Repo.GitRepo.CommitsCountBetween", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
ctx.Data["NumFiles"], err = ctx.Repo.GitRepo.FilesCountBetween(pull.MergeBase, pull.MergedCommitID)
|
ctx.Data["NumFiles"], err = ctx.Repo.GitRepo.FilesCountBetween(pull.MergeBase, endCommitID.String())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Handle(500, "Repo.GitRepo.FilesCountBetween", err)
|
ctx.Handle(500, "Repo.GitRepo.FilesCountBetween", err)
|
||||||
return
|
return
|
||||||
|
@ -338,19 +350,19 @@ func ViewPullCommits(ctx *context.Context) {
|
||||||
ctx.Data["Username"] = ctx.Repo.Owner.Name
|
ctx.Data["Username"] = ctx.Repo.Owner.Name
|
||||||
ctx.Data["Reponame"] = ctx.Repo.Repository.Name
|
ctx.Data["Reponame"] = ctx.Repo.Repository.Name
|
||||||
|
|
||||||
startCommit, err := ctx.Repo.GitRepo.GetCommit(pull.MergeBase)
|
mergedCommit, err := ctx.Repo.GitRepo.GetCommit(pull.MergedCommitID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Handle(500, "Repo.GitRepo.GetCommit", err)
|
ctx.Handle(500, "Repo.GitRepo.GetCommit", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
endCommit, err := ctx.Repo.GitRepo.GetCommit(pull.MergedCommitID)
|
endCommitID, err := mergedCommit.ParentID(mergedCommit.ParentCount() - 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Handle(500, "Repo.GitRepo.GetCommit", err)
|
ctx.Handle(500, "ParentID", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
commits, err = ctx.Repo.GitRepo.CommitsBetween(endCommit, startCommit)
|
commits, err = ctx.Repo.GitRepo.CommitsBetweenIDs(endCommitID.String(), pull.MergeBase)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Handle(500, "Repo.GitRepo.CommitsBetween", err)
|
ctx.Handle(500, "Repo.GitRepo.CommitsBetweenIDs", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -402,7 +414,17 @@ func ViewPullFiles(ctx *context.Context) {
|
||||||
|
|
||||||
diffRepoPath = ctx.Repo.GitRepo.Path
|
diffRepoPath = ctx.Repo.GitRepo.Path
|
||||||
startCommitID = pull.MergeBase
|
startCommitID = pull.MergeBase
|
||||||
endCommitID = pull.MergedCommitID
|
mergedCommit, err := ctx.Repo.GitRepo.GetCommit(pull.MergedCommitID)
|
||||||
|
if err != nil {
|
||||||
|
ctx.Handle(500, "GetCommit", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
endCommitSha, err := mergedCommit.ParentID(mergedCommit.ParentCount() - 1)
|
||||||
|
if err != nil {
|
||||||
|
ctx.Handle(500, "ParentID", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
endCommitID = endCommitSha.String()
|
||||||
gitRepo = ctx.Repo.GitRepo
|
gitRepo = ctx.Repo.GitRepo
|
||||||
|
|
||||||
headTarget = path.Join(ctx.Repo.Owner.Name, ctx.Repo.Repository.Name)
|
headTarget = path.Join(ctx.Repo.Owner.Name, ctx.Repo.Repository.Name)
|
||||||
|
|
Reference in a new issue