1#!/bin/sh 2# Copyright (c) 2011, Google Inc. 3 4test_description='diff --stat-count' 5. ./test-lib.sh 6 7test_expect_success 'setup' ' 8 >a && 9 >b && 10 >c && 11 >d && 12 git add a b c d && 13 git commit -m initial 14' 15 16test_expect_success 'mode-only change show as a 0-line change' ' 17 git reset --hard && 18 test_chmod +x b d && 19 echo a >a && 20 echo c >c && 21 cat >expect <<-\EOF && 22 a | 1 + 23 b | 0 24 ... 25 4 files changed, 2 insertions(+) 26 EOF 27 git diff --stat --stat-count=2 HEAD >actual && 28 test_cmp expect actual 29' 30 31test_expect_success 'binary changes do not count in lines' ' 32 git reset --hard && 33 echo a >a && 34 echo c >c && 35 cat "$TEST_DIRECTORY"/test-binary-1.png >d && 36 cat >expect <<-\EOF && 37 a | 1 + 38 c | 1 + 39 ... 40 3 files changed, 2 insertions(+) 41 EOF 42 git diff --stat --stat-count=2 >actual && 43 test_cmp expect actual 44' 45 46test_expect_success 'exclude unmerged entries from total file count' ' 47 git reset --hard && 48 echo a >a && 49 echo b >b && 50 git ls-files -s a >x && 51 git rm -f d && 52 for stage in 1 2 3 53 do 54 sed -e "s/ 0 a/ $stage d/" x 55 done | 56 git update-index --index-info && 57 echo d >d && 58 cat >expect <<-\EOF && 59 a | 1 + 60 b | 1 + 61 ... 62 3 files changed, 3 insertions(+) 63 EOF 64 git diff --stat --stat-count=2 >actual && 65 test_cmp expect actual 66' 67 68test_done 69