|  | #!/bin/sh | 
|  | # Copyright (c) 2011, Google Inc. | 
|  |  | 
|  | test_description='diff --stat-count' | 
|  | . ./test-lib.sh | 
|  |  | 
|  | test_expect_success 'setup' ' | 
|  | >a && | 
|  | >b && | 
|  | >c && | 
|  | >d && | 
|  | git add a b c d && | 
|  | git commit -m initial | 
|  | ' | 
|  |  | 
|  | test_expect_success 'mode-only change show as a 0-line change' ' | 
|  | git reset --hard && | 
|  | test_chmod +x b d && | 
|  | echo a >a && | 
|  | echo c >c && | 
|  | cat >expect <<-\EOF && | 
|  | a | 1 + | 
|  | b | 0 | 
|  | ... | 
|  | 4 files changed, 2 insertions(+) | 
|  | EOF | 
|  | git diff --stat --stat-count=2 HEAD >actual && | 
|  | test_i18ncmp expect actual | 
|  | ' | 
|  |  | 
|  | test_expect_success 'binary changes do not count in lines' ' | 
|  | git reset --hard && | 
|  | echo a >a && | 
|  | echo c >c && | 
|  | cat "$TEST_DIRECTORY"/test-binary-1.png >d && | 
|  | cat >expect <<-\EOF && | 
|  | a | 1 + | 
|  | c | 1 + | 
|  | ... | 
|  | 3 files changed, 2 insertions(+) | 
|  | EOF | 
|  | git diff --stat --stat-count=2 >actual && | 
|  | test_i18ncmp expect actual | 
|  | ' | 
|  |  | 
|  | test_expect_success 'exclude unmerged entries from total file count' ' | 
|  | git reset --hard && | 
|  | echo a >a && | 
|  | echo b >b && | 
|  | git ls-files -s a >x && | 
|  | git rm -f d && | 
|  | for stage in 1 2 3 | 
|  | do | 
|  | sed -e "s/ 0	a/ $stage	d/" x | 
|  | done | | 
|  | git update-index --index-info && | 
|  | echo d >d && | 
|  | cat >expect <<-\EOF && | 
|  | a | 1 + | 
|  | b | 1 + | 
|  | ... | 
|  | 3 files changed, 3 insertions(+) | 
|  | EOF | 
|  | git diff --stat --stat-count=2 >actual && | 
|  | test_i18ncmp expect actual | 
|  | ' | 
|  |  | 
|  | test_done |