git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* git interpret-trailers: behavior with input without trailing newline
@ 2021-07-08 10:33 Luca Weiss
  2021-07-13  0:35 ` Jeff King
  0 siblings, 1 reply; 2+ messages in thread
From: Luca Weiss @ 2021-07-08 10:33 UTC (permalink / raw)
  To: git

[-- Attachment #1: Type: text/plain, Size: 1445 bytes --]

Hi all,

I'm investigating a behavior with git interpret-trailers where when the input does not end with a newline, git appends the trailer directly without a newline; and on running the same command again it doesn't detect the previous trailer anymore. 

I've whipped up a quick PoC in form of a new test case in the existing test cases of git.

Appending the patch here (sorry if it does get corrupted from my editor, but I hope you get the gist of it).

diff --git a/t/t7513-interpret-trailers.sh b/t/t7513-interpret-trailers.sh
index 04885d0a5e..602725f939 100755
--- a/t/t7513-interpret-trailers.sh
+++ b/t/t7513-interpret-trailers.sh
@@ -17,6 +17,7 @@ test_expect_success 'setup' '
 
 		body
 	EOF
+	printf "subject\n\nbody" > basic_message_no_eol &&
 	cat >complex_message_body <<-\EOF &&
 		my subject
 
@@ -676,6 +677,12 @@ test_expect_success 'with message that has an old style conflict block' '
 	test_cmp expected actual
 '
 
+test_expect_success 'bla blub' '
+	git interpret-trailers --trailer "Cc: Peff" basic_message_no_eol > intermediary &&
+	git interpret-trailers --trailer "Cc: Peff" intermediary > actual9 &&
+	test_cmp intermediary actual9
+'
+
 test_expect_success 'with commit complex message and trailer args' '
 	cat complex_message_body >expected &&
 	sed -e "s/ Z\$/ /" >>expected <<-\EOF &&


It doesn't feel like an expected behavior but if it is, please tell me.

Regards
Luca

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: git interpret-trailers: behavior with input without trailing newline
  2021-07-08 10:33 git interpret-trailers: behavior with input without trailing newline Luca Weiss
@ 2021-07-13  0:35 ` Jeff King
  0 siblings, 0 replies; 2+ messages in thread
From: Jeff King @ 2021-07-13  0:35 UTC (permalink / raw)
  To: Luca Weiss; +Cc: git

On Thu, Jul 08, 2021 at 10:33:46AM +0000, Luca Weiss wrote:

> I'm investigating a behavior with git interpret-trailers where when
> the input does not end with a newline, git appends the trailer
> directly without a newline; and on running the same command again it
> doesn't detect the previous trailer anymore.
> 
> I've whipped up a quick PoC in form of a new test case in the existing
> test cases of git.

In general, I think commit message inputs should have trailing newlines,
as they'd generally be coming from actual commits, or piped through
git-stripspace to clean things up.

That said, the behavior you're seeing does seem like a bug to me. I
don't think it was intended, and it would be nice to fix it, if you're
up for it. It might be as simple as conditionally adding a newline after
we read the input in trailers.c:read_input_file(). (IMHO even if we do
not end up adding a trailer, normalizing the whitespace in this way
would be a fine behavior for the command).

-Peff

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-07-13  0:35 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-08 10:33 git interpret-trailers: behavior with input without trailing newline Luca Weiss
2021-07-13  0:35 ` Jeff King

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).