Re: [RFC] origin link for cherry-pick and revert

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Theodore Tso <tytso@...>
Cc: Petr Baudis <pasky@...>, <git@...>
Date: Wednesday, September 10, 2008 - 10:16 am

Theodore Tso wrote:


Well, the definition of the origin link (and a back/forwardport) is that:
- You (as a developer) consider the link relevant for posterity (IOW,
  you consider it to be a proper back/forwardport which should be
  recognisable as such).
- The back/forwardport always has to reference some existing (stable) commit.

Especially the second condition always holds at the time of creation of
the backport (or forwardport, for that matter).  I'm not quite sure
which circumstances you allude to above which would violate this
requirement, can you elaborate on that?


The renumbering is not a problem, renumbering is a rare operation since
a project's history is supposed to be stable.  And even if renumbering
is performed, it is a well understood operation of which the renumbering
of the origin links imposes a negligible overhead on top of the existing
renumbering overhead.




This is nice, I admit, but it has the following downsides:
- It is nontrivial to automate this on execution of "git cherry-pick".
- In a distributed environment this requires a network-reachable bug
  database.
- A network-reachable bug database means that suddenly git needs network
  access for e.g. cherry-pick, revert, gitk, log --graph, blame.
- Network queries for commits containing references kind of kills
  performance.
- Some backports don't have entries in a bug database because they
  weren't bugs to begin with, in which case it becomes impossible to add
  an identifier to the commit message after the fact.
- It relies heavily on tools outside of git-core, which raises the
  threshold for using it.


I'm not opposed to links like this, but I consider them a useful extra.
The link back is computationally of the same order of magnitude to find
all existing children of a certain commit; which is well understood and
within reach in most cases.


Yes, you would.  You'd notice that either:
- One origin will point to the other commit (recommended practice,
  cherry-pick ripple-through, so to speak).
- Both origin links point to the same non-existent commit.




True.  The point is that specifying a definition for a origin
headerfield will narrow down how it is and can be used.  Free-form is
just that, free-form, and merely defines things by convention.


Free form can take the form of plaintext explanations detailing the
relationship in a foreign language (worst case example).



True.  What I was alluding to, is that if someone includes a
back/forwardport link in the free-form part of the commit message, then
you cannot predict how they'll do that.  In case of the origin link,
*if* it is used, it will always look the same.


Git is rather portable, I'd say, so anyone wanting to use the new
feature can be bothered to upgrade.


You mean you'd prefer some kind of AI solution to aid the user in
writing misspelling-free bug identifiers over a simple clean origin link
in the header of a commit message?


Same as above:
If developers care about the backport information, they *can* be
bothered to upgrade git.  It's not rocketscience.



The recommended practice here is quite simple:

- Origin links should only be created pointing to stable commits (i.e.
  commits which you'd be willing to publish or already have published).

- This implies that pointing an origin link at a commit in a strain that
  you still want to rebase is asking for trouble.  Doing this is akin to
  doing a merge between two branches and then you start rebasing 4
  commits *below* the mergepoint.  Don't do that.

- The only special case I'd allow is if you rebase a strain and the
  origin link points from one of the commits in the strain to be rebased
  back *into* the same strain being rebased (most likely a revert).
  Rebase can be bothered to renumber the origin link in this case.

And when you stick to those rules, the problem you're describing doesn't
happen.


Unless that commit already lies in the past, and you have no way to
actually add the bugid to the commit.


This only works if you know at time of commit that you want to backport
it at some later date.


True.  It's almost as much work.  Though it seems rather silly to start
suppressing lines in the free-form text area, if one can add a proper
headerfield.


That isn't true.  Finding commits which have origin links to a certain
commit is just as hard as finding all children of a certain commit.
It's not exactly instant, but it is not a big problem, and depending on
the amount of repositorytraversal you already are doing, it might even
be a negligible amount of extra overhead.


The database needs to be available to anyone doing a clone of the
repository, which implies that:
- It needs to be network based.
- It needs controlled write access (which is a mess).
- It is slow during blame/gitk operations.
- It is rather nontrivial to get things setup such that someone (after
  cloning the repository) is able to run cherry-pick/gitk/blame/revert
  and have those commands use the database transparently.
-- 
Sincerely,
           Stephen R. van den Berg.

"Am I paying for this abuse or is it extra?"
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Tue Sep 9, 9:22 am)
Re: [RFC] origin link for cherry-pick and revert, Miklos Vajna, (Wed Sep 10, 4:32 pm)
Re: [RFC] origin link for cherry-pick and revert, Nicolas Pitre, (Wed Sep 10, 4:55 pm)
Re: [RFC] origin link for cherry-pick and revert, Miklos Vajna, (Wed Sep 10, 5:06 pm)
Re: [RFC] origin link for cherry-pick and revert, Petr Baudis, (Tue Sep 9, 5:13 pm)
Re: [RFC] origin link for cherry-pick and revert, Paolo Bonzini, (Wed Sep 10, 4:45 am)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Tue Sep 9, 6:56 pm)
Re: [RFC] origin link for cherry-pick and revert, Theodore Tso, (Wed Sep 10, 8:21 am)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Wed Sep 10, 10:16 am)
Re: [RFC] origin link for cherry-pick and revert, Petr Baudis, (Wed Sep 10, 12:40 pm)
Re: [RFC] origin link for cherry-pick and revert, Paolo Bonzini, (Wed Sep 10, 1:58 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Wed Sep 10, 6:44 pm)
Re: [RFC] origin link for cherry-pick and revert, Theodore Tso, (Wed Sep 10, 12:18 pm)
Re: [RFC] origin link for cherry-pick and revert, Jeff King, (Wed Sep 10, 11:10 am)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Wed Sep 10, 5:50 pm)
Re: [RFC] origin link for cherry-pick and revert, Jeff King, (Wed Sep 10, 5:54 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Wed Sep 10, 6:34 pm)
Re: [RFC] origin link for cherry-pick and revert, Jeff King, (Wed Sep 10, 6:55 pm)
Re: [RFC] origin link for cherry-pick and revert, Nicolas Pitre, (Wed Sep 10, 10:46 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Wed Sep 10, 7:19 pm)
Re: [RFC] origin link for cherry-pick and revert, Paolo Bonzini, (Thu Sep 11, 1:16 am)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Thu Sep 11, 3:55 am)
Re: [RFC] origin link for cherry-pick and revert, A Large Angry SCM, (Thu Sep 11, 8:33 am)
Re: [RFC] origin link for cherry-pick and revert, Paolo Bonzini, (Thu Sep 11, 4:45 am)
Re: [RFC] origin link for cherry-pick and revert, Petr Baudis, (Tue Sep 9, 7:05 pm)
Re: [RFC] origin link for cherry-pick and revert, and more a..., Stephen R. van den Berg, (Wed Sep 10, 11:15 am)
Re: [RFC] origin link for cherry-pick and revert, and more a..., Stephen R. van den Berg, (Wed Sep 10, 7:49 am)
Re: [RFC] origin link for cherry-pick and revert, and more a..., Stephen R. van den Berg, (Wed Sep 10, 9:14 am)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Tue Sep 9, 7:32 pm)
Re: [RFC] origin link for cherry-pick and revert, Jakub Narebski, (Tue Sep 9, 11:44 am)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Tue Sep 9, 3:43 pm)
Re: [RFC] origin link for cherry-pick and revert, Linus Torvalds, (Tue Sep 9, 7:35 pm)
Re: [RFC] origin link for cherry-pick and revert, Jakub Narebski, (Tue Sep 9, 7:59 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Tue Sep 9, 7:58 pm)
Re: [RFC] origin link for cherry-pick and revert, Linus Torvalds, (Tue Sep 9, 8:23 pm)
Re: [RFC] origin link for cherry-pick and revert, Paolo Bonzini, (Wed Sep 10, 4:30 am)
Re: [RFC] origin link for cherry-pick and revert, Linus Torvalds, (Wed Sep 10, 11:32 am)
Re: [RFC] origin link for cherry-pick and revert, Paolo Bonzini, (Wed Sep 10, 11:37 am)
Re: [RFC] origin link for cherry-pick and revert, Linus Torvalds, (Wed Sep 10, 11:43 am)
Re: [RFC] origin link for cherry-pick and revert, Linus Torvalds, (Wed Sep 10, 11:46 am)
Re: [RFC] origin link for cherry-pick and revert, Jakub Narebski, (Wed Sep 10, 12:23 pm)
Re: [RFC] origin link for cherry-pick and revert, Sam Vilain, (Thu Sep 11, 7:28 pm)
Re: [RFC] origin link for cherry-pick and revert, Linus Torvalds, (Thu Sep 11, 7:44 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Fri Sep 12, 1:47 am)
Re: [RFC] origin link for cherry-pick and revert, Theodore Tso, (Fri Sep 12, 10:58 am)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Fri Sep 12, 11:54 am)
Re: [RFC] origin link for cherry-pick and revert, Sam Vilain, (Mon Sep 15, 8:21 am)
Re: [RFC] origin link for cherry-pick and revert, Jeff King, (Fri Sep 12, 12:19 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Fri Sep 12, 12:43 pm)
Re: [RFC] origin link for cherry-pick and revert, Theodore Tso, (Fri Sep 12, 2:44 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Fri Sep 12, 4:56 pm)
Re: [RFC] origin link for cherry-pick and revert, Jakub Narebski, (Fri Sep 12, 11:11 am)
Re: [RFC] origin link for cherry-pick and revert, Paolo Bonzini, (Fri Sep 12, 11:40 am)
Re: [RFC] origin link for cherry-pick and revert, Theodore Tso, (Fri Sep 12, 12:00 pm)
Re: [RFC] origin link for cherry-pick and revert, Paolo Bonzini, (Fri Sep 12, 11:05 am)
Re: [RFC] origin link for cherry-pick and revert, Rogan Dawes, (Fri Sep 12, 2:19 am)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Fri Sep 12, 2:56 am)
Re: [RFC] origin link for cherry-pick and revert, Sam Vilain, (Thu Sep 11, 10:24 pm)
Re: [RFC] origin link for cherry-pick and revert, Paolo Bonzini, (Wed Sep 10, 11:57 am)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Wed Sep 10, 7:15 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Wed Sep 10, 1:42 am)
Re: [RFC] origin link for cherry-pick and revert, Linus Torvalds, (Wed Sep 10, 11:30 am)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Wed Sep 10, 7:09 pm)
Re: [RFC] origin link for cherry-pick and revert, Linus Torvalds, (Wed Sep 10, 8:39 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Thu Sep 11, 2:22 am)
Re: [RFC] origin link for cherry-pick and revert, Linus Torvalds, (Thu Sep 11, 11:39 am)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Thu Sep 11, 3:23 pm)
Re: [RFC] origin link for cherry-pick and revert, Nicolas Pitre, (Thu Sep 11, 3:45 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Thu Sep 11, 3:55 pm)
Re: [RFC] origin link for cherry-pick and revert, Theodore Tso, (Thu Sep 11, 5:01 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Fri Sep 12, 4:40 am)
Re: [RFC] origin link for cherry-pick and revert, Nicolas Pitre, (Thu Sep 11, 4:27 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Fri Sep 12, 4:50 am)
Re: [RFC] origin link for cherry-pick and revert, Jakub Narebski, (Thu Sep 11, 12:53 pm)
Re: [RFC] origin link for cherry-pick and revert, Paolo Bonzini, (Thu Sep 11, 12:01 pm)
Re: [RFC] origin link for cherry-pick and revert, Linus Torvalds, (Thu Sep 11, 12:23 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Thu Sep 11, 4:16 pm)
Re: [RFC] origin link for cherry-pick and revert, A Large Angry SCM, (Thu Sep 11, 8:28 am)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Thu Sep 11, 8:39 am)
Re: [RFC] origin link for cherry-pick and revert, A Large Angry SCM, (Thu Sep 11, 8:03 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Thu Sep 11, 8:13 pm)
Re: [RFC] origin link for cherry-pick and revert, Jakub Narebski, (Thu Sep 11, 4:20 am)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Thu Sep 11, 8:31 am)
Re: [RFC] origin link for cherry-pick and revert, Nicolas Pitre, (Thu Sep 11, 11:02 am)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Thu Sep 11, 12:00 pm)
Re: [RFC] origin link for cherry-pick and revert, Nicolas Pitre, (Thu Sep 11, 1:02 pm)
Re: [RFC] origin link for cherry-pick and revert, Junio C Hamano, (Thu Sep 11, 5:05 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Thu Sep 11, 6:32 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Thu Sep 11, 6:40 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Thu Sep 11, 2:44 pm)
Re: [RFC] origin link for cherry-pick and revert, Nicolas Pitre, (Thu Sep 11, 4:00 pm)
Re: [RFC] origin link for cherry-pick and revert, Theodore Tso, (Thu Sep 11, 9:51 am)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Thu Sep 11, 11:32 am)
Re: [RFC] origin link for cherry-pick and revert, Theodore Tso, (Thu Sep 11, 2:00 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Thu Sep 11, 3:03 pm)
Re: [RFC] origin link for cherry-pick and revert, Theodore Tso, (Thu Sep 11, 4:04 pm)
Re: [RFC] origin link for cherry-pick and revert, Jeff King, (Thu Sep 11, 5:46 pm)
Re: [RFC] origin link for cherry-pick and revert, Linus Torvalds, (Thu Sep 11, 7:10 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Thu Sep 11, 7:36 pm)
Re: [RFC] origin link for cherry-pick and revert, Jeff King, (Thu Sep 11, 7:26 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Thu Sep 11, 6:56 pm)
Re: [RFC] origin link for cherry-pick and revert, Jeff King, (Thu Sep 11, 7:01 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Thu Sep 11, 7:17 pm)
Re: [RFC] origin link for cherry-pick and revert, Nicolas Pitre, (Thu Sep 11, 3:33 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Thu Sep 11, 3:44 pm)
Re: [RFC] origin link for cherry-pick and revert, Jakub Narebski, (Thu Sep 11, 4:05 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Thu Sep 11, 4:22 pm)
Re: [RFC] origin link for cherry-pick and revert, A Large Angry SCM, (Thu Sep 11, 8:30 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Fri Sep 12, 1:39 am)
Re: [RFC] origin link for cherry-pick and revert, Nicolas Pitre, (Thu Sep 11, 4:03 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Thu Sep 11, 4:24 pm)
Re: [RFC] origin link for cherry-pick and revert, Jakub Narebski, (Tue Sep 9, 4:54 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Tue Sep 9, 7:08 pm)
Re: [RFC] origin link for cherry-pick and revert, Jeff King, (Tue Sep 9, 3:59 pm)
Re: [RFC] origin link for cherry-pick and revert, Junio C Hamano, (Tue Sep 9, 5:05 pm)
Re: [RFC] origin link for cherry-pick and revert, Jeff King, (Tue Sep 9, 5:09 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Tue Sep 9, 7:36 pm)
Re: [RFC] origin link for cherry-pick and revert, Junio C Hamano, (Tue Sep 9, 4:42 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Tue Sep 9, 8:13 pm)
Re: [RFC] origin link for cherry-pick and revert, Jeff King, (Tue Sep 9, 4:50 pm)
Re: [RFC] origin link for cherry-pick and revert, Jakub Narebski, (Tue Sep 9, 6:35 pm)
Re: [RFC] origin link for cherry-pick and revert, Jakub Narebski, (Tue Sep 9, 7:07 pm)
Re: [RFC] origin link for cherry-pick and revert, Paolo Bonzini, (Wed Sep 10, 4:10 am)
Re: [RFC] origin link for cherry-pick and revert, Shawn O. Pearce, (Tue Sep 9, 4:47 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Tue Sep 9, 4:25 pm)
Re: [RFC] origin link for cherry-pick and revert, Steven Grimm, (Tue Sep 9, 12:38 pm)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Tue Sep 9, 9:48 am)
Re: [RFC] origin link for cherry-pick and revert, Paolo Bonzini, (Tue Sep 9, 9:38 am)
Re: [RFC] origin link for cherry-pick and revert, Stephen R. van den Berg, (Tue Sep 9, 10:04 am)