D1861: wireproto: drop support for reader interface from streamres (API)
indygreg (Gregory Szorc)
phabricator at mercurial-scm.org
Thu Jan 18 08:41:38 EST 2018
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG8cdb671dbd0b: wireproto: drop support for reader interface from streamres (API) (authored by indygreg, committed by ).
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D1861?vs=4836&id=4894
REVISION DETAIL
https://phab.mercurial-scm.org/D1861
AFFECTED FILES
mercurial/hgweb/protocol.py
mercurial/sshserver.py
mercurial/wireproto.py
CHANGE DETAILS
diff --git a/mercurial/wireproto.py b/mercurial/wireproto.py
--- a/mercurial/wireproto.py
+++ b/mercurial/wireproto.py
@@ -520,17 +520,16 @@
The call was successful and the result is a stream.
- Accepts either a generator or an object with a ``read(size)`` method.
+ Accepts a generator containing chunks of data to be sent to the client.
``v1compressible`` indicates whether this data can be compressed to
"version 1" clients (technically: HTTP peers using
application/mercurial-0.1 media type). This flag should NOT be used on
new commands because new clients should support a more modern compression
mechanism.
"""
- def __init__(self, gen=None, reader=None, v1compressible=False):
+ def __init__(self, gen=None, v1compressible=False):
self.gen = gen
- self.reader = reader
self.v1compressible = v1compressible
class pushres(object):
@@ -802,16 +801,18 @@
outgoing = discovery.outgoing(repo, missingroots=nodes,
missingheads=repo.heads())
cg = changegroupmod.makechangegroup(repo, outgoing, '01', 'serve')
- return streamres(reader=cg, v1compressible=True)
+ gen = iter(lambda: cg.read(32768), '')
+ return streamres(gen=gen, v1compressible=True)
@wireprotocommand('changegroupsubset', 'bases heads')
def changegroupsubset(repo, proto, bases, heads):
bases = decodelist(bases)
heads = decodelist(heads)
outgoing = discovery.outgoing(repo, missingroots=bases,
missingheads=heads)
cg = changegroupmod.makechangegroup(repo, outgoing, '01', 'serve')
- return streamres(reader=cg, v1compressible=True)
+ gen = iter(lambda: cg.read(32768), '')
+ return streamres(gen=gen, v1compressible=True)
@wireprotocommand('debugwireargs', 'one two *')
def debugwireargs(repo, proto, one, two, others):
diff --git a/mercurial/sshserver.py b/mercurial/sshserver.py
--- a/mercurial/sshserver.py
+++ b/mercurial/sshserver.py
@@ -76,13 +76,7 @@
def sendstream(self, source):
write = self.fout.write
-
- if source.reader:
- gen = iter(lambda: source.reader.read(4096), '')
- else:
- gen = source.gen
-
- for chunk in gen:
+ for chunk in source.gen:
write(chunk)
self.fout.flush()
diff --git a/mercurial/hgweb/protocol.py b/mercurial/hgweb/protocol.py
--- a/mercurial/hgweb/protocol.py
+++ b/mercurial/hgweb/protocol.py
@@ -175,10 +175,7 @@
req.respond(HTTP_OK, HGTYPE, body=rsp)
return []
elif isinstance(rsp, wireproto.streamres):
- if rsp.reader:
- gen = iter(lambda: rsp.reader.read(32768), '')
- else:
- gen = rsp.gen
+ gen = rsp.gen
# This code for compression should not be streamres specific. It
# is here because we only compress streamres at the moment.
To: indygreg, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list