forked from NYANDEV/forgejo
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)
|
||||
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 {
|
||||
ctx.Handle(500, "Repo.GitRepo.CommitsCountBetween", err)
|
||||
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 {
|
||||
ctx.Handle(500, "Repo.GitRepo.FilesCountBetween", err)
|
||||
return
|
||||
|
@ -338,19 +350,19 @@ func ViewPullCommits(ctx *context.Context) {
|
|||
ctx.Data["Username"] = ctx.Repo.Owner.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 {
|
||||
ctx.Handle(500, "Repo.GitRepo.GetCommit", err)
|
||||
return
|
||||
}
|
||||
endCommit, err := ctx.Repo.GitRepo.GetCommit(pull.MergedCommitID)
|
||||
endCommitID, err := mergedCommit.ParentID(mergedCommit.ParentCount() - 1)
|
||||
if err != nil {
|
||||
ctx.Handle(500, "Repo.GitRepo.GetCommit", err)
|
||||
ctx.Handle(500, "ParentID", err)
|
||||
return
|
||||
}
|
||||
commits, err = ctx.Repo.GitRepo.CommitsBetween(endCommit, startCommit)
|
||||
commits, err = ctx.Repo.GitRepo.CommitsBetweenIDs(endCommitID.String(), pull.MergeBase)
|
||||
if err != nil {
|
||||
ctx.Handle(500, "Repo.GitRepo.CommitsBetween", err)
|
||||
ctx.Handle(500, "Repo.GitRepo.CommitsBetweenIDs", err)
|
||||
return
|
||||
}
|
||||
} else {
|
||||
|
@ -402,7 +414,17 @@ func ViewPullFiles(ctx *context.Context) {
|
|||
|
||||
diffRepoPath = ctx.Repo.GitRepo.Path
|
||||
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
|
||||
|
||||
headTarget = path.Join(ctx.Repo.Owner.Name, ctx.Repo.Repository.Name)
|
||||
|
|
Loading…
Reference in a new issue