D3446: dispatch: move sys.exit() to caller (API)

indygreg (Gregory Szorc) phabricator at mercurial-scm.org
Sun May 6 04:11:26 UTC 2018


indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  Moving sys.exit() to the caller will make it easier to implement
  exit handling in Rust `hg` by eliminating the need to handle
  SystemExit in Rust.
  
  .. api::
  
    dispatch.run() now returns an integer exit code instead of calling
    sys.exit(). Callers of dispatch.run() must now exit.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D3446

AFFECTED FILES
  contrib/hgperf
  hg
  mercurial/dispatch.py

CHANGE DETAILS

diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py
--- a/mercurial/dispatch.py
+++ b/mercurial/dispatch.py
@@ -145,7 +145,7 @@
             # There's not much we can do about I/O errors at this point.
             code = -1
 
-    sys.exit(code & 255)
+    return code & 255
 
 if pycompat.ispy3:
     def _initstdio():
diff --git a/hg b/hg
--- a/hg
+++ b/hg
@@ -38,4 +38,4 @@
     sys.exit(-1)
 
 from mercurial import dispatch
-dispatch.run()
+sys.exit(dispatch.run())
diff --git a/contrib/hgperf b/contrib/hgperf
--- a/contrib/hgperf
+++ b/contrib/hgperf
@@ -94,4 +94,4 @@
 
 dispatch.runcommand = runcommand
 
-dispatch.run()
+sys.exit(dispatch.run())



To: indygreg, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list