Subject: Re: [PATCH 1/1] commit: add support to provide --coauthor

From: Toon Claes <[email-masked]>
Date: Thu, 10 Oct 2019 10:49:23 +0200

Jeff King <[email-masked]> writes: 
 
> Yeah, I'd agree that we should start first with a generic 
> trailer line.

IIUC you are suggesting something like this?

  git commit --trailer="Co-authored-by: <coauthor>"

I really want to consider this, but I do not understand how that 
improves the user experience compared to adding that trailer 
manually when typing the commit message in your $EDITOR?

> There might be some advantage to building trailer-specific 
> intelligence on top of that (for instance, it would be nice for 
> coauthor trailers to expand names the way --author does). But 
> that can come after, and might not even be in the form of 
> specific command-line options. E.g., if the coauthor trailer 
> could be marked in config as "this is an ident", then we we 
> would know to expand it. And the same could apply to acked, 
> reported, etc.

Wouldn't making it a generic --trailer option make this more 
complex? I can image users might even want to use the --trailer 
argument to indicate which issue the commit closes:

  git commit --trailer="Closes: $BUGNUMBER"

So, how can we make the config understand it has to expand 
Co-authored-by and not Closes?

Maybe, because I was looking at 
https://git.wiki.kernel.org/index.php/CommitMessageConventions#Trailers,
it will probably be safe to expand a name when a '-by' suffix is 
used.

With this pattern in place there is a slight improvement compared 
to typing the trailer in your $EDITOR, because the user can pass 
--trailer="Anything-by: name" and the trailer is expanded to 
`Anything-by: name <[email-masked]>".

But I'd like to note another thing, and let me circle back to 
SZEDER Gábor's reply:

> I wonder how we are supposed to use this trailer in the Git 
> project, in particular in combination with Signed-off-by. 
> Should all (co)authors sign off as well?  Or will Co-authored-by 
> imply Signed-off-by?

For this purpose I think it's useful git understands what 
"Co-authored-by" means, so when you run: 

  git commit -s --coauthor=<coauthor>

The following trailer will be added:

  Co-authored-by: <coauthor>
  Signed-off-by: <author>
  Signed-off-by: <coauthor>

So I'm still pro of adding a --co-author option, but I do 
understand the concerns to avoid adding an option for all the 
possible trailers found in the link above.

-- 
Toon