All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: Toon Claes <toon@iotcl.com>
Cc: "Junio C Hamano" <gitster@pobox.com>,
	"SZEDER Gábor" <szeder.dev@gmail.com>,
	git@vger.kernel.org, "Zeger-Jan van de Weg" <git@zjvandeweg.nl>
Subject: Re: [PATCH 1/1] commit: add support to provide --coauthor
Date: Thu, 10 Oct 2019 12:37:56 -0400	[thread overview]
Message-ID: <20191010163755.GA12756@sigill.intra.peff.net> (raw)
In-Reply-To: <87sgo1q92k.fsf@iotcl.com>

On Thu, Oct 10, 2019 at 10:49:23AM +0200, Toon Claes wrote:

> > 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?

I agree that it's a lot worse to type than "--coauthor". And I don't
really have a problem with us ending up with "--coauthor". My reasoning
in starting with a generic form was mostly:

  - by having _any_ way to do this on the command-line, it makes it
    possible to use in aliases, etc.

  - having a generic form, even if we later add syntactic sugar on
    top, lets people easily experiment with their own trailers

> > 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?

We already have config blocks for specific trailers to describe how they
should be parsed or added. I was thinking that you'd set an option like
"trailer.co-authored-by.ident" to "true". And possibly that could be
used in other places, too (e.g., interpret-trailers code could make sure
it's syntactically valid, but I didn't really think through the
implications there).

And of course we could bake in the defaults for particular trailers if
we wanted to (I think we already do for trailer.signoff.*).

> > 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.

Yes, I agree that ordering and de-duplication rules are useful, too.
Some of that can be expressed already in trailer.* config, but I don't
know if it would be capable enough to do everything you want (though
again, it would be really nice to _make_ it capable enough so that other
types besides co-authored-by can make use of them).

I don't have a hard belief that we have to do it that way (generic
before specific), and I can believe that when you get down to the
details that it might be hard to express some of this stuff in config
rather than C code. But I think we should at least take a look at
whether it's possible, because the benefits of having a generic solution
are nice.

-Peff

  reply	other threads:[~2019-10-10 16:37 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-08  7:49 [PATCH 1/1] commit: add support to provide --coauthor Toon Claes
2019-10-08  8:35 ` Denton Liu
2019-10-08 10:11 ` Phillip Wood
2019-10-08 12:04   ` Phillip Wood
2019-10-09  1:40 ` SZEDER Gábor
2019-10-09  2:19   ` Junio C Hamano
2019-10-09 11:20     ` brian m. carlson
2019-10-09 11:37       ` Junio C Hamano
2019-10-09 20:31     ` Jeff King
2019-10-10  8:49       ` Toon Claes
2019-10-10 16:37         ` Jeff King [this message]
2019-10-11  4:09           ` Junio C Hamano
2019-10-10 23:07         ` brian m. carlson
2019-10-10 11:49       ` Johannes Schindelin
2019-10-10 17:00         ` Denton Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191010163755.GA12756@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=git@vger.kernel.org \
    --cc=git@zjvandeweg.nl \
    --cc=gitster@pobox.com \
    --cc=szeder.dev@gmail.com \
    --cc=toon@iotcl.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.