Make git log --follow find copies among unmodified files.
'git log --follow <path>' don't track copies from unmodified files, and this patch fix it. Signed-off-by: Bo Yang <struggleyb.nku@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
1da6175d43
commit
0cdca133ec
@ -56,7 +56,7 @@ include::diff-options.txt[]
|
||||
commits, and doesn't limit diff for those commits.
|
||||
|
||||
--follow::
|
||||
Continue listing the history of a file beyond renames.
|
||||
Continue listing the history of a file beyond renames/copies.
|
||||
|
||||
--log-size::
|
||||
Before the log message print out its size in bytes. Intended
|
||||
|
56
t/t4205-log-follow-harder-copies.sh
Executable file
56
t/t4205-log-follow-harder-copies.sh
Executable file
@ -0,0 +1,56 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 2010 Bo Yang
|
||||
#
|
||||
|
||||
test_description='Test --follow should always find copies hard in git log.
|
||||
|
||||
'
|
||||
. ./test-lib.sh
|
||||
. "$TEST_DIRECTORY"/diff-lib.sh
|
||||
|
||||
echo >path0 'Line 1
|
||||
Line 2
|
||||
Line 3
|
||||
'
|
||||
|
||||
test_expect_success \
|
||||
'add a file path0 and commit.' \
|
||||
'git add path0 &&
|
||||
git commit -m "Add path0"'
|
||||
|
||||
echo >path0 'New line 1
|
||||
New line 2
|
||||
New line 3
|
||||
'
|
||||
test_expect_success \
|
||||
'Change path0.' \
|
||||
'git add path0 &&
|
||||
git commit -m "Change path0"'
|
||||
|
||||
cat <path0 >path1
|
||||
test_expect_success \
|
||||
'copy path0 to path1.' \
|
||||
'git add path1 &&
|
||||
git commit -m "Copy path1 from path0"'
|
||||
|
||||
test_expect_success \
|
||||
'find the copy path0 -> path1 harder' \
|
||||
'git log --follow --name-status --pretty="format:%s" path1 > current'
|
||||
|
||||
cat >expected <<\EOF
|
||||
Copy path1 from path0
|
||||
C100 path0 path1
|
||||
|
||||
Change path0
|
||||
M path0
|
||||
|
||||
Add path0
|
||||
A path0
|
||||
EOF
|
||||
|
||||
test_expect_success \
|
||||
'validate the output.' \
|
||||
'compare_diff_patch current expected'
|
||||
|
||||
test_done
|
@ -346,7 +346,7 @@ static void try_to_follow_renames(struct tree_desc *t1, struct tree_desc *t2, co
|
||||
|
||||
diff_setup(&diff_opts);
|
||||
DIFF_OPT_SET(&diff_opts, RECURSIVE);
|
||||
diff_opts.detect_rename = DIFF_DETECT_RENAME;
|
||||
DIFF_OPT_SET(&diff_opts, FIND_COPIES_HARDER);
|
||||
diff_opts.output_format = DIFF_FORMAT_NO_OUTPUT;
|
||||
diff_opts.single_follow = opt->paths[0];
|
||||
diff_opts.break_opt = opt->break_opt;
|
||||
|
Loading…
Reference in New Issue
Block a user