diff mercurial/scmutil.py @ 47302:d9c71bbe20f7

errors: make InterventionRequired subclass Abort The docstring for `Abort` says that it's for errors raised by commands and `InterventionRequired` is definitely something raised by commands, so it seems that it should be an `Abort`. This patch makes it so. It adds a `coarse_exit_code` (in addition to the already existing `detailed_exit_code`) to `Abort` to achieve that, since `InterventionRequired` should result in a special exit code even when the `ui.detailed-exit-code` config is not set. Differential Revision: https://phab.mercurial-scm.org/D10737
author Martin von Zweigbergk <martinvonz@google.com>
date Tue, 18 May 2021 22:07:16 -0700
parents 33c0c25d0b0f
children 7a769ac49637
line wrap: on
line diff
--- a/mercurial/scmutil.py	Tue May 18 21:58:12 2021 -0700
+++ b/mercurial/scmutil.py	Tue May 18 22:07:16 2021 -0700
@@ -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