# HG changeset patch # User Yuya Nishihara <y...@tcha.org> # Date 1520858773 -32400 # Mon Mar 12 21:46:13 2018 +0900 # Node ID e6071590cd3e6e376ff45a11204065f08f72eee8 # Parent d3dd691a3fce0c501a34ed68d1a08b563a78794c sshpeer: drop support for not reading stderr
It's handled by caller now. This patch backs out most of 1151c731686e and 1a36ef7df70a. diff --git a/mercurial/debugcommands.py b/mercurial/debugcommands.py --- a/mercurial/debugcommands.py +++ b/mercurial/debugcommands.py @@ -2759,19 +2759,16 @@ def debugwireproto(ui, repo, **opts): if opts['peer'] == 'ssh1': ui.write(_('creating ssh peer for wire protocol version 1\n')) - peer = sshpeer.sshv1peer(ui, url, proc, stdin, stdout, stderr, - None, autoreadstderr=autoreadstderr) + peer = sshpeer.sshv1peer(ui, url, proc, stdin, stdout, stderr, None) elif opts['peer'] == 'ssh2': ui.write(_('creating ssh peer for wire protocol version 2\n')) - peer = sshpeer.sshv2peer(ui, url, proc, stdin, stdout, stderr, - None, autoreadstderr=autoreadstderr) + peer = sshpeer.sshv2peer(ui, url, proc, stdin, stdout, stderr, None) elif opts['peer'] == 'raw': ui.write(_('using raw connection to peer\n')) peer = None else: ui.write(_('creating ssh peer from handshake results\n')) - peer = sshpeer.makepeer(ui, url, proc, stdin, stdout, stderr, - autoreadstderr=autoreadstderr) + peer = sshpeer.makepeer(ui, url, proc, stdin, stdout, stderr) else: raise error.Abort(_('only --localssh is currently supported')) diff --git a/mercurial/sshpeer.py b/mercurial/sshpeer.py --- a/mercurial/sshpeer.py +++ b/mercurial/sshpeer.py @@ -339,16 +339,13 @@ def _performhandshake(ui, stdin, stdout, return protoname, caps class sshv1peer(wireproto.wirepeer): - def __init__(self, ui, url, proc, stdin, stdout, stderr, caps, - autoreadstderr=True): + def __init__(self, ui, url, proc, stdin, stdout, stderr, caps): """Create a peer from an existing SSH connection. ``proc`` is a handle on the underlying SSH process. ``stdin``, ``stdout``, and ``stderr`` are handles on the stdio - pipes for that process. + pipes for that process. ``stderr`` may be None. ``caps`` is a set of capabilities supported by the remote. - ``autoreadstderr`` denotes whether to automatically read from - stderr and to forward its output. """ self._url = url self._ui = ui @@ -358,7 +355,7 @@ class sshv1peer(wireproto.wirepeer): # And we hook up our "doublepipe" wrapper to allow querying # stderr any time we perform I/O. - if autoreadstderr: + if stderr: stdout = doublepipe(ui, util.bufferedinputpipe(stdout), stderr) stdin = doublepipe(ui, stdin, stderr) @@ -366,7 +363,6 @@ class sshv1peer(wireproto.wirepeer): 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. @@ -512,12 +508,10 @@ class sshv1peer(wireproto.wirepeer): def _getamount(self): l = self._pipei.readline() if l == '\n': - if self._autoreadstderr: - self._readerr() + self._readerr() msg = _('check previous remote output') self._abort(error.OutOfBandError(hint=msg)) - if self._autoreadstderr: - self._readerr() + self._readerr() try: return int(l) except ValueError: @@ -536,8 +530,7 @@ class sshv1peer(wireproto.wirepeer): self._pipeo.write(data) if flush: self._pipeo.flush() - if self._autoreadstderr: - self._readerr() + self._readerr() class sshv2peer(sshv1peer): """A peer that speakers version 2 of the transport protocol.""" @@ -545,7 +538,7 @@ class sshv2peer(sshv1peer): # And handshake is performed before the peer is instantiated. So # we need no custom code. -def makepeer(ui, path, proc, stdin, stdout, stderr, autoreadstderr=True): +def makepeer(ui, path, proc, stdin, stdout, stderr): """Make a peer instance from existing pipes. ``path`` and ``proc`` are stored on the eventual peer instance and may @@ -566,11 +559,9 @@ def makepeer(ui, path, proc, stdin, stdo raise if protoname == wireprototypes.SSHV1: - return sshv1peer(ui, path, proc, stdin, stdout, stderr, caps, - autoreadstderr=autoreadstderr) + return sshv1peer(ui, path, proc, stdin, stdout, stderr, caps) elif protoname == wireprototypes.SSHV2: - return sshv2peer(ui, path, proc, stdin, stdout, stderr, caps, - autoreadstderr=autoreadstderr) + return sshv2peer(ui, path, proc, stdin, stdout, stderr, caps) else: _cleanuppipes(ui, stdout, stdin, stderr) raise error.RepoError(_('unknown version of SSH protocol: %s') % _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel