From: Jakub Narebski <jnareb@gmail.com>
To: git@vger.kernel.org
Subject: Re: [RFC] [PATCH 0/5] Implement 'prior' commit object links (and
Date: Sat, 29 Apr 2006 20:07:36 +0200 [thread overview]
Message-ID: <e309vq$m2r$1@sea.gmane.org> (raw)
In-Reply-To: Pine.LNX.4.64.0604291006270.3701@g5.osdl.org
Linus Torvalds wrote:
> - Case 1: the
>
> merge-base <sha1>
[...]
> - Case 2: the
>
> note merge-base <sha1>
[...]
> - Case 3: the
>
> link <sha1> merge-base
[...]
> In short, the difference between three headers that on the face of it say
> exactly the same thing: "merge-base <sha1>", "note merge-base <sha1>", and
> "link merge-base <sha1>" is not that they have different syntax (hey, even
> the syntax itself is almost identical), but exactly the fact that they
> have different implications and _meaning_.
>
> Two of the three have no unintended consequences. One ("note") has no
> technical "consequences" at _all_, by definition. The other "merge-base"
> has no technical "unintended" at all, because it's throught through, and
> has been fully defined.
>
> The third? "unintended consequences". It doesn't have a clear definition
> ("It's cool. You can use it for any link you want"). So pretty much BY
> DESIGN, it's set up so that you don't know what the consequences of it
> will be for a project.
>
> And that's why "case 3" it's bad. Even though it looks very much like the
> two other ones.
IF (and that is big if) git commit header will be extended to have some
extra "link" (enforcing connectivity) headers, like proposed "bind" for
subprojects, "prev" for pu-like union branches, "merge-base" for merges,
there would be repeated work on enforcing connectivity. Hence generic
"link" header (formerly "related") proposal. Having fsck report broken
links (or not), having purge removing commits (objects) reachable only via
"link" headers, having pull download commits via "link" headers... have I
forgot anything? It _seems_ that this part is common, and does not depend
on semantics.
But with "links" (connectivity headers) there always would be some other
consequences. For example info/grafts deals for now only with commit
parents, and extending the format could be difficult.
And of course if we want connectivity, this is for some reason, so the
"link" has some other consequences, for example "prev" and "merge-base" for
merging, "bind" for checkout, merge (but differently), etc.
I think that if it is 'helper' information (i.e. information which is
helpful, but we can do without it) and of no real importance to user then
use "note". If it is of importance to user (for example "cherrypick" or
"reverted") and of use to git, then repeat such info in "note" header to
avoid relying on parsing free-form part aka. commit comment. If
connectivity is needed... hmmm...
--
Jakub Narebski
Warsaw, Poland
next prev parent reply other threads:[~2006-04-29 18:07 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-29 16:51 [RFC] [PATCH 0/5] Implement 'prior' commit object links (and linux
2006-04-29 17:35 ` Linus Torvalds
2006-04-29 18:07 ` Jakub Narebski [this message]
2006-04-29 19:30 ` Junio C Hamano
2006-04-29 18:27 ` Jakub Narebski
2006-04-29 20:44 ` Junio C Hamano
2006-04-29 20:58 ` Jakub Narebski
2006-04-30 15:21 ` Jakub Narebski
2006-04-30 23:19 ` Junio C Hamano
2006-05-01 0:50 ` Junio C Hamano
2006-05-01 1:25 ` Sam Vilain
2006-05-01 4:44 ` Jakub Narebski
2006-05-01 6:58 ` Junio C Hamano
2006-05-02 0:21 ` Sam Vilain
2006-05-02 7:08 ` Martin Langhoff
2006-05-01 0:05 ` Sam Vilain
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='e309vq$m2r$1@sea.gmane.org' \
--to=jnareb@gmail.com \
--cc=git@vger.kernel.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).