mercurial/debugcommands.py
changeset 38313 275cc461b854
parent 38263 dbf31732ef64
child 38355 d4fae9a0ab1f
--- a/mercurial/debugcommands.py	Wed Jun 13 22:51:08 2018 +0530
+++ b/mercurial/debugcommands.py	Thu Jun 14 11:47:51 2018 -0400
@@ -2289,7 +2289,13 @@
 
     if opts['logiofd']:
         # Line buffered because output is line based.
-        logfh = os.fdopen(int(opts['logiofd']), r'ab', 1)
+        try:
+            logfh = os.fdopen(int(opts['logiofd']), r'ab', 1)
+        except OSError as e:
+            if e.errno != errno.ESPIPE:
+                raise
+            # can't seek a pipe, so `ab` mode fails on py3
+            logfh = os.fdopen(int(opts['logiofd']), r'wb', 1)
     elif opts['logiofile']:
         logfh = open(opts['logiofile'], 'ab', 1)