There are a few problems in diff.c around --stat area, partially
caused by the recent 74faaa1 (Fix "git diff --stat" for interesting
- but empty - file changes, 2012-10-17), and largely caused by the
earlier change that introduced when --stat-count was added.

Add a few test pieces to t4049 to expose the issues.

Signed-off-by: Junio C Hamano <gits...@pobox.com>
---
 t/t4049-diff-stat-count.sh | 46 +++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 45 insertions(+), 1 deletion(-)

diff --git a/t/t4049-diff-stat-count.sh b/t/t4049-diff-stat-count.sh
index 7b3ef00..e212b11 100755
--- a/t/t4049-diff-stat-count.sh
+++ b/t/t4049-diff-stat-count.sh
@@ -4,12 +4,17 @@
 test_description='diff --stat-count'
 . ./test-lib.sh
 
-test_expect_success setup '
+test_expect_success 'setup' '
        >a &&
        >b &&
        >c &&
        >d &&
        git add a b c d &&
+       git commit -m initial
+'
+
+test_expect_success 'limit output to 2 (simple)' '
+       git reset --hard &&
        chmod +x c d &&
        echo a >a &&
        echo b >b &&
@@ -23,4 +28,43 @@ test_expect_success setup '
        test_i18ncmp expect actual
 '
 
+test_expect_failure 'binary changes do not count in lines' '
+       git reset --hard &&
+       chmod +x c d &&
+       echo a >a &&
+       echo b >b &&
+       cat "$TEST_DIRECTORY"/test-binary-1.png >d &&
+       cat >expect <<-\EOF
+        a | 1 +
+        b | 1 +
+        ...
+        4 files changed, 2 insertions(+)
+       EOF
+       git diff --stat --stat-count=2 >actual &&
+       test_i18ncmp expect actual
+'
+
+test_expect_failure '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 &&
+       chmod +x c d &&
+       cat >expect <<-\EOF
+        a | 1 +
+        b | 1 +
+        ...
+        4 files changed, 3 insertions(+)
+       EOF
+       git diff --stat --stat-count=2 >actual &&
+       test_i18ncmp expect actual
+'
+
 test_done
-- 
1.8.0.1.331.g808d2af

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to