changeset 48198:6edc8800dbc3

dispatch: use detailed exit code 250 for keyboard interrupt Among our users at Google, we're still seeing several percent of commands fail with exit code 255. I suspect keyboard interrupts is an important remaining reason. This is a resend of D10086 with some fixes for pager handling added ahead of it. Differential Revision: https://phab.mercurial-scm.org/D11628
author Martin von Zweigbergk <martinvonz@google.com>
date Tue, 02 Mar 2021 09:33:25 -0800
parents 2f2107c01dee
children b669e40fbbd6
files mercurial/dispatch.py tests/test-chg.t tests/test-commandserver.t tests/test-nointerrupt.t
diffstat 4 files changed, 10 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/dispatch.py	Fri Oct 08 13:36:02 2021 -0700
+++ b/mercurial/dispatch.py	Tue Mar 02 09:33:25 2021 -0800
@@ -316,7 +316,10 @@
             except IOError as inst:
                 if inst.errno != errno.EPIPE:
                     raise
-            ret = -1
+            if req.ui.configbool(b'ui', b'detailed-exit-code'):
+                ret = 250
+            else:
+                ret = -1
         finally:
             duration = util.timer() - starttime
             try:
--- a/tests/test-chg.t	Fri Oct 08 13:36:02 2021 -0700
+++ b/tests/test-chg.t	Tue Mar 02 09:33:25 2021 -0800
@@ -188,12 +188,12 @@
   $ chg bulkwrite --pager=on --color no --config ui.formatted=True
   paged! 'going to write massive data\n'
   killed! (?)
-  [255]
+  [250]
 
   $ chg bulkwrite --pager=on --color no --config ui.formatted=True
   paged! 'going to write massive data\n'
   killed! (?)
-  [255]
+  [250]
 
   $ cd ..
 
--- a/tests/test-commandserver.t	Fri Oct 08 13:36:02 2021 -0700
+++ b/tests/test-commandserver.t	Tue Mar 02 09:33:25 2021 -0800
@@ -792,7 +792,7 @@
   *** runcommand debugsuicide
   interrupted!
   killed!
-   [255]
+   [250]
 
 #endif
 
--- a/tests/test-nointerrupt.t	Fri Oct 08 13:36:02 2021 -0700
+++ b/tests/test-nointerrupt.t	Tue Mar 02 09:33:25 2021 -0800
@@ -66,7 +66,7 @@
   $ sh -c "../send-signal.sh INT" &
   $ hg wait-signal
   interrupted!
-  [255]
+  [250]
 
   $ cat >> $HGRCPATH << EOF
   > [experimental]
@@ -77,7 +77,7 @@
   $ sh -c "../send-signal.sh INT" &
   $ hg wait-signal
   interrupted!
-  [255]
+  [250]
 
   $ cat >> $HGRCPATH << EOF
   > [experimental]
@@ -91,4 +91,4 @@
   press ^C again to terminate immediately (dangerous)
   end of unsafe operation
   interrupted!
-  [255]
+  [250]