diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-01-06 13:50:06 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-03-22 14:29:07 -0700 |
commit | f31027c99cb2ec4eb7ad8d1ebc7f0e20fef4bd1d (patch) | |
tree | ecc4d0213fcbd8c270b254cec1caff867034ac7d /t/t4001-diff-rename.sh | |
parent | e88d6bc6f90059f6e87f6d51eba83ec15e4eecc9 (diff) | |
download | git-f31027c99cb2ec4eb7ad8d1ebc7f0e20fef4bd1d.tar.gz |
diffcore-rename: fall back to -C when -C -C busts the rename limit
When there are too many paths in the project, the number of rename source
candidates "git diff -C -C" finds will exceed the rename detection limit,
and no inexact rename detection is performed. We however could fall back
to "git diff -C" if the number of modified paths is sufficiently small.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t4001-diff-rename.sh')
-rwxr-xr-x | t/t4001-diff-rename.sh | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/t/t4001-diff-rename.sh b/t/t4001-diff-rename.sh index 71bac83dd5..301f3a0e54 100755 --- a/t/t4001-diff-rename.sh +++ b/t/t4001-diff-rename.sh @@ -77,4 +77,29 @@ test_expect_success 'favour same basenames even with minor differences' ' git show HEAD:path1 | sed "s/15/16/" > subdir/path1 && git status | grep "renamed: .*path1 -> subdir/path1"' +test_expect_success 'setup for many rename source candidates' ' + git reset --hard && + for i in 0 1 2 3 4 5 6 7 8 9; + do + for j in 0 1 2 3 4 5 6 7 8 9; + do + echo "$i$j" >"path$i$j" + done + done && + git add "path??" && + test_tick && + git commit -m "hundred" && + (cat path1; echo new) >new-path && + echo old >>path1 && + git add new-path path1 && + git diff -l 4 -C -C --cached --name-status >actual 2>actual.err && + sed -e "s/^\([CM]\)[0-9]* /\1 /" actual >actual.munged && + cat >expect <<-EOF && + C path1 new-path + M path1 + EOF + test_cmp expect actual.munged && + grep warning actual.err +' + test_done |