diff: correct newline in summary for renamed files

In 146fdb0dfe (diff.c: emit_diff_symbol learns about DIFF_SYMBOL_SUMMARY,
2017-06-29), the conversion from direct printing to the symbol emission
dropped the new line character for renamed, copied and rewritten files.

Add the emission of a newline, add a test for this case.

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Stefan Beller <sbeller@google.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Stefan Beller 2017-09-27 15:51:26 -07:00 коммит произвёл Junio C Hamano
Родитель 61e89eaae8
Коммит 58aaced444
7 изменённых файлов: 35 добавлений и 0 удалений

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

@ -5251,6 +5251,7 @@ static void show_mode_change(struct diff_options *opt, struct diff_filepair *p,
strbuf_addch(&sb, ' ');
quote_c_style(p->two->path, &sb, NULL, 0);
}
strbuf_addch(&sb, '\n');
emit_diff_symbol(opt, DIFF_SYMBOL_SUMMARY,
sb.buf, sb.len, 0);
strbuf_release(&sb);

Просмотреть файл

@ -90,6 +90,14 @@ test_expect_success setup '
git commit -m "Rearranged lines in dir/sub" &&
git checkout master &&
GIT_AUTHOR_DATE="2006-06-26 00:06:00 +0000" &&
GIT_COMMITTER_DATE="2006-06-26 00:06:00 +0000" &&
export GIT_AUTHOR_DATE GIT_COMMITTER_DATE &&
git checkout -b mode initial &&
git update-index --chmod=+x file0 &&
git commit -m "update mode" &&
git checkout -f master &&
git config diff.renames false &&
git show-branch
@ -192,6 +200,10 @@ diff-tree --pretty side
diff-tree --pretty -p side
diff-tree --pretty --patch-with-stat side
diff-tree initial mode
diff-tree --stat initial mode
diff-tree --summary initial mode
diff-tree master
diff-tree -p master
diff-tree -p -m master

Просмотреть файл

@ -0,0 +1,4 @@
$ git diff-tree --stat initial mode
file0 | 0
1 file changed, 0 insertions(+), 0 deletions(-)
$

Просмотреть файл

@ -0,0 +1,3 @@
$ git diff-tree --summary initial mode
mode change 100644 => 100755 file0
$

Просмотреть файл

@ -0,0 +1,3 @@
$ git diff-tree initial mode
:100644 100755 01e79c32a8c99c557f0757da7cb6d65b3414466d 01e79c32a8c99c557f0757da7cb6d65b3414466d M file0
$

Просмотреть файл

@ -1,4 +1,10 @@
$ git log --decorate=full --all
commit b7e0bc69303b488b47deca799a7d723971dfa6cd (refs/heads/mode)
Author: A U Thor <author@example.com>
Date: Mon Jun 26 00:06:00 2006 +0000
update mode
commit cd4e72fd96faed3f0ba949dc42967430374e2290 (refs/heads/rearrange)
Author: A U Thor <author@example.com>
Date: Mon Jun 26 00:06:00 2006 +0000

Просмотреть файл

@ -1,4 +1,10 @@
$ git log --decorate --all
commit b7e0bc69303b488b47deca799a7d723971dfa6cd (mode)
Author: A U Thor <author@example.com>
Date: Mon Jun 26 00:06:00 2006 +0000
update mode
commit cd4e72fd96faed3f0ba949dc42967430374e2290 (rearrange)
Author: A U Thor <author@example.com>
Date: Mon Jun 26 00:06:00 2006 +0000