# HG changeset patch # User Yuya Nishihara # Date 1526469743 -32400 # Node ID c3fd9a0f8277a4abbc709a91f642f841bad1cc62 # Parent 48853a92775710622e9b6ec4ec1b3128e87919e6 dispatch: mask negative exit code recorded in blackbox log That's what we do for the exit code delivered to the environment. diff -r 48853a927757 -r c3fd9a0f8277 mercurial/dispatch.py --- a/mercurial/dispatch.py Wed May 16 20:17:50 2018 +0900 +++ b/mercurial/dispatch.py Wed May 16 20:22:23 2018 +0900 @@ -239,7 +239,7 @@ req.ui.log('uiblocked', 'ui blocked ms', **pycompat.strkwargs(req.ui._blockedtimes)) req.ui.log("commandfinish", "%s exited %d after %0.2f seconds\n", - msg, ret, duration) + msg, ret & 255, duration) try: req._runexithandlers() except: # exiting, so no re-raises diff -r 48853a927757 -r c3fd9a0f8277 tests/test-blackbox.t --- a/tests/test-blackbox.t Wed May 16 20:17:50 2018 +0900 +++ b/tests/test-blackbox.t Wed May 16 20:22:23 2018 +0900 @@ -7,6 +7,9 @@ > @command(b'crash', [], b'hg crash') > def crash(ui, *args, **kwargs): > raise Exception("oops") + > @command(b'abort', [], b'hg abort') + > def abort(ui, *args, **kwargs): + > raise error.Abort(b"oops") > EOF $ abspath=`pwd`/myextension.py @@ -44,6 +47,14 @@ 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> add non-existent exited 1 after * seconds (glob) 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> blackbox +abort exit code + $ rm ./.hg/blackbox.log + $ hg abort 2> /dev/null + [255] + $ hg blackbox -l 2 + 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> abort exited 255 after * seconds (glob) + 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> blackbox -l 2 + unhandled exception $ rm ./.hg/blackbox.log $ hg crash 2> /dev/null