Mercurial > hg
changeset 35936:f8f034344b39
sshpeer: clean up API for sshpeer.__init__ (API)
Our refactoring left the state of sshpeer.__init__ in a poor
state. "create" was no longer used. Process/pipe arguments were
passed poorly. "name" was really a URL.
This commit cleans all that up.
.. api::
sshpeer.sshpeer.__init__ now receives arguments describing an
existing connection instead of creating a connection itself.
Differential Revision: https://phab.mercurial-scm.org/D2032
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Mon, 05 Feb 2018 14:17:24 -0800 |
parents | 00b9e26d727b |
children | a9cffd14aa04 |
files | mercurial/sshpeer.py tests/test-check-interfaces.py |
diffstat | 2 files changed, 15 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/sshpeer.py Mon Feb 05 14:05:59 2018 -0800 +++ b/mercurial/sshpeer.py Mon Feb 05 14:17:24 2018 -0800 @@ -157,12 +157,21 @@ return proc, stdin, stdout, stderr class sshpeer(wireproto.wirepeer): - def __init__(self, ui, path, create=False, sshstate=None): - self._url = path + def __init__(self, ui, url, proc, stdin, stdout, stderr): + """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. + """ + self._url = url self._ui = ui # self._subprocess is unused. Keeping a handle on the process # holds a reference and prevents it from being garbage collected. - self._subprocess, self._pipei, self._pipeo, self._pipee = sshstate + self._subprocess = proc + self._pipeo = stdin + self._pipei = stdout + self._pipee = stderr self._validaterepo() @@ -386,6 +395,4 @@ proc, stdin, stdout, stderr = _makeconnection(ui, sshcmd, args, remotecmd, remotepath, sshenv) - sshstate = (proc, stdout, stdin, stderr) - - return sshpeer(ui, path, create=create, sshstate=sshstate) + return sshpeer(ui, path, proc, stdin, stdout, stderr)
--- a/tests/test-check-interfaces.py Mon Feb 05 14:05:59 2018 -0800 +++ b/tests/test-check-interfaces.py Mon Feb 05 14:17:24 2018 -0800 @@ -69,8 +69,8 @@ checkobject(badpeer()) checkobject(httppeer.httppeer(ui, 'http://localhost')) checkobject(localrepo.localpeer(dummyrepo())) - checkobject(testingsshpeer(ui, 'ssh://localhost/foo', False, - (None, None, None, None))) + checkobject(testingsshpeer(ui, 'ssh://localhost/foo', None, None, None, + None)) checkobject(bundlerepo.bundlepeer(dummyrepo())) checkobject(statichttprepo.statichttppeer(dummyrepo())) checkobject(unionrepo.unionpeer(dummyrepo()))