phase: better error message when --force is needed
When trying to turn a draft changeset into a secret changeset, I was
told:
% hg phase -s .
cannot move 1 changesets to a more permissive phase, use --force
no phases changed
That message struck me as being backwards -- the secret phase feels
less permissive to me since it restricts the changesets from being
pushed.
We don't use the word "permissive" elsewhere, 'hg help phase' talks
about "lower phases" and "higher phases". I therefore reformulated the
error message to be
cannot move 1 changesets to a higher phase, use --force
That is not perfect either, but more in line with the help text. An
alternative could be
cannot move phase backwards for 1 changesets, use --force
which fits better with the help text for --force.
--- a/mercurial/commands.py Fri Nov 08 09:48:01 2013 +0100
+++ b/mercurial/commands.py Fri Nov 08 11:49:13 2013 +0100
@@ -4512,7 +4512,7 @@
rejected = [n for n in nodes
if newdata[cl.rev(n)] < targetphase]
if rejected:
- ui.warn(_('cannot move %i changesets to a more permissive '
+ ui.warn(_('cannot move %i changesets to a higher '
'phase, use --force\n') % len(rejected))
ret = 1
if changes:
--- a/tests/test-phases.t Fri Nov 08 09:48:01 2013 +0100
+++ b/tests/test-phases.t Fri Nov 08 11:49:13 2013 +0100
@@ -482,7 +482,7 @@
$ hg phase --public 7
$ hg phase --draft '5 or 7'
- cannot move 1 changesets to a more permissive phase, use --force
+ cannot move 1 changesets to a higher phase, use --force
phase changed for 1 changesets
[1]
$ hg log -G --template "{rev} {phase} {desc}\n"
@@ -506,7 +506,7 @@
test complete failure
$ hg phase --draft 7
- cannot move 1 changesets to a more permissive phase, use --force
+ cannot move 1 changesets to a higher phase, use --force
no phases changed
[1]