| #!/bin/sh |
| # |
| # Copyright (c) 2010 Bo Yang |
| # |
| |
| test_description='Test --follow should always find copies hard in git log. |
| |
| ' |
| |
| . ./test-lib.sh |
| . "$TEST_DIRECTORY"/lib-diff.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_expect_success 'log --follow -B does not BUG' ' |
| git switch --orphan break_and_follow_are_icky_so_use_both && |
| |
| test_seq 1 127 >numbers && |
| git add numbers && |
| git commit -m "numbers" && |
| |
| printf "%s\n" A B C D E F G H I J K L M N O Q R S T U V W X Y Z >pool && |
| echo changed >numbers && |
| git add pool numbers && |
| git commit -m "pool" && |
| |
| git log -1 -B --raw --follow -- "p*" |
| ' |
| |
| test_expect_success 'log --follow -B does not die or use uninitialized memory' ' |
| printf "%s\n" A B C D E F G H I J K L M N O P Q R S T U V W X Y Z >z && |
| git add z && |
| git commit -m "Initial" && |
| |
| test_seq 1 130 >z && |
| echo lame >somefile && |
| git add z somefile && |
| git commit -m "Rewrite z, introduce lame somefile" && |
| |
| echo Content >somefile && |
| git add somefile && |
| git commit -m "Rewrite somefile" && |
| |
| git log -B --follow somefile |
| ' |
| |
| test_done |