The Mercurial way of doing it?

Philip Pemberton philpem at philpem.me.uk
Mon Dec 14 12:16:21 UTC 2009


Christian Boos wrote:
> However, there's a caveat for the specific scenario you're interested 
> in, as you'll end up with:
> 
>            |---------[release-v2] o----o[cust-bike_dock]
> [master]o--|                          /
>            |---------[release-v1] ---
> 
> i.e. the first rebased changeset from cust-bike_dock will be a merge 
> changeset.

Not if you do it like this:

hg rebase --base <B> --dest <D>

Where: <B> = the rev of the code to rebase (cust-bike_dock's revtag)
        <D> = the rev of the new base (release-v2's revtag)

I tried it on a fairly simple test repo and it worked fine, and left me 
with something like this:

            |---------[release-v2]o----o[cust-bike_dock]
[master]o--|
            |---------[release-v1]

The exact command I used was:
   hg rebase --keepbranches -b 3 -d 6

> See http://mercurial.selenic.com/bts/issue1950 for some details. In 
> short, it seems to work as designed, whether this is a good thing or 
> might be changed if possible is up for discussion.

Looks pretty much what I said above... is there any reason why you'd use 
--source over --base?

-- 
Phil.
philpem at philpem.me.uk
http://www.philpem.me.uk/


More information about the Mercurial mailing list