Subject: Re: [PATCH RFC] git-am: support any number of signatures

From: Junio C Hamano <[email-masked]>
Date: Fri, 13 Jun 2014 10:32:09 -0700

"Michael S. Tsirkin" <[email-masked]> writes:

> On Thu, Jun 12, 2014 at 12:07:03PM -0700, Junio C Hamano wrote:
>> "Michael S. Tsirkin" <[email-masked]> writes:
>> ...
>> > 1.  new parameter am.signoff can be used any number
>> > 	of times:
>> >
>> > [am]
>> > 	signoff = "Reviewed-by: Michael S. Tsirkin <[email-masked]>"
>> > 	signoff = "Signed-off-by: Michael S. Tsirkin <[email-masked]>"
>> >
>> > 	if set all signatures are picked up when git am -s is used.
>> 
>> How does this interact with the logic to avoid appending the same
>> Signed-off-by: line as the last one the incoming message already
>> has?
>
> Not handled if you have multiple signatures.
> That will have to be fixed.
> Do we only care about the last line?
>
> Signed-off-by: A
> Signed-off-by: B
>
> do we want to add
>
> Signed-off-by: A
>
> or would it be better to replace with
> Signed-off-by: B
> Signed-off-by: A
>
> ?
>
> Current git am will add A twice, I wonder if this is
> a feature or a bug.

This is very much deliberate.

Appending A after existing A and B is meant to record that the patch
originated from A, passed thru B possibly with changes by B, came
back to A who wants to assert that the result is still under DCO.

The only case we can safely omit appending A's sign-off is when the
last one in the chain is by A.  Imagine that you had a patch signed
off by B, which A may have tweaked and forwarded under DCO with A's
sign-off.  Such a patch would have sign-off chain B-A.

Now A makes further changes to the patch and says "the further
change is also something I am authorized to release as open source"
with the "-s" option or some other way.  It would not change that A
can contribute under DCO if we did not add an extra A after existing
B-A sign-off chain in that case.