diff --stat-count: finishing touches

Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Junio C Hamano 2011-05-27 21:50:39 -07:00
parent 86e1ce96d7
commit e5f85df87e
2 changed files with 29 additions and 2 deletions

6
diff.c
View File

@ -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,

25
t/t4049-diff-stat-count.sh Executable file
View File

@ -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