Fix files/commits of merged PRs (#2937)
This commit is contained in:
		
							parent
							
								
									183da4c2c1
								
							
						
					
					
						commit
						40c545ddbc
					
				|  | @ -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) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue