More builtin git-am issues..
From: Linus Torvalds <torvalds@linux-foundation.org>
Date: 2016-06-15 23:06:27
Ok, this may not be new either, but I'm trying to be careful when
using "git am" these days, because I know it got rewritten.
And I _think_ the whitespace handling for adding sign-offs got scrogged.
I just applied the usual patch-bomb from Andrew, and several of the
commits (but not all) end up looking like this:
Cc: [off-list ref] [3.15+]
Signed-off-by: Andrew Morton [off-list ref]
Signed-off-by: Linus Torvalds [off-list ref]
note the extraneous whitespace line between Andrew's sign-off and mine.
What's odd is that the emails I'm applying literally don't have that
extra empty line, so it's git that somehow decides to add it. Only
for a few cases, though.
The pattern *seems* to be that git now looks at the *first* line of
the sign-off block and decides that "this is a sign-off block if that
first line has a sign-ff on it, ie this is fine:
Signed-off-by: Andrea Arcangeli [off-list ref]
Cc: Pavel Emelyanov [off-list ref]
Cc: Dave Hansen [off-list ref]
Cc: Linus Torvalds [off-list ref]
Signed-off-by: Andrew Morton [off-list ref]
Signed-off-by: Linus Torvalds [off-list ref]
but the failing cases have a comment by Andrew:
[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Tang Chen [off-list ref]
Cc: Xishi Qiu [off-list ref]
Cc: Yasuaki Ishimatsu [off-list ref]
Cc: Kamezawa Hiroyuki [off-list ref]
Cc: Taku Izumi [off-list ref]
Cc: Gu Zheng [off-list ref]
Cc: Naoya Horiguchi [off-list ref]
Cc: Vlastimil Babka [off-list ref]
Cc: Mel Gorman [off-list ref]
Cc: David Rientjes [off-list ref]
Cc: [off-list ref] [4.2.x]
Signed-off-by: Andrew Morton [off-list ref]
Signed-off-by: Linus Torvalds [off-list ref]
ie that "[akpm@linux-foundation.org: coding-style fixes]" makes git am
now decide that the previous block of text was not a sign-off block,
so it adds an empty line before adding my sign-off. But very obviously
it *was* a sign-off block.
Maybe this isn't new at all, and it's just that I notice because I'm
looking for "git am" oddities. Something is clearly wrong in
"has_conforming_footer()".
I *think* it's this part:
if (!(found_rfc2822 ||
is_cherry_picked_from_line(buf + i, k - i - 1)))
return 0;
which basically returns 0 for _any_ line in the footer that doesn't
match the found_rfc2822 format.
I really think that if we find any "Signed-off-by:" in that last
chunk, we should not add a whitespace.
Comments?
Linus