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
next prev 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).