mercurial/chgserver.py
branchstable
changeset 39809 23a00bc90a3c
parent 39808 1b9be0b26511
child 39840 a9f56e4501c1
--- a/mercurial/chgserver.py	Wed Sep 26 21:21:05 2018 +0900
+++ b/mercurial/chgserver.py	Wed Sep 26 21:24:14 2018 +0900
@@ -200,11 +200,13 @@
         def _runsystem(self, cmd, environ, cwd, out):
             # fallback to the original system method if
             #  a. the output stream is not stdout (e.g. stderr, cStringIO),
+            #  b. or stdout is redirected by protectstdio(),
             # because the chg client is not aware of these situations and
             # will behave differently (i.e. write to stdout).
             if (out is not self.fout
                 or not util.safehasattr(self.fout, 'fileno')
-                or self.fout.fileno() != procutil.stdout.fileno()):
+                or self.fout.fileno() != procutil.stdout.fileno()
+                or self._finoutredirected):
                 return procutil.system(cmd, environ=environ, cwd=cwd, out=out)
             self.flush()
             return self._csystem(cmd, procutil.shellenviron(environ), cwd)