[PATCH 5 of 9 v2] stdio: catch StdioError in dispatch.run and clean up appropriately
kbullock+mercurial at ringworld.org
Mon Apr 17 17:12:32 EDT 2017
> On Apr 13, 2017, at 23:29, Bryan O'Sullivan <bos at serpentine.com> wrote:
> # HG changeset patch
> # User Bryan O'Sullivan <bryano at fb.com>
> # Date 1491947652 25200
> # Tue Apr 11 14:54:12 2017 -0700
> # Node ID 942022da49166766fe4a7967b71411879221c197
> # Parent a5aa1dfd9afed15c0cd762c4a72e5e0082ac074c
> stdio: catch StdioError in dispatch.run and clean up appropriately
> We attempt to report what went wrong, and more importantly exit the
> program with an error code.
> (The exception we catch is not yet raised anywhere in the code.)
> diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py
> --- a/mercurial/dispatch.py
> +++ b/mercurial/dispatch.py
> @@ -77,7 +77,22 @@ class request(object):
> def run():
> "run the command in sys.argv"
> - sys.exit((dispatch(request(pycompat.sysargv[1:])) or 0) & 255)
> + req = request(pycompat.sysargv[1:])
> + err = None
> + try:
> + status = (dispatch(req) or 0) & 255
Nit: I don't think the `& 255` is necessary here since we do it below.
If you can confirm I'm right, I'll make the change to clean it up.
pacem in terris / мир / शान्ति / سَلاَم / 平和
Kevin R. Bullock
More information about the Mercurial-devel