prune: use precheck to validate revision
authorPierre-Yves David <pierre-yves.david@octobus.net>
Sun, 23 Jul 2017 21:21:11 +0200
changeset 2789 06ee4ec88190
parent 2788 554c069cdc85
child 2790 1b7b9acda2a9
prune: use precheck to validate revision This gives us standard check and standard error message.
hgext3rd/evolve/cmdrewrite.py
tests/test-evolve.t
tests/test-prune.t
--- a/hgext3rd/evolve/cmdrewrite.py	Mon Jul 24 01:45:17 2017 +0200
+++ b/hgext3rd/evolve/cmdrewrite.py	Sun Jul 23 21:21:11 2017 +0200
@@ -636,24 +636,17 @@
     try:
         wlock = repo.wlock()
         lock = repo.lock()
+        rewriteutil.precheck(repo, revs, 'touch')
         tr = repo.transaction('prune')
         # defines pruned changesets
         precs = []
         revs.sort()
         for p in revs:
             cp = repo[p]
-            if not cp.mutable():
-                # note: createmarkers() would have raised something anyway
-                raise error.Abort('cannot prune immutable changeset: %s' % cp,
-                                  hint="see 'hg help phases' for details")
             precs.append(cp)
         if not precs:
             raise error.Abort('nothing to prune')
 
-        if rewriteutil.disallowednewunstable(repo, revs):
-            raise error.Abort(_("cannot prune in the middle of a stack"),
-                              hint=_("new unstable changesets are not allowed"))
-
         # defines successors changesets
         sucs = scmutil.revrange(repo, succs)
         sucs.sort()
--- a/tests/test-evolve.t	Mon Jul 24 01:45:17 2017 +0200
+++ b/tests/test-evolve.t	Sun Jul 23 21:21:11 2017 +0200
@@ -145,7 +145,7 @@
   $ hg log -r 1 --template '{rev} {phase} {obsolete}\n'
   1 public 
   $ hg prune 1
-  abort: cannot prune immutable changeset: 7c3bad9141dc
+  abort: cannot touch public changesets: 7c3bad9141dc
   (see 'hg help phases' for details)
   [255]
   $ hg log -r 1 --template '{rev} {phase} {obsolete}\n'
@@ -1339,12 +1339,12 @@
   $ mkcommit c5_
   created new head
   $ hg prune '26 + 27'
-  abort: cannot prune in the middle of a stack
-  (new unstable changesets are not allowed)
+  abort: touch will orphan 1 descendants
+  (see 'hg help evolution.instability')
   [255]
   $ hg prune '19::28'
-  abort: cannot prune in the middle of a stack
-  (new unstable changesets are not allowed)
+  abort: touch will orphan 1 descendants
+  (see 'hg help evolution.instability')
   [255]
   $ hg prune '26::'
   3 changesets pruned
--- a/tests/test-prune.t	Mon Jul 24 01:45:17 2017 +0200
+++ b/tests/test-prune.t	Sun Jul 23 21:21:11 2017 +0200
@@ -86,7 +86,7 @@
 cannot prune public changesets
 
   $ hg prune 0
-  abort: cannot prune immutable changeset: 1f0dee641bb7
+  abort: cannot touch public changesets: 1f0dee641bb7
   (see 'hg help phases' for details)
   [255]
   $ hg debugobsolete