diffcore-rename: don't consider unmerged path as source
[gitweb.git] / t / t4015-diff-whitespace.sh
index e92eab09cb3155e602027ce4104fe7ceb7af245e..a8736f7cbeef65b3454847bb4b4df508c0079652 100755 (executable)
@@ -438,6 +438,43 @@ test_expect_success 'whitespace-only changes not reported' '
        test_cmp expect actual
 '
 
+cat <<EOF >expect
+diff --git a/x b/z
+similarity index NUM%
+rename from x
+rename to z
+index 380c32a..a97b785 100644
+EOF
+test_expect_success 'whitespace-only changes reported across renames' '
+       git reset --hard &&
+       for i in 1 2 3 4 5 6 7 8 9; do echo "$i$i$i$i$i$i"; done >x &&
+       git add x &&
+       git commit -m "base" &&
+       sed -e "5s/^/ /" x >z &&
+       git rm x &&
+       git add z &&
+       git diff -w -M --cached |
+       sed -e "/^similarity index /s/[0-9][0-9]*/NUM/" >actual &&
+       test_cmp expect actual
+'
+
+cat >expected <<\EOF
+diff --git a/empty b/void
+similarity index 100%
+rename from empty
+rename to void
+EOF
+
+test_expect_success 'rename empty' '
+       git reset --hard &&
+       >empty &&
+       git add empty &&
+       git commit -m empty &&
+       git mv empty void &&
+       git diff -w --cached -M >current &&
+       test_cmp expected current
+'
+
 test_expect_success 'combined diff with autocrlf conversion' '
 
        git reset --hard &&
@@ -454,4 +491,41 @@ test_expect_success 'combined diff with autocrlf conversion' '
 
 '
 
+# Start testing the colored format for whitespace checks
+
+test_expect_success 'setup diff colors' '
+       git config color.diff always &&
+       git config color.diff.plain normal &&
+       git config color.diff.meta bold &&
+       git config color.diff.frag cyan &&
+       git config color.diff.func normal &&
+       git config color.diff.old red &&
+       git config color.diff.new green &&
+       git config color.diff.commit yellow &&
+       git config color.diff.whitespace "normal red" &&
+
+       git config core.autocrlf false
+'
+cat >expected <<\EOF
+<BOLD>diff --git a/x b/x<RESET>
+<BOLD>index 9daeafb..2874b91 100644<RESET>
+<BOLD>--- a/x<RESET>
+<BOLD>+++ b/x<RESET>
+<CYAN>@@ -1 +1,4 @@<RESET>
+ test<RESET>
+<GREEN>+<RESET><GREEN>{<RESET>
+<GREEN>+<RESET><BRED>  <RESET>
+<GREEN>+<RESET><GREEN>}<RESET>
+EOF
+
+test_expect_success 'diff that introduces a line with only tabs' '
+       git config core.whitespace blank-at-eol &&
+       git reset --hard &&
+       echo "test" > x &&
+       git commit -m "initial" x &&
+       echo "{NTN}" | tr "NT" "\n\t" >> x &&
+       git -c color.diff=always diff | test_decode_color >current &&
+       test_cmp expected current
+'
+
 test_done