diff -r c6061cadb400 -r 1151c731686e mercurial/sshpeer.py --- a/mercurial/sshpeer.py Thu Feb 15 17:18:26 2018 +0100 +++ b/mercurial/sshpeer.py Fri Mar 02 18:50:49 2018 -0500 @@ -365,6 +365,7 @@ self._pipei = stdout self._pipee = stderr self._caps = caps + self._autoreadstderr = autoreadstderr # Commands that have a "framed" response where the first line of the # response contains the length of that response. @@ -510,10 +511,12 @@ def _getamount(self): l = self._pipei.readline() if l == '\n': - self._readerr() + if self._autoreadstderr: + self._readerr() msg = _('check previous remote output') self._abort(error.OutOfBandError(hint=msg)) - self._readerr() + if self._autoreadstderr: + self._readerr() try: return int(l) except ValueError: @@ -528,7 +531,8 @@ self._pipeo.write(data) if flush: self._pipeo.flush() - self._readerr() + if self._autoreadstderr: + self._readerr() class sshv2peer(sshv1peer): """A peer that speakers version 2 of the transport protocol."""