[PATCH 1 of 5] cmdutil: provide a way to report how to continue
timeless
timeless at mozdev.org
Thu Feb 4 03:56:20 UTC 2016
# HG changeset patch
# User timeless <timeless at mozdev.org>
# Date 1454557448 0
# Thu Feb 04 03:44:08 2016 +0000
# Node ID 9606a1513d812239259485be8469a1493faa60bf
# Parent 01a5143cd25f285f8c745a92986cd7186bb32c90
cmdutil: provide a way to report how to continue
checkafterresolved allows Mercurial to suggest what command to
use next. If users try to continue the wrong command, there
wasn't a good way for the command to suggest what to do next.
Split checcmdutil into howtocontinue and checkafterresolved.
Introduce wrongtooltocontinue which handles raising an Abort with
the hint from howtocontinue.
diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -3334,13 +3334,28 @@
_('hg graft --continue')),
]
-def checkafterresolved(repo):
- contmsg = _("continue: %s\n")
+def howtocontinue(repo):
+ contmsg = _("continue: %s")
for f, msg in afterresolvedstates:
if repo.vfs.exists(f):
- repo.ui.warn(contmsg % msg)
- return
- repo.ui.note(contmsg % _("hg commit"))
+ return contmsg % msg, repo.ui.warn
+ workingctx = repo[None]
+ if (any(repo.status())
+ or any(workingctx.sub(s).dirty() for s in workingctx.substate)):
+ return contmsg % _("hg commit"), repo.ui.note
+ return None, None
+
+def checkafterresolved(repo):
+ msg, reporter = howtocontinue(repo)
+ if msg is not None and reporter is not None:
+ reporter("%s\n" % msg)
+
+def wrongtooltocontinue(repo, msg):
+ after = howtocontinue(repo)
+ hint = None
+ if after:
+ hint = after[0]
+ raise error.Abort(msg, hint=hint)
class dirstateguard(object):
'''Restore dirstate at unexpected failure.
More information about the Mercurial-devel
mailing list