mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Use beforeCommit instead of baseCommit (#22949)
Replaces: https://github.com/go-gitea/gitea/pull/22947 Fixes https://github.com/go-gitea/gitea/issues/22946 Probably related to https://github.com/go-gitea/gitea/issues/19530 Basically, many of the diffs were broken because they were comparing to the base commit, where a 3-dot diff should be comparing to the [last common ancestor](https://matthew-brett.github.io/pydagogue/git_diff_dots.html). This should have an integration test so that we don’t run into this issue again. --------- Co-authored-by: Jonathan Tran <jonnytran@gmail.com>
This commit is contained in:
		@@ -43,8 +43,8 @@ const (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// setCompareContext sets context data.
 | 
			
		||||
func setCompareContext(ctx *context.Context, base, head *git.Commit, headOwner, headName string) {
 | 
			
		||||
	ctx.Data["BaseCommit"] = base
 | 
			
		||||
func setCompareContext(ctx *context.Context, before, head *git.Commit, headOwner, headName string) {
 | 
			
		||||
	ctx.Data["BeforeCommit"] = before
 | 
			
		||||
	ctx.Data["HeadCommit"] = head
 | 
			
		||||
 | 
			
		||||
	ctx.Data["GetBlobByPathForCommit"] = func(commit *git.Commit, path string) *git.Blob {
 | 
			
		||||
@@ -59,7 +59,7 @@ func setCompareContext(ctx *context.Context, base, head *git.Commit, headOwner,
 | 
			
		||||
		return blob
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	setPathsCompareContext(ctx, base, head, headOwner, headName)
 | 
			
		||||
	setPathsCompareContext(ctx, before, head, headOwner, headName)
 | 
			
		||||
	setImageCompareContext(ctx)
 | 
			
		||||
	setCsvCompareContext(ctx)
 | 
			
		||||
}
 | 
			
		||||
@@ -629,9 +629,8 @@ func PrepareCompareDiff(
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	baseGitRepo := ctx.Repo.GitRepo
 | 
			
		||||
	baseCommitID := ci.CompareInfo.BaseCommitID
 | 
			
		||||
 | 
			
		||||
	baseCommit, err := baseGitRepo.GetCommit(baseCommitID)
 | 
			
		||||
	beforeCommit, err := baseGitRepo.GetCommit(beforeCommitID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.ServerError("GetCommit", err)
 | 
			
		||||
		return false
 | 
			
		||||
@@ -668,7 +667,7 @@ func PrepareCompareDiff(
 | 
			
		||||
	ctx.Data["Username"] = ci.HeadUser.Name
 | 
			
		||||
	ctx.Data["Reponame"] = ci.HeadRepo.Name
 | 
			
		||||
 | 
			
		||||
	setCompareContext(ctx, baseCommit, headCommit, ci.HeadUser.Name, repo.Name)
 | 
			
		||||
	setCompareContext(ctx, beforeCommit, headCommit, ci.HeadUser.Name, repo.Name)
 | 
			
		||||
 | 
			
		||||
	return false
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user