changeset 1779:ba9fabaca91b

prune: improve error message if unstable changes are disallowed I saw a question on stackoverflow why evolve reports something like cannot fold chain not ending with head. Even I was confused the first time about the behavior. The error message can be improved to avoid confusion to people who are unaware about the config in future.
author Pulkit Goyal <7895pulkit@gmail.com>
date Wed, 23 Nov 2016 21:00:42 +0530
parents 924b76a51d18
children 3e270ed7ede0
files README hgext/evolve.py tests/test-evolve.t
diffstat 3 files changed, 14 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/README	Wed Nov 30 11:17:55 2016 +0000
+++ b/README	Wed Nov 23 21:00:42 2016 +0530
@@ -59,6 +59,7 @@
 5.6.0 --
 
  - compatibility with Mercurial 4.1.
+ - improvement of prune error message.
 
 5.5.0 -- 2016-10-30
 
--- a/hgext/evolve.py	Wed Nov 30 11:17:55 2016 +0000
+++ b/hgext/evolve.py	Wed Nov 23 21:00:42 2016 +0530
@@ -2514,7 +2514,8 @@
             raise error.Abort('nothing to prune')
 
         if _disallowednewunstable(repo, revs):
-            raise error.Abort(_("cannot prune in the middle of a stack"))
+            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)
@@ -3234,8 +3235,9 @@
             newunstable = _disallowednewunstable(repo, revs)
             if newunstable:
                 raise error.Abort(
-                    _('cannot edit commit information in the middle of a stack'),
-                    hint=_('%s will be affected') % repo[newunstable.first()])
+                    _('cannot edit commit information in the middle of a '\
+                    'stack'), hint=_('%s will become unstable and new unstable'\
+                    ' changes are not allowed') % repo[newunstable.first()])
             root = head = repo[revs.first()]
 
         wctx = repo[None]
@@ -3299,7 +3301,8 @@
     head = repo[heads.first()]
     if _disallowednewunstable(repo, revs):
         raise error.Abort(_("cannot fold chain not ending with a head "\
-                            "or with branching"))
+                            "or with branching"), hint = _("new unstable"\
+                            " changesets are not allowed"))
     return root, head
 
 def _disallowednewunstable(repo, revs):
--- a/tests/test-evolve.t	Wed Nov 30 11:17:55 2016 +0000
+++ b/tests/test-evolve.t	Wed Nov 23 21:00:42 2016 +0530
@@ -1301,9 +1301,11 @@
   created new head
   $ hg prune '26 + 27'
   abort: cannot prune in the middle of a stack
+  (new unstable changesets are not allowed)
   [255]
   $ hg prune '19::28'
   abort: cannot prune in the middle of a stack
+  (new unstable changesets are not allowed)
   [255]
   $ hg prune '26::'
   3 changesets pruned
@@ -1338,9 +1340,11 @@
 
   $ hg fold --exact "19 + 18"
   abort: cannot fold chain not ending with a head or with branching
+  (new unstable changesets are not allowed)
   [255]
   $ hg fold --exact "18::29"
   abort: cannot fold chain not ending with a head or with branching
+  (new unstable changesets are not allowed)
   [255]
   $ hg fold --exact "19::"
   2 changesets folded
@@ -1483,10 +1487,11 @@
 check that metaedit respects allowunstable
   $ hg metaedit '.^' --config 'experimental.evolution=createmarkers, allnewcommands'
   abort: cannot edit commit information in the middle of a stack
-  (c904da5245b0 will be affected)
+  (c904da5245b0 will become unstable and new unstable changes are not allowed)
   [255]
   $ hg metaedit '18::20' --fold --config 'experimental.evolution=createmarkers, allnewcommands'
   abort: cannot fold chain not ending with a head or with branching
+  (new unstable changesets are not allowed)
   [255]
   $ hg metaedit --user foobar
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved