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

[PATCH] diff: fix regression with --stat and unmerged file

From
Peter Grayson <pete@jpgrayson.net>
Date
Dec 14, 2022, 17:41 UTC
Message-ID
<20221214174150.404821-1-pete@jpgrayson.net>
A regression was introduced in
12fc4ad89e (diff.c: use utf8_strwidth() to count display width, 2022-09-14)

that causes missing newlines after "Unmerged" entries in `git diff --cached --stat` output.

This problem affects v2.39.0-rc0 through v2.39.0.

This patch adds the missing newline along with a new test to cover this behavior.

Signed-off-by: Peter Grayson <pete@jpgrayson.net>
---
 diff.c                   |  2 +-
 t/t4046-diff-unmerged.sh | 10 ++++++++++
 2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/diff.c b/diff.c
index 1054a4b732..85f035a9e8 100644
--- a/diff.c
+++ b/diff.c
@@ -2801,7 +2801,7 @@ static void show_stats(struct diffstat_t *data, struct diff_options *options)
 		else if (file->is_unmerged) {
 			strbuf_addf(&out, " %s%s%*s | %*s",
 				    prefix, name, padding, "",
-				    number_width, "Unmerged");
+				    number_width, "Unmerged\n");
 			emit_diff_symbol(options, DIFF_SYMBOL_STATS_LINE,
 					 out.buf, out.len, 0);
 			strbuf_reset(&out);
diff --git a/t/t4046-diff-unmerged.sh b/t/t4046-diff-unmerged.sh
index 0ae0cd3a52..ffaf69335f 100755
--- a/t/t4046-diff-unmerged.sh
+++ b/t/t4046-diff-unmerged.sh
@@ -86,4 +86,14 @@ test_expect_success 'diff-files -3' '
 	test_cmp diff-files-3.expect diff-files-3.actual
 '
 
+test_expect_success 'diff --stat' '
+	for path in $paths
+	do
+		echo " $path | Unmerged" || return 1
+	done >diff-stat.expect &&
+	echo " 0 files changed" >>diff-stat.expect &&
+	git diff --cached --stat >diff-stat.actual &&
+	test_cmp diff-stat.expect diff-stat.actual
+'
+
 test_done
-- 
2.39.0
Next: Jeff King
Message 1 of 3 in “diff: fix regression with --stat and unmerged file”
  1. diff: fix regression with --stat and unmerged filePeter Grayson, Dec 14, 2022
  2. Jeff KingDec 14, 2022
  3. Peter GraysonDec 14, 2022

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.