diff mercurial/scmutil.py @ 35412:b1959391a088

extdata: abort if external command exits with non-zero status (BC) Per the last discussion, this is more reliable and consistent way than suppressing an error. For grep, erroring out might be inconvenient, but for curl, non-zero exit status should be detected. The latter wouldn't be possible if non-zero status is ignored. https://www.mercurial-scm.org/pipermail/mercurial-devel/2017-October/105727.html
author Yuya Nishihara <yuya@tcha.org>
date Sun, 01 Oct 2017 12:21:50 +0100
parents 137a08d82232
children 8bb90cc4668e
line wrap: on
line diff
--- a/mercurial/scmutil.py	Thu Dec 14 21:30:00 2017 +0800
+++ b/mercurial/scmutil.py	Sun Oct 01 12:21:50 2017 +0100
@@ -1100,12 +1100,11 @@
     finally:
         if proc:
             proc.communicate()
-            if proc.returncode != 0:
-                # not an error so 'cmd | grep' can be empty
-                repo.ui.debug("extdata command '%s' %s\n"
-                              % (cmd, util.explainexit(proc.returncode)[0]))
         if src:
             src.close()
+    if proc and proc.returncode != 0:
+        raise error.Abort(_("extdata command '%s' failed: %s")
+                          % (cmd, util.explainexit(proc.returncode)[0]))
 
     return data