revert: be more helpful on uncommitted merges
BEFORE:
$ hg revert
abort: no files or directories specified
(use --all to discard all changes)
AFTER:
$ hg revert
abort: no files or directories specified
(uncommitted merge, use --all to discard all changes, or 'hg update -C .' to abort the merge)
--- a/mercurial/commands.py Wed Jun 22 10:13:44 2011 +0200
+++ b/mercurial/commands.py Wed Jun 22 15:34:33 2011 +0200
@@ -4181,8 +4181,12 @@
parent, p2 = repo.dirstate.parents()
if not pats and not opts.get('all'):
- raise util.Abort(_('no files or directories specified'),
- hint=_('use --all to discard all changes'))
+ msg = _("no files or directories specified")
+ hint = _("use --all to discard all changes")
+ if p2 != nullid:
+ hint = _("uncommitted merge, use --all to discard all changes,"
+ " or 'hg update -C .' to abort the merge")
+ raise util.Abort(msg, hint=hint)
ctx = scmutil.revsingle(repo, opts.get('rev'))
node = ctx.node()
--- a/tests/test-confused-revert.t Wed Jun 22 10:13:44 2011 +0200
+++ b/tests/test-confused-revert.t Wed Jun 22 15:34:33 2011 +0200
@@ -60,7 +60,7 @@
$ hg revert
abort: no files or directories specified
- (use --all to discard all changes)
+ (uncommitted merge, use --all to discard all changes, or 'hg update -C .' to abort the merge)
[255]
Revert should be ok now: