diff options
| author | Junio C Hamano <gitster@pobox.com> | 2025-12-23 11:33:16 +0900 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2025-12-23 11:33:16 +0900 |
| commit | 5d2be7425cbfecac75211f47128e8aeab029e8b5 (patch) | |
| tree | 5ec5a00a03130187d5c30b686291614a4015b575 /diff-lib.c | |
| parent | 86ebd83e6a78671624cf118e3a04d3afcfbe5df4 (diff) | |
| parent | f293bdcc29f91e3e56c478473a85a8e13e6fd87c (diff) | |
| download | git-5d2be7425cbfecac75211f47128e8aeab029e8b5.tar.xz | |
Merge branch 'rs/diff-files-r-find-copies-fix'
"git diff-files -R --find-copies-harder" has been taught to use
the potential copy sources from the index correctly.
* rs/diff-files-r-find-copies-fix:
diff-files: fix copy detection
Diffstat (limited to 'diff-lib.c')
| -rw-r--r-- | diff-lib.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/diff-lib.c b/diff-lib.c index 8e624f38c6..5307390ff3 100644 --- a/diff-lib.c +++ b/diff-lib.c @@ -226,8 +226,12 @@ void run_diff_files(struct rev_info *revs, unsigned int option) continue; } - if (ce_uptodate(ce) || ce_skip_worktree(ce)) + if (ce_uptodate(ce) || ce_skip_worktree(ce)) { + if (revs->diffopt.flags.find_copies_harder) + diff_same(&revs->diffopt, ce->ce_mode, + &ce->oid, ce->name); continue; + } /* * When CE_VALID is set (via "update-index --assume-unchanged" @@ -272,8 +276,10 @@ void run_diff_files(struct rev_info *revs, unsigned int option) if (!changed && !dirty_submodule) { ce_mark_uptodate(ce); mark_fsmonitor_valid(istate, ce); - if (!revs->diffopt.flags.find_copies_harder) - continue; + if (revs->diffopt.flags.find_copies_harder) + diff_same(&revs->diffopt, newmode, + &ce->oid, ce->name); + continue; } oldmode = ce->ce_mode; old_oid = &ce->oid; |
