From: Junio C Hamano Date: Wed, 28 Oct 2009 07:14:55 GMT Subject: Re: [PATCH] commit: More generous accepting of RFC-2822 footer lines. Message-ID: <7vk4yguh00.fsf@alter.siamese.dyndns.org> In-Reply-To: <20091028000511.GK10505@spearce.org> "Shawn O. Pearce" writes: > David Brown wrote: >> From: David Brown >> >> '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-]+:". Together with your suggestion for tests, the above makes quite a lot of sense to me. There is one thing to be careful about. When deciding to omit adding a new S-o-b, we deliberately check only the last S-o-b to see if it matches what we are trying to add. This is so that a message from you, that has my patch that was reviewed and touched up by you with your sign-off, i.e. S-o-b: Junio S-o-b: Shawn will not be prevented to have another sign-off by me, so that I can certify that I know that your change I received from you in the patch is kosher. IOW, this is not a "duplicate" check. The order of S-o-b: matters as it records the flow of the patch.