# HG changeset patch # User Henrik Stuart <hg@hstuart.dk> # Date 1290243116 -3600 # Sat Nov 20 09:51:56 2010 +0100 # Branch stable # Node ID 6c800e7ef2f61a28d6a1febb3a10d4a8725360cf # Parent ea3bada953d38e724cbb9cdc76174249635bc6f2 rebase: support --detach when null is common ancestor diff --git a/hgext/rebase.py b/hgext/rebase.py --- a/hgext/rebase.py +++ b/hgext/rebase.py @@ -485,7 +485,7 @@ srcancestors = set(repo.changelog.ancestors(source)) baseancestors = set(repo.changelog.ancestors(commonbase.rev())) detachset = srcancestors - baseancestors - detachset.remove(commonbase.rev()) + detachset.discard(commonbase.rev()) else: if base: cwd = repo[base].rev() diff --git a/tests/test-rebase-detach.t b/tests/test-rebase-detach.t --- a/tests/test-rebase-detach.t +++ b/tests/test-rebase-detach.t @@ -191,3 +191,44 @@ $ cd .. +Rebasing across null as ancestor + $ hg clone -q -U a a5 + + $ cd a5 + + $ echo x > x + + $ hg add x + + $ hg ci -m "extra branch" + created new head + + $ hg tglog + @ 5: 'extra branch' + + o 4: 'E' + | + | o 3: 'D' + | | + | o 2: 'C' + | | + | o 1: 'B' + |/ + o 0: 'A' + + $ hg rebase --detach -s 1 -d tip + saved backup bundle to $TESTTMP/a5/.hg/strip-backup/*-backup.hg (glob) + + $ hg tglog + @ 5: 'D' + | + o 4: 'C' + | + o 3: 'B' + | + o 2: 'extra branch' + + o 1: 'E' + | + o 0: 'A' +