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
Родитель 86e1ce96d7
Коммит e5f85df87e
2 изменённых файлов: 29 добавлений и 2 удалений

6
diff.c
Просмотреть файл

@ -1247,6 +1247,7 @@ static void show_stats(struct diffstat_t *data, struct diff_options *options)
int width, name_width, count; int width, name_width, count;
const char *reset, *add_c, *del_c; const char *reset, *add_c, *del_c;
const char *line_prefix = ""; const char *line_prefix = "";
int extra_shown = 0;
struct strbuf *msg = NULL; struct strbuf *msg = NULL;
if (data->nr == 0) 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); show_graph(options->file, '-', del, del_c, reset);
fprintf(options->file, "\n"); fprintf(options->file, "\n");
} }
if (count < data->nr)
fprintf(options->file, "%s ...\n", line_prefix);
for (i = count; i < data->nr; i++) { for (i = count; i < data->nr; i++) {
uintmax_t added = data->files[i]->added; uintmax_t added = data->files[i]->added;
uintmax_t deleted = data->files[i]->deleted; 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; adds += added;
dels += deleted; dels += deleted;
if (!extra_shown)
fprintf(options->file, "%s ...\n", line_prefix);
extra_shown = 1;
} }
fprintf(options->file, "%s", line_prefix); fprintf(options->file, "%s", line_prefix);
fprintf(options->file, fprintf(options->file,

25
t/t4049-diff-stat-count.sh Executable 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