[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Merging emacs-23 into trunk

From: Eli Zaretskii
Subject: Re: Merging emacs-23 into trunk
Date: Wed, 10 Nov 2010 21:19:06 +0200

> From: Stefan Monnier <address@hidden>
> Cc: address@hidden
> Date: Wed, 10 Nov 2010 14:03:05 -0500
> > You are cherry-picking here; cherry-picking is explicitly not tracked
> > in the history DAG.
> Actually, I'm not cherry-picking

I think you are.  From the docs of "bzr merge":

  When merging a branch, by default the tip will be merged.  To pick a
  different revision, pass --revision.  If you specify two values, the
  first will be used as BASE and the second one as OTHER.  Merging
  individual revisions, or a subset of available revisions, like this is
  commonly referred to as “cherrypicking”.

> Since all changes until A have been merged, merging A..B will end up
> with all changes until B: I'm not picking some changes and avoiding
> others.  And indeed
>   bzr merge -r A..B
> will correctly track the history in the case where A has already been
> merged and committed.

Maybe it's some exception, for when A is the BASE revision; the rule
(AFAIU) is what I quote above.  When I use "merge -r", I don't expect
bzr to track the merge in the branch history.

Perhaps you need to ask about this on the Bazaar list.

> > Why is that a problem, in the context of this discussion (merging from
> > a release branch to the trunk)?
> Because, in order to cherry-pick, I merge the various parts of the
> emacs-23 branch differently, so I need to issue various "bzr merge"
> commands to merge the branch bit by bit.

I still don't understand the problem.  Maybe it will become more clear
if you could show what you'd like to do, as opposed to what you need
to do, due to these limitations.

> >> And the fact that
> >> bzr merge -r A
> >> bzr merge --force -r B
> >> applies the A changes twice is another bug.
> > I think this is again because cherry-picking is not tracked, so bzr
> > doesn't "know" A is already there.  In a nutshell, when you
> > cherry-pick, you need to do your own bookkeeping.
> Where do you see cherry-picking in the above commands: the -r argument
> always specifies just a revision on the branch, not a "A..B".

AFAIU, "-r A" is just a shorthand for "-r A..-1".  If A is an
arbitrary revision on the branch being merged, you just cherry-pick
all the revisions from A to the branch tip.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]