--- a/mercurial/commands.py Thu Feb 09 21:03:07 2012 +0100
+++ b/mercurial/commands.py Wed Feb 08 20:00:52 2012 +0100
@@ -4210,7 +4210,8 @@
public < draft < secret
- Return 0 on success, 1 if no phases were changed.
+ Return 0 on success, 1 if no phases were changed or some could not
+ be changed.
"""
# search for a unique phase argument
targetphase = None
@@ -4252,8 +4253,18 @@
changes = 0
newdata = repo._phaserev
changes = sum(o != newdata[i] for i, o in enumerate(olddata))
+ rejected = [n for n in nodes
+ if newdata[repo[n].rev()] < targetphase]
+ if rejected:
+ ui.warn(_('cannot move %i changesets to a more permissive '
+ 'phase, use --force\n') % len(rejected))
+ ret = 1
if changes:
- ui.note(_('phase change for %i changesets\n') % changes)
+ msg = _('phase changed for %i changesets\n') % changes
+ if ret:
+ ui.status(msg)
+ else:
+ ui.note(msg)
else:
ui.warn(_('no phases changed\n'))
ret = 1