Thread (4 messages) flat view 4 messages, 2 authors, 2016-06-15

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help