git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: "Stephen R. van den Berg" <srb@cuci.nl>
Cc: Jakub Narebski <jnareb@gmail.com>, git@vger.kernel.org
Subject: Re: [RFC] origin link for cherry-pick and revert
Date: Tue, 9 Sep 2008 15:59:31 -0400	[thread overview]
Message-ID: <20080909195930.GA2785@coredump.intra.peff.net> (raw)
In-Reply-To: <20080909194354.GA13634@cuci.nl>

On Tue, Sep 09, 2008 at 09:43:54PM +0200, Stephen R. van den Berg wrote:

> >Besides I very much prefer using 'origin <sha1> <sha2>' (as proposed
> 
> The simplicity sounds inviting.  I'd like to hear from others who have
> more experience (than I have) with the git vs. changeset paradigms about
> this.  This allows a bit more flexibility in specifying the origin, the
> question is if it's needed.

One thing to keep in mind is that you are not just proposing some new
behavior for a command, but rather a new header for the data structure
that we will live with from now until eternity. So I think it makes
sense to allow the general case even if nobody is generating it yet, if
there is some chance that it may be useful for somebody to generate in
the future.

And yes, you can get _too_ general to the point where your semantics
become meaningless. But I don't think that is the case here. You are
defining the origin field as "by the way, the difference between state X
and state Y was used to make this commit". cherry-pick just happens to
make Y=X^, but something like rebase could use a series.

As for "git vs changeset": this is git. So you have a sequence of tree
states whether that is what you want or not. Thus you are specifying
the difference between _some_ pair of commits. I don't see any benefit
to restricting it to a commit and one of its parents.

> On the contrary, my current proposal only needs to verify the validity
> of a single commit, changing it like this will require the system to
> verify the validity of two commits.  Given the rareness of the origin
> links this will hardly present a problem, but it *does* increase
> the overhead in checking a bit.

Actually, it could decrease it. If I tell you that you must have "X" and
"X^2", then you could get away with just checking if you have "X". But
you might also want to check whether "X" even _has_ a second parent. And
that means not just looking up the object, but accessing it (resolving
deltas if need be, uncompressing, parsing the object).  With "X" and
"Y", it is just two object lookups.

Now obviously you don't have to be quite so careful in the "hash plus
parent" case. And if you are going to _do_ anything with the origin
field, you will end up accessing those objects anyway. But in that case,
you end up with the same number of lookups and accesses anyway: 2 of
each.

> >On the other hand this leads to the following question: what happens
> >if you cherry-pick or revert a commit which has its own 'origin'
> >links?
> 
> Nothing special.  cherry-pick/revert behave as if the existing origin links
> were not present in the first place.

I think that is smart; if somebody wants to drill down into the history
of origin links, they can do so at lookup time.

-Peff

  reply	other threads:[~2008-09-09 20:00 UTC|newest]

Thread overview: 137+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-09 13:22 [RFC] origin link for cherry-pick and revert Stephen R. van den Berg
2008-09-09 13:38 ` Paolo Bonzini
2008-09-09 14:04   ` Stephen R. van den Berg
2008-09-09 13:48 ` Stephen R. van den Berg
2008-09-09 15:44 ` Jakub Narebski
2008-09-09 16:38   ` Steven Grimm
2008-09-09 19:43   ` Stephen R. van den Berg
2008-09-09 19:59     ` Jeff King [this message]
2008-09-09 20:25       ` Stephen R. van den Berg
2008-09-09 20:42       ` Junio C Hamano
2008-09-09 20:47         ` Shawn O. Pearce
2008-09-09 20:50         ` Jeff King
2008-09-09 22:35           ` Jakub Narebski
2008-09-09 23:07             ` Jakub Narebski
2008-09-10  8:10               ` Paolo Bonzini
2008-09-10  0:13         ` Stephen R. van den Berg
2008-09-10  1:59           ` Junio C Hamano
2008-09-10  5:38             ` Stephen R. van den Berg
2008-09-09 21:05       ` Junio C Hamano
2008-09-09 21:09         ` Jeff King
2008-09-09 23:36           ` Stephen R. van den Berg
2008-09-09 20:54     ` Jakub Narebski
2008-09-09 23:08       ` Stephen R. van den Berg
2008-09-09 23:35     ` Linus Torvalds
2008-09-09 23:58       ` Stephen R. van den Berg
2008-09-10  0:23         ` Linus Torvalds
2008-09-10  5:42           ` Stephen R. van den Berg
2008-09-10 15:30             ` Linus Torvalds
2008-09-10 23:09               ` Stephen R. van den Berg
2008-09-11  0:39                 ` Linus Torvalds
2008-09-11  6:22                   ` Stephen R. van den Berg
2008-09-11  8:20                     ` Jakub Narebski
2008-09-11 12:31                       ` Stephen R. van den Berg
2008-09-11 13:51                         ` Theodore Tso
2008-09-11 15:32                           ` Stephen R. van den Berg
2008-09-11 18:00                             ` Theodore Tso
2008-09-11 19:03                               ` Stephen R. van den Berg
2008-09-11 19:33                                 ` Nicolas Pitre
2008-09-11 19:44                                   ` Stephen R. van den Berg
2008-09-11 20:03                                     ` Nicolas Pitre
2008-09-11 20:24                                       ` Stephen R. van den Berg
2008-09-11 20:05                                     ` Jakub Narebski
2008-09-11 20:22                                       ` Stephen R. van den Berg
2008-09-12  0:30                                         ` A Large Angry SCM
2008-09-12  5:39                                           ` Stephen R. van den Berg
2008-09-11 20:04                                 ` Theodore Tso
2008-09-11 21:46                                   ` Jeff King
2008-09-11 22:56                                     ` Stephen R. van den Berg
2008-09-11 23:01                                       ` Jeff King
2008-09-11 23:17                                         ` Stephen R. van den Berg
2008-09-11 23:10                                     ` Linus Torvalds
2008-09-11 23:26                                       ` Jeff King
2008-09-11 23:36                                       ` Stephen R. van den Berg
2008-09-11 15:02                         ` Nicolas Pitre
2008-09-11 16:00                           ` Stephen R. van den Berg
2008-09-11 17:02                             ` Nicolas Pitre
2008-09-11 18:44                               ` Stephen R. van den Berg
2008-09-11 20:00                                 ` Nicolas Pitre
2008-09-11 21:05                               ` Junio C Hamano
2008-09-11 22:32                                 ` Stephen R. van den Berg
2008-09-11 22:40                                   ` Stephen R. van den Berg
2008-09-11 12:28                     ` A Large Angry SCM
2008-09-11 12:39                       ` Stephen R. van den Berg
2008-09-12  0:03                         ` A Large Angry SCM
2008-09-12  0:13                           ` Stephen R. van den Berg
2008-09-11 15:39                     ` Linus Torvalds
2008-09-11 16:01                       ` Paolo Bonzini
2008-09-11 16:23                         ` Linus Torvalds
2008-09-11 20:16                           ` Stephen R. van den Berg
2008-09-11 16:53                       ` Jakub Narebski
2008-09-11 19:23                       ` Stephen R. van den Berg
2008-09-11 19:45                         ` Nicolas Pitre
2008-09-11 19:55                           ` Stephen R. van den Berg
2008-09-11 20:27                             ` Nicolas Pitre
2008-09-12  8:50                               ` Stephen R. van den Berg
2008-09-11 21:01                             ` Theodore Tso
2008-09-12  8:40                               ` Stephen R. van den Berg
2008-09-10  8:30           ` Paolo Bonzini
2008-09-10 15:32             ` Linus Torvalds
2008-09-10 15:37               ` Paolo Bonzini
2008-09-10 15:43                 ` Linus Torvalds
2008-09-10 15:46                   ` Linus Torvalds
2008-09-10 15:57                     ` Paolo Bonzini
2008-09-10 23:15                       ` Stephen R. van den Berg
2008-09-10 16:23                     ` Jakub Narebski
2008-09-11 23:28                       ` Sam Vilain
2008-09-11 23:44                         ` Linus Torvalds
2008-09-12  2:24                           ` Sam Vilain
2008-09-12  5:47                           ` Stephen R. van den Berg
2008-09-12  6:19                             ` Rogan Dawes
2008-09-12  6:56                               ` Stephen R. van den Berg
2008-09-12 14:58                             ` Theodore Tso
2008-09-12 15:05                               ` Paolo Bonzini
2008-09-12 15:11                               ` Jakub Narebski
2008-09-12 15:40                                 ` Paolo Bonzini
2008-09-12 16:00                                   ` Theodore Tso
2008-09-12 15:54                               ` Stephen R. van den Berg
2008-09-12 16:19                                 ` Jeff King
2008-09-12 16:43                                   ` Stephen R. van den Berg
2008-09-12 18:44                                     ` Theodore Tso
2008-09-12 20:56                                       ` Stephen R. van den Berg
2008-09-15 12:21                                 ` Sam Vilain
2008-09-09 23:59       ` Jakub Narebski
2008-09-09 21:13 ` Petr Baudis
2008-09-09 22:56   ` Stephen R. van den Berg
2008-09-09 23:05     ` Petr Baudis
2008-09-09 23:32       ` Stephen R. van den Berg
2008-09-10  9:35       ` [RFC] origin link for cherry-pick and revert, and more about porcelain-level metadata Paolo Bonzini
2008-09-10 10:44         ` Petr Baudis
2008-09-10 11:49           ` Stephen R. van den Berg
2008-09-10 12:30             ` Petr Baudis
2008-09-10 13:14               ` Stephen R. van den Berg
2008-09-10 14:33         ` Dmitry Potapov
2008-09-10 15:15           ` Stephen R. van den Berg
2008-09-10 15:24             ` Paolo Bonzini
2008-09-10 12:21     ` [RFC] origin link for cherry-pick and revert Theodore Tso
2008-09-10 14:16       ` Stephen R. van den Berg
2008-09-10 15:10         ` Jeff King
2008-09-10 21:50           ` Stephen R. van den Berg
2008-09-10 21:54             ` Jeff King
2008-09-10 22:34               ` Stephen R. van den Berg
2008-09-10 22:55                 ` Jeff King
2008-09-10 23:19                   ` Stephen R. van den Berg
2008-09-11  5:16                     ` Paolo Bonzini
2008-09-11  7:55                       ` Stephen R. van den Berg
2008-09-11  8:45                         ` Paolo Bonzini
2008-09-11 12:33                         ` A Large Angry SCM
2008-09-11  2:46                   ` Nicolas Pitre
2008-09-10 16:18         ` Theodore Tso
2008-09-10 16:40         ` Petr Baudis
2008-09-10 17:58           ` Paolo Bonzini
2008-09-10 22:44             ` Stephen R. van den Berg
2008-09-10  8:45   ` Paolo Bonzini
2008-09-23 13:51   ` Recording "partial merges" (was: Re: [RFC] origin link for cherry-pick and revert) Peter Krefting
2008-09-10 20:32 ` [RFC] origin link for cherry-pick and revert Miklos Vajna
2008-09-10 20:55   ` Nicolas Pitre
2008-09-10 21:06     ` Miklos Vajna

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=20080909195930.GA2785@coredump.intra.peff.net \
    --to=peff@peff.net \
    --cc=git@vger.kernel.org \
    --cc=jnareb@gmail.com \
    --cc=srb@cuci.nl \
    /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).