# HG changeset patch # User Pulkit Goyal <7895pulkit@gmail.com> # Date 1479915042 -19800 # Node ID ba9fabaca91b0897cffb7048d81193e44d440948 # Parent 924b76a51d181c96aad566aa6a5450bed79d9bd6 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. diff -r 924b76a51d18 -r ba9fabaca91b README --- 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 diff -r 924b76a51d18 -r ba9fabaca91b hgext/evolve.py --- 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): diff -r 924b76a51d18 -r ba9fabaca91b tests/test-evolve.t --- 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