git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 1/2] git-show: fix 'git show -s' to not add extra terminator after merge commit

From
Max Kirillov <max@max630.net>
Date
May 12, 2014, 23:10 UTC
Message-ID
<20140512231029.GD32316@wheezy.local>
In-Reply-To
<20140512230943.GC32316@wheezy.local>

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 <max@max630.net>
---
 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
Previous: Max KirillovNext: Johannes Sixt
Message 2 of 7 in “fix 'git show -s' to not add extra terminator after merge commit”
  1. 0/2 fix 'git show -s' to not add extra terminator after merge commitMax Kirillov, May 12, 2014
  2. 1/2 git-show: fix 'git show -s' to not add extra terminator after merge commitMax Kirillov, May 12, 2014
  3. Johannes SixtMay 13, 2014
  4. Max KirillovMay 13, 2014
  5. 2/2 t: git-show: adapt tests to fixed 'git show'Max Kirillov, May 12, 2014
  6. Junio C HamanoMay 13, 2014
  7. Max KirillovMay 13, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.