Subject: Re: [PATCH] commit: More generous accepting of RFC-2822 footer lines.

From: "Shawn O. Pearce" <[email-masked]>
Date: Tue, 27 Oct 2009 17:05:11 -0700

David Brown <[email-masked]> wrote:
> From: David Brown <[email-masked]>
> 
> 'git commit -s' will insert a blank line before the Signed-off-by
> line at the end of the message, unless this last line is a
> Signed-off-by line itself.  Common use has other trailing lines
> at the ends of commit text, in the style of RFC2822 headers.
> 
> Be more generous in considering lines to be part of this footer.
> This may occasionally leave out the blank line for cases where
> the commit text happens to start with a word ending in a colon,
> but this results in less fixups than the extra blank lines with
> Acked-by, or other custom footers.

The nasty perl I use in Gerrit's commit-msg hook is a bit more
expressive.  Basically the rule is we insert a blank line before
the new footer unless all lines in the last paragraph (so all text
after the last "\n\n" sequence) match the regex "^[a-zA-Z0-9-]+:".
 
> +test_expect_success 'signoff gap' '
> +
> +	echo 3 >positive &&
> +	git add positive &&
> +	alt="Alt-RFC-822-Header: Value" &&
> +	git commit -s -m "welcome
> +
> +$alt" &&

I wonder if we shouldn't also have a test case for the message:

	msg="test

this is a test that
fixes: 42.
"

as the result would be expected to be:

	exp="test

this is a test that
fixes: 42.

Signed-off-by A. U. Thor <...>
"

But:

	msg="test

this is a test

fixes: 42
"

would produce:

	exp="test

this is a test

fixes: 42
Signed-off-by A. U. Thor <...>
"

-- 
Shawn.