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

[PATCH v2 2/2] trailer: support multiline title

From
Christian Couder <christian.couder@gmail.com>
Date
Aug 26, 2015, 02:51 UTC
Message-ID
<1440557461-1078-2-git-send-email-chriscool@tuxfamily.org>
In-Reply-To
<1440557461-1078-1-git-send-email-chriscool@tuxfamily.org>

We currently ignore the first line passed to `git interpret-trailers`, when looking for the beginning of the trailers.

Unfortunately this does not work well when a commit is created with a line break in the title, using for example the following command:

git commit -m 'place of code: change we made'

In this special case, it is best to look at the first line and if it
does not contain only spaces, consider that the second line is not a
trailer.
---
 t/t7513-interpret-trailers.sh | 14 ++++++++++++++
 trailer.c                     |  8 +++++++-
 2 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/t/t7513-interpret-trailers.sh b/t/t7513-interpret-trailers.sh
index 9577b4e..56efe88 100755
--- a/t/t7513-interpret-trailers.sh
+++ b/t/t7513-interpret-trailers.sh
@@ -112,6 +112,20 @@ test_expect_success 'with only a title in the message' '
 	test_cmp expected actual
 '
 
+test_expect_success 'with multiline title in the message' '
+	cat >expected <<-\EOF &&
+		place of
+		code: change
+
+		Reviewed-by: Peff
+		Acked-by: Johan
+	EOF
+	printf "%s\n%s\n" "place of" "code: change" |
+	git interpret-trailers --trailer "Reviewed-by: Peff" \
+		--trailer "Acked-by: Johan" >actual &&
+	test_cmp expected actual
+'
+
 test_expect_success 'with config setup' '
 	git config trailer.ack.key "Acked-by: " &&
 	cat >expected <<-\EOF &&
diff --git a/trailer.c b/trailer.c
index b808868..9a54449 100644
--- a/trailer.c
+++ b/trailer.c
@@ -759,7 +759,13 @@ static int find_trailer_start(struct strbuf **lines, int count)
 		return count;
 	}
 
-	return only_spaces ? count : 0;
+	if (only_spaces)
+		return count;
+
+	if (contains_only_spaces(lines[0]->buf))
+		return 1;
+
+	return count;
 }
 
 /* Get the index of the end of the trailers */
-- 
2.5.0.401.g009ef9b.dirty
Previous: Christian CouderNext: Matthieu Moy
Message 2 of 9 in “trailer: ignore first line of message”
  1. 1/2 trailer: ignore first line of messageChristian Couder, Aug 26, 2015
  2. 2/2 trailer: support multiline titleChristian Couder, Aug 26, 2015
  3. Matthieu MoyAug 26, 2015
  4. Jacob KellerAug 26, 2015
  5. Christian CouderAug 26, 2015
  6. Junio C HamanoAug 26, 2015
  7. Matthieu MoyAug 26, 2015
  8. Junio C HamanoAug 26, 2015
  9. Christian CouderAug 29, 2015

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.