[Updated] D10737: errors: make InterventionRequired subclass Abort
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Thu May 20 13:21:55 UTC 2021
Closed by commit rHGd9c71bbe20f7: errors: make InterventionRequired subclass Abort (authored by martinvonz).
This revision was automatically updated to reflect the committed changes.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D10737?vs=28085&id=28142
CHANGES SINCE LAST ACTION
https://phab.mercurial-scm.org/D10737/new/
REVISION DETAIL
https://phab.mercurial-scm.org/D10737
AFFECTED FILES
mercurial/error.py
mercurial/scmutil.py
CHANGE DETAILS
diff --git a/mercurial/scmutil.py b/mercurial/scmutil.py
--- a/mercurial/scmutil.py
+++ b/mercurial/scmutil.py
@@ -203,17 +203,13 @@
if inst.hint:
ui.error(_(b"(%s)\n") % inst.hint)
detailed_exit_code = 50
- except error.InterventionRequired as inst:
- ui.error(b"%s\n" % inst)
- if inst.hint:
- ui.error(_(b"(%s)\n") % inst.hint)
- detailed_exit_code = 240
- coarse_exit_code = 1
except error.WdirUnsupported:
ui.error(_(b"abort: working directory revision cannot be specified\n"))
except error.Abort as inst:
if inst.detailed_exit_code is not None:
detailed_exit_code = inst.detailed_exit_code
+ if inst.coarse_exit_code is not None:
+ coarse_exit_code = inst.coarse_exit_code
ui.error(inst.format())
except error.WorkerError as inst:
# Don't print a message -- the worker already should have
diff --git a/mercurial/error.py b/mercurial/error.py
--- a/mercurial/error.py
+++ b/mercurial/error.py
@@ -54,10 +54,13 @@
class Abort(Hint, Exception):
"""Raised if a command needs to print an error and exit."""
- def __init__(self, message, hint=None, detailed_exit_code=None):
+ def __init__(
+ self, message, hint=None, coarse_exit_code=None, detailed_exit_code=None
+ ):
# type: (bytes, Optional[bytes]) -> None
self.message = message
self.hint = hint
+ self.coarse_exit_code = coarse_exit_code
self.detailed_exit_code = detailed_exit_code
# Pass the message into the Exception constructor to help extensions
# that look for exc.args[0].
@@ -192,10 +195,22 @@
__bytes__ = _tobytes
-class InterventionRequired(Hint, Exception):
+class InterventionRequired(Abort):
"""Exception raised when a command requires human intervention."""
- __bytes__ = _tobytes
+ def __init__(self, message, hint=None):
+ super(InterventionRequired, self).__init__(
+ message, hint=hint, coarse_exit_code=1, detailed_exit_code=240
+ )
+
+ def format(self):
+ # type: () -> bytes
+ from .i18n import _
+
+ message = _(b"%s\n") % self.message
+ if self.hint:
+ message += _(b"(%s)\n") % self.hint
+ return message
class ConflictResolutionRequired(InterventionRequired):
To: martinvonz, #hg-reviewers, pulkit
Cc: mercurial-patches
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurial-scm.org/pipermail/mercurial-patches/attachments/20210520/113948ef/attachment-0002.html>
More information about the Mercurial-patches
mailing list