git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: josh@joshtriplett.org
To: Junio C Hamano <gitster@pobox.com>
Cc: Tuncer Ayaz <tuncer.ayaz@gmail.com>, git@vger.kernel.org
Subject: Re: co-authoring commits
Date: Wed, 17 Jun 2015 15:28:28 -0700	[thread overview]
Message-ID: <20150617222828.GB24438@cloud> (raw)
In-Reply-To: <xmqqegla57hl.fsf@gitster.dls.corp.google.com>

On Wed, Jun 17, 2015 at 02:51:18PM -0700, Junio C Hamano wrote:
> josh@joshtriplett.org writes:
> 
> > Having more than one author field in a commit would likely break things,
> > but having a coauthor field seems plausible these days.  Git added
> > support for signed commits, and the world didn't end, so it's possible
> > to extend the commit format.
> 
> Something being possible and something being sensible are two
> different things, though.
> 
> I agree "coauthor field that is not understood by anybody" would
> unlikely break existing implementations, but it is not a useful way
> to add this information to commit objects.  For one thing, until you
> teach "git log" or its equivalents in everybody's (re)implementation
> of Git, the field will not be shown, you cannot easily edit it while
> amending or rebasing, "git log --grep=" would not know about it, and
> you would need "git cat-file commit" to view it.
> 
> A footer Co-authored-by: does not have any such issue.

Sure it does; while it would display in raw form because it's a part of
the commit message, you'd still have to teach "git log --author" about
it (git grep is not a substitute), map it through mailmap, teach git
shortlog about it, teach send-email and format-patch to use it in mail
headers, teach repository statistics tools about it, and in general
teach every tool that reads the "author" field of a commit to handle
co-authors.  And if it's a pseudo-field in the commit, you'd also have
to have more complex parsing rules to find and parse it.

Git has almost no understanding of in-band magic "headers" in a commit
message.  It has a bit of support for generating (but not parsing)
Signed-off-by, and send-email has some support for adding *-by headers
to Cc, but a pseudo-header that git tools actually *parse* out of the
commit message would be a first.

> We left commit headers extensible long before we introduced commit
> signing, and we used it to add the "encoding" header.  In general,
> we invent new headers only when structurely necessary.  When you
> declare that the log message for this indiviaul commit is done in
> one encoding, that is not something you would want to _edit_ with
> your editor while you are editing your message.  Similarly you would
> not want to risk touching the GPG signature of a signed commit or a
> signed merge while editing your message.
> 
> The _only_ reason I would imagine why somebody may be tempted to
> think that "coauthor" as part of the object header makes sense is
> because "author" is already there.  You can argue that "author" did
> not have to be part of the object header, and that is right.  I
> would agree with you 100% that "author" did not have to be there.

Author and committer are used by many git tools; if they weren't part of
the object header, they'd need to be part of some pseudo-header with a
standardized format that git can parse.

- Josh Triplett

  parent reply	other threads:[~2015-06-17 22:28 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-17 19:52 co-authoring commits Tuncer Ayaz
2015-06-17 19:58 ` Junio C Hamano
2015-06-17 20:26   ` Tuncer Ayaz
2015-06-17 20:57     ` Junio C Hamano
2015-06-17 21:17       ` josh
2015-06-17 20:59     ` josh
2015-06-17 21:51       ` Junio C Hamano
2015-06-17 22:07         ` Tuncer Ayaz
2015-06-17 22:28         ` josh [this message]
2015-06-17 22:44           ` Junio C Hamano
2015-06-18 21:25             ` Jakub Narębski
2015-06-19  4:25               ` Jeff King
2015-06-19 18:02                 ` Jakub Narębski
2015-06-17 22:52     ` Theodore Ts'o
2015-06-17 23:06       ` josh
2015-06-18 10:54       ` Jason Pyeron
2015-06-18 21:25       ` Tuncer Ayaz
2015-06-19 18:18         ` Jakub Narębski
2015-06-19 21:11           ` Tuncer Ayaz
2015-06-19 21:25             ` Jakub Narębski

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

  List information: http://vger.kernel.org/majordomo-info.html

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

  git send-email \
    --in-reply-to=20150617222828.GB24438@cloud \
    --to=josh@joshtriplett.org \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=tuncer.ayaz@gmail.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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).