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.
--- 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