mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Abstract hash function usage (#28138)
Refactor Hash interfaces and centralize hash function. This will allow easier introduction of different hash function later on. This forms the "no-op" part of the SHA256 enablement patch.
This commit is contained in:
		@@ -1115,10 +1115,15 @@ func GetDiff(ctx context.Context, gitRepo *git.Repository, opts *DiffOptions, fi
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	cmdDiff := git.NewCommand(gitRepo.Ctx)
 | 
			
		||||
	if (len(opts.BeforeCommitID) == 0 || opts.BeforeCommitID == git.EmptySHA) && commit.ParentCount() == 0 {
 | 
			
		||||
	objectFormat, err := gitRepo.GetObjectFormat()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (len(opts.BeforeCommitID) == 0 || opts.BeforeCommitID == objectFormat.Empty().String()) && commit.ParentCount() == 0 {
 | 
			
		||||
		cmdDiff.AddArguments("diff", "--src-prefix=\\a/", "--dst-prefix=\\b/", "-M").
 | 
			
		||||
			AddArguments(opts.WhitespaceBehavior...).
 | 
			
		||||
			AddArguments("4b825dc642cb6eb9a060e54bf8d69288fbee4904"). // append empty tree ref
 | 
			
		||||
			AddDynamicArguments(objectFormat.EmptyTree().String()).
 | 
			
		||||
			AddDynamicArguments(opts.AfterCommitID)
 | 
			
		||||
	} else {
 | 
			
		||||
		actualBeforeCommitID := opts.BeforeCommitID
 | 
			
		||||
@@ -1224,8 +1229,8 @@ func GetDiff(ctx context.Context, gitRepo *git.Repository, opts *DiffOptions, fi
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	diffPaths := []string{opts.BeforeCommitID + separator + opts.AfterCommitID}
 | 
			
		||||
	if len(opts.BeforeCommitID) == 0 || opts.BeforeCommitID == git.EmptySHA {
 | 
			
		||||
		diffPaths = []string{git.EmptyTreeSHA, opts.AfterCommitID}
 | 
			
		||||
	if len(opts.BeforeCommitID) == 0 || opts.BeforeCommitID == objectFormat.Empty().String() {
 | 
			
		||||
		diffPaths = []string{objectFormat.EmptyTree().String(), opts.AfterCommitID}
 | 
			
		||||
	}
 | 
			
		||||
	diff.NumFiles, diff.TotalAddition, diff.TotalDeletion, err = git.GetDiffShortStat(gitRepo.Ctx, repoPath, nil, diffPaths...)
 | 
			
		||||
	if err != nil && strings.Contains(err.Error(), "no merge base") {
 | 
			
		||||
@@ -1256,12 +1261,15 @@ func GetPullDiffStats(gitRepo *git.Repository, opts *DiffOptions) (*PullDiffStat
 | 
			
		||||
		separator = ".."
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	diffPaths := []string{opts.BeforeCommitID + separator + opts.AfterCommitID}
 | 
			
		||||
	if len(opts.BeforeCommitID) == 0 || opts.BeforeCommitID == git.EmptySHA {
 | 
			
		||||
		diffPaths = []string{git.EmptyTreeSHA, opts.AfterCommitID}
 | 
			
		||||
	objectFormat, err := gitRepo.GetObjectFormat()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var err error
 | 
			
		||||
	diffPaths := []string{opts.BeforeCommitID + separator + opts.AfterCommitID}
 | 
			
		||||
	if len(opts.BeforeCommitID) == 0 || opts.BeforeCommitID == objectFormat.Empty().String() {
 | 
			
		||||
		diffPaths = []string{objectFormat.EmptyTree().String(), opts.AfterCommitID}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	_, diff.TotalAddition, diff.TotalDeletion, err = git.GetDiffShortStat(gitRepo.Ctx, repoPath, nil, diffPaths...)
 | 
			
		||||
	if err != nil && strings.Contains(err.Error(), "no merge base") {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user