
Mode-only changes to binary files without content change were reported as if they were rewritten, but text files in the same situation were reported as "unchanged". Let's treat binary files like text files here, and simply say that they are unchanged. Output of --shortstat is modified in the same way. Reported-by: Martin Mareš <mj@ucw.cz> Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> Signed-off-by: Junio C Hamano <gitster@pobox.com>
60 lines
1.3 KiB
Bash
Executable File
60 lines
1.3 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Copyright (c) 2005 Junio C Hamano
|
|
#
|
|
|
|
test_description='Test mode change diffs.
|
|
|
|
'
|
|
. ./test-lib.sh
|
|
|
|
sed_script='s/\(:100644 100755\) \('"$_x40"'\) \2 /\1 X X /'
|
|
|
|
test_expect_success 'setup' '
|
|
echo frotz >rezrov &&
|
|
git update-index --add rezrov &&
|
|
tree=`git write-tree` &&
|
|
echo $tree
|
|
'
|
|
|
|
test_expect_success 'chmod' '
|
|
test_chmod +x rezrov &&
|
|
git diff-index $tree >current &&
|
|
sed -e "$sed_script" <current >check &&
|
|
echo ":100644 100755 X X M rezrov" >expected &&
|
|
test_cmp expected check
|
|
'
|
|
|
|
test_expect_success 'prepare binary file' '
|
|
git commit -m rezrov &&
|
|
dd if=/dev/zero of=binbin bs=1024 count=1 &&
|
|
git add binbin &&
|
|
git commit -m binbin
|
|
'
|
|
|
|
test_expect_success '--stat output after text chmod' '
|
|
test_chmod -x rezrov &&
|
|
echo " 0 files changed" >expect &&
|
|
git diff HEAD --stat >actual &&
|
|
test_cmp expect actual
|
|
'
|
|
|
|
test_expect_success '--shortstat output after text chmod' '
|
|
git diff HEAD --shortstat >actual &&
|
|
test_cmp expect actual
|
|
'
|
|
|
|
test_expect_success '--stat output after binary chmod' '
|
|
test_chmod +x binbin &&
|
|
echo " 0 files changed" >expect &&
|
|
git diff HEAD --stat >actual &&
|
|
test_cmp expect actual
|
|
'
|
|
|
|
test_expect_success '--shortstat output after binary chmod' '
|
|
git diff HEAD --shortstat >actual &&
|
|
test_cmp expect actual
|
|
'
|
|
|
|
test_done
|