Cherry-picking

David Dyer-Bennet dd-b at dd-b.net
Tue Jun 8 15:23:58 UTC 2010


I thought this should be a simple issue, but I'm reading all sorts of
articles on this out on the web, and playing with toolsets, and none of
them will do this in any way that seems safe or natural to me.  I must be
missing something (perhaps in my definition of "natural").

Suppose that a small team of developers are using Mercurial with a central
repository that they've all cloned off of.  Suppose that the "default"
branch is being used for relatively free-wheeling new feature development,
and the "release" branch is used for the latest release (software is built
and released to the company every week or so).

Now, suppose user u1 makes three changes to the "release" branch, which I
will call a, b, and c (three commits), and then pushes his changes to the
central repository.

And suppose user u2 makes two changes to the release branch, which I will
call x and y (two commits).

And, finally, that user u2 is told to build an actual release, containing
all the work done on the "release" branch *except for change b*.

What are sane-and-sensible ways to do this in this general environment? 
Shelve only works on uncommmitted changes, mq can't work across merges and
can't change the order of patches or drop something from the middle of the
q.  Does one have to resort to exporting the patches individually and
importing them manually?

-- 
David Dyer-Bennet, dd-b at dd-b.net; http://dd-b.net/
Snapshots: http://dd-b.net/dd-b/SnapshotAlbum/data/
Photos: http://dd-b.net/photography/gallery/
Dragaera: http://dragaera.info



More information about the Mercurial mailing list