aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2011-05-27 21:50:39 -0700
committerJunio C Hamano <gitster@pobox.com>2011-05-27 21:50:39 -0700
commite5f85df87e8f1adb40288265ef54a16128691688 (patch)
treec73de283b557a9cefc569377964472a9b6daa352
parent86e1ce96d77fbfb2af74cabc05c1e8cf85742efc (diff)
downloadgit-e5f85df87e8f1adb40288265ef54a16128691688.tar.gz
git-e5f85df87e8f1adb40288265ef54a16128691688.tar.xz
diff --stat-count: finishing touches
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--diff.c6
-rwxr-xr-xt/t4049-diff-stat-count.sh25
2 files changed, 29 insertions, 2 deletions
diff --git a/diff.c b/diff.c
index 82789e30e..542ff42e5 100644
--- a/diff.c
+++ b/diff.c
@@ -1247,6 +1247,7 @@ static void show_stats(struct diffstat_t *data, struct diff_options *options)
int width, name_width, count;
const char *reset, *add_c, *del_c;
const char *line_prefix = "";
+ int extra_shown = 0;
struct strbuf *msg = NULL;
if (data->nr == 0)
@@ -1376,8 +1377,6 @@ static void show_stats(struct diffstat_t *data, struct diff_options *options)
show_graph(options->file, '-', del, del_c, reset);
fprintf(options->file, "\n");
}
- if (count < data->nr)
- fprintf(options->file, "%s ...\n", line_prefix);
for (i = count; i < data->nr; i++) {
uintmax_t added = data->files[i]->added;
uintmax_t deleted = data->files[i]->deleted;
@@ -1388,6 +1387,9 @@ static void show_stats(struct diffstat_t *data, struct diff_options *options)
}
adds += added;
dels += deleted;
+ if (!extra_shown)
+ fprintf(options->file, "%s ...\n", line_prefix);
+ extra_shown = 1;
}
fprintf(options->file, "%s", line_prefix);
fprintf(options->file,
diff --git a/t/t4049-diff-stat-count.sh b/t/t4049-diff-stat-count.sh
new file mode 100755
index 000000000..641e70d14
--- /dev/null
+++ b/t/t4049-diff-stat-count.sh
@@ -0,0 +1,25 @@
+#!/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 &&
+ chmod +x c d &&
+ echo a >a &&
+ echo b >b &&
+ cat >expect <<-\EOF
+ a | 1 +
+ b | 1 +
+ 2 files changed, 2 insertions(+), 0 deletions(-)
+ EOF
+ git diff --stat --stat-count=2 >actual &&
+ test_cmp expect actual
+'
+
+test_done