From patchwork Thu Jan 9 10:37:55 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [evolve] prune: update to successor rather than parent when killing '.' From: Dan Villiom Podlaski Christiansen X-Patchwork-Id: 3282 Message-Id: <5d03689228e8b7006f22.1389263875@dork.local> To: Pierre-Yves David Cc: Mercurial Development List Date: Thu, 09 Jan 2014 11:37:55 +0100 # HG changeset patch # User Dan Villiom Podlaski Christiansen # Date 1389263595 -3600 # Thu Jan 09 11:33:15 2014 +0100 # Node ID 5d03689228e8b7006f22d2c6da219f9136a64421 # Parent d5e25eaaee317a4bcf238b3adba7526d807dd0cc prune: update to successor rather than parent when killing '.' diff --git a/hgext/evolve.py b/hgext/evolve.py --- a/hgext/evolve.py +++ b/hgext/evolve.py @@ -1437,11 +1437,19 @@ def cmdprune(ui, repo, *revs, **opts): # informs that changeset have been pruned ui.status(_('%i changesets pruned\n') % len(precs)) - # update to an unkilled parent + wdp = repo['.'] - newnode = wdp - while newnode.obsolete(): - newnode = newnode.parents()[0] + + if len(sucs) == 1 and len(precs) == 1 and wdp in precs: + # '.' killed, so update to the successor + newnode = sucs[0] + else: + # update to an unkilled parent + newnode = wdp + + while newnode.obsolete(): + newnode = newnode.parents()[0] + if newnode.node() != wdp.node(): commands.update(ui, repo, newnode.rev()) ui.status(_('working directory now at %s\n') % newnode) diff --git a/tests/test-prune.t b/tests/test-prune.t --- a/tests/test-prune.t +++ b/tests/test-prune.t @@ -115,8 +115,12 @@ Check successors addition one old, one new + $ hg up 'desc("add ee")' + 4 files updated, 0 files merged, 4 files removed, 0 files unresolved $ hg prune 'desc("add ee")' -s 'desc("add nE")' 1 changesets pruned + 4 files updated, 0 files merged, 4 files removed, 0 files unresolved + working directory now at 6e8148413dd5 $ hg debugobsolete 9d206ffc875e1bc304590549be293be36821e66c 0 {'date': '314064000 0', 'user': 'blah'} (glob) 7c3bad9141dcb46ff89abf5f61856facd56e476c 0 {'date': '*', 'user': 'test'} (glob) @@ -231,4 +235,3 @@ yoinked from test-mq-strip.t $ hg id -ir 6:2702dd0c91e7 abort: unknown revision '2702dd0c91e7'! [255] -