Skip to content

Commit 292d10c

Browse files
committed
Add git.DIFF_RENAME_THRESHOLD option
1 parent 26602fd commit 292d10c

File tree

4 files changed

+10
-2
lines changed

4 files changed

+10
-2
lines changed

custom/conf/app.example.ini

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -733,6 +733,8 @@ LEVEL = Info
733733
;DISABLE_CORE_PROTECT_NTFS=false
734734
;; Disable the usage of using partial clones for git.
735735
;DISABLE_PARTIAL_CLONE = false
736+
;; Set the similarity threshold passed to git rename detection via `--find-renames=<threshold>`
737+
;DIFF_RENAME_THRESHOLD = 50%
736738

737739
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
738740
;; Git Operation timeout in seconds

modules/setting/git.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ var Git = struct {
3030
LargeObjectThreshold int64
3131
DisableCoreProtectNTFS bool
3232
DisablePartialClone bool
33+
DiffRenameThreshold string
3334
Timeout struct {
3435
Default int
3536
Migrate int
@@ -52,6 +53,7 @@ var Git = struct {
5253
PullRequestPushMessage: true,
5354
LargeObjectThreshold: 1024 * 1024,
5455
DisablePartialClone: false,
56+
DiffRenameThreshold: "50%",
5557
Timeout: struct {
5658
Default int
5759
Migrate int

services/gitdiff/git_diff_tree.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"code.gitea.io/gitea/modules/git"
1616
"code.gitea.io/gitea/modules/git/gitcmd"
1717
"code.gitea.io/gitea/modules/log"
18+
"code.gitea.io/gitea/modules/setting"
1819
)
1920

2021
type DiffTree struct {
@@ -56,7 +57,8 @@ func runGitDiffTree(ctx context.Context, gitRepo *git.Repository, useMergeBase b
5657
return nil, err
5758
}
5859

59-
cmd := gitcmd.NewCommand("diff-tree", "--raw", "-r", "--find-renames", "--root")
60+
cmd := gitcmd.NewCommand("diff-tree", "--raw", "-r", "--root")
61+
cmd.AddOptionFormat("--find-renames=%s", setting.Git.DiffRenameThreshold)
6062
if useMergeBase {
6163
cmd.AddArguments("--merge-base")
6264
}

services/gitdiff/gitdiff.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1225,7 +1225,7 @@ func getDiffBasic(ctx context.Context, gitRepo *git.Repository, opts *DiffOption
12251225
}
12261226

12271227
cmdDiff := gitcmd.NewCommand().
1228-
AddArguments("diff", "--src-prefix=\\a/", "--dst-prefix=\\b/", "-M").
1228+
AddArguments("diff", "--src-prefix=\\a/", "--dst-prefix=\\b/").
12291229
AddArguments(opts.WhitespaceBehavior...)
12301230

12311231
// In git 2.31, git diff learned --skip-to which we can use to shortcut skip to file
@@ -1237,6 +1237,8 @@ func getDiffBasic(ctx context.Context, gitRepo *git.Repository, opts *DiffOption
12371237
parsePatchSkipToFile = ""
12381238
}
12391239

1240+
cmdDiff.AddOptionFormat("--find-renames=%s", setting.Git.DiffRenameThreshold)
1241+
12401242
cmdDiff.AddDynamicArguments(beforeCommitID.String(), opts.AfterCommitID)
12411243
cmdDiff.AddDashesAndList(files...)
12421244

0 commit comments

Comments
 (0)