[PATCH v2 1/2] git-show: fix 'git show -s' to not add extra terminator after merge commit
From: Max Kirillov <hidden>
Date: 2016-06-15 23:01:06
Subsystem:
the rest · Maintainer:
Linus Torvalds
When git show -s is called for merge commit it prints extra newline after any merge commit and the next one. This looks especially ugly for --oneline and other single-line formats. Looks very much like a bug. The code in question exists since commit 3969cf7db1. Probably the correct condition should be in fact "opt->output_format & DIFF_FORMAT_DIFFSTAT". Test t7007-show.sh is also modified to cover this case. Signed-off-by: Max Kirillov <redacted> --- combine-diff.c | 3 ++- t/t7007-show.sh | 8 ++++++-- 2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/combine-diff.c b/combine-diff.c
index 3b92c448..ff6ceaf 100644
--- a/combine-diff.c
+++ b/combine-diff.c@@ -1331,7 +1331,8 @@ void diff_tree_combined(const unsigned char *sha1, if (show_log_first && i == 0) { show_log(rev); - if (rev->verbose_header && opt->output_format) + if (rev->verbose_header && opt->output_format && + opt->output_format != DIFF_FORMAT_NO_OUTPUT) printf("%s%c", diff_line_prefix(opt), opt->line_termination); }
diff --git a/t/t7007-show.sh b/t/t7007-show.sh
index e41fa00..de22812 100755
--- a/t/t7007-show.sh
+++ b/t/t7007-show.sh@@ -25,6 +25,7 @@ test_expect_success 'set up a bit of history' ' git checkout -b side HEAD^^ && test_commit side2 && test_commit side3 + test_merge merge main3 ' test_expect_success 'showing two commits' '
@@ -109,8 +110,11 @@ test_expect_success 'showing range' ' ' test_expect_success '-s suppresses diff' ' - echo main3 >expect && - git show -s --format=%s main3 >actual && + cat >expect <<-\EOF && + merge + main3 + EOF + git show -s --format=%s merge main3 >actual && test_cmp expect actual '
--
1.8.5.2.421.g4cdf8d0