git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tuncer Ayaz <tuncer.ayaz@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Josh Triplett <josh@joshtriplett.org>, git@vger.kernel.org
Subject: Re: co-authoring commits
Date: Thu, 18 Jun 2015 00:07:28 +0200	[thread overview]
Message-ID: <CAOvwQ4j+62ETPZbikkWeo45a=NgOAnf3uACLQm_D-bbpPoC22A@mail.gmail.com> (raw)
In-Reply-To: <xmqqegla57hl.fsf@gitster.dls.corp.google.com>

On Wed, Jun 17, 2015 at 11:51 PM, 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.
>
> 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.
>
> But that is too late to change.
>
> And being consistent with a past mistake is not a good reason to
> repeat that same mistake.

Makes sense.

Without intimate knowledge of current internals,
what about the following potentially crazy plan?

1. demote/deprecate GIT_AUTHOR_*

2. implement a new author-ship model that supports both and treats the
   old entries as supported-but-deprecated

3. maybe auto-migrate entries in the repo, or add a switch to do that
   as part of git-gc or another process

4. extend tooling to support 'commit --add-author' or similar

5. teach git.git tools to properly display additional authors as
   equals in commit ownership

6. let other tools catch up, but rest assured nothing was broken

7. consider other use cases and different implementations
   (flexibility), to not have to repeat this 5 years down the road for
   another field

  reply	other threads:[~2015-06-17 22:08 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 [this message]
2015-06-17 22:28         ` josh
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

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

  git send-email \
    --in-reply-to='CAOvwQ4j+62ETPZbikkWeo45a=NgOAnf3uACLQm_D-bbpPoC22A@mail.gmail.com' \
    --to=tuncer.ayaz@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=josh@joshtriplett.org \
    /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 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 NNTP newsgroup(s).