diff hgext/evolve.py @ 931:32915143d448 stable

prune: update to successor rather than parent when prune '.'
author Dan Villiom Podlaski Christiansen <dan@cabo.dk>
date Thu, 09 Jan 2014 11:33:15 +0100
parents cac35bef8aee
children e5baeb8fefec bcd0c12070b2
line wrap: on
line diff
--- a/hgext/evolve.py	Fri May 09 03:06:36 2014 -0700
+++ b/hgext/evolve.py	Thu Jan 09 11:33:15 2014 +0100
@@ -1487,11 +1487,19 @@
 
         # 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)