Merge branch 'cc/maint-diff-CC-binary' into next

* cc/maint-diff-CC-binary:
  diff: fix "git show -C -C" output when renaming a binary file

Conflicts:
	diff.c
This commit is contained in:
Junio C Hamano
2010-06-07 22:15:48 -07:00
3 changed files with 98 additions and 5 deletions

View File

@@ -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 &&

45
t/t4043-diff-rename-binary.sh Executable file
View File

@@ -0,0 +1,45 @@
#!/bin/sh
#
# Copyright (c) 2010 Jakub Narebski, Christian Couder
#
test_description='Move a binary file'
. ./test-lib.sh
test_expect_success 'prepare repository' '
git init &&
echo foo > foo &&
echo "barQ" | q_to_nul > bar &&
git add . &&
git commit -m "Initial commit"
'
test_expect_success 'move the files into a "sub" directory' '
mkdir sub &&
git mv bar foo sub/ &&
git commit -m "Moved to sub/"
'
cat > expected <<\EOF
bar => sub/bar | Bin 5 -> 5 bytes
foo => sub/foo | 0
2 files changed, 0 insertions(+), 0 deletions(-)
diff --git a/bar b/sub/bar
similarity index 100%
rename from bar
rename to sub/bar
diff --git a/foo b/sub/foo
similarity index 100%
rename from foo
rename to sub/foo
EOF
test_expect_success 'git show -C -C report renames' '
git show -C -C --raw --binary --stat | tail -n 12 > current &&
test_cmp expected current
'
test_done