D2085: wireprotoserver: rename getfile() to forwardpayload() (API)
indygreg (Gregory Szorc)
phabricator at mercurial-scm.org
Mon Feb 12 16:33:58 EST 2018
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG90ca4986616c: wireprotoserver: rename getfile() to forwardpayload() (API) (authored by indygreg, committed by ).
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D2085?vs=5348&id=5531
REVISION DETAIL
https://phab.mercurial-scm.org/D2085
AFFECTED FILES
hgext/largefiles/proto.py
mercurial/wireproto.py
mercurial/wireprotoserver.py
CHANGE DETAILS
diff --git a/mercurial/wireprotoserver.py b/mercurial/wireprotoserver.py
--- a/mercurial/wireprotoserver.py
+++ b/mercurial/wireprotoserver.py
@@ -64,14 +64,10 @@
returns a list of values (same order as <args>)"""
@abc.abstractmethod
- def getfile(self, fp):
- """write the whole content of a file into a file like object
+ def forwardpayload(self, fp):
+ """Read the raw payload and forward to a file.
- The file is in the form::
-
- (<chunk-size>\n<chunk>)+0\n
-
- chunk size is the ascii version of the int.
+ The payload is read in full before the function returns.
"""
@abc.abstractmethod
@@ -145,7 +141,7 @@
args.update(cgi.parse_qs(argvalue, keep_blank_values=True))
return args
- def getfile(self, fp):
+ def forwardpayload(self, fp):
length = int(self._req.env[r'CONTENT_LENGTH'])
# If httppostargs is used, we need to read Content-Length
# minus the amount that was consumed by args.
@@ -392,7 +388,12 @@
data[arg] = val
return [data[k] for k in keys]
- def getfile(self, fpout):
+ def forwardpayload(self, fpout):
+ # The file is in the form:
+ #
+ # <chunk size>\n<chunk>
+ # ...
+ # 0\n
_sshv1respondbytes(self._fout, b'')
count = int(self._fin.readline())
while count:
diff --git a/mercurial/wireproto.py b/mercurial/wireproto.py
--- a/mercurial/wireproto.py
+++ b/mercurial/wireproto.py
@@ -1008,7 +1008,7 @@
fp = os.fdopen(fd, pycompat.sysstr('wb+'))
r = 0
try:
- proto.getfile(fp)
+ proto.forwardpayload(fp)
fp.seek(0)
gen = exchange.readbundle(repo.ui, fp, None)
if (isinstance(gen, changegroupmod.cg1unpacker)
diff --git a/hgext/largefiles/proto.py b/hgext/largefiles/proto.py
--- a/hgext/largefiles/proto.py
+++ b/hgext/largefiles/proto.py
@@ -40,7 +40,7 @@
tmpfp = util.atomictempfile(path, createmode=repo.store.createmode)
try:
- proto.getfile(tmpfp)
+ proto.forwardpayload(tmpfp)
tmpfp._fp.seek(0)
if sha != lfutil.hexsha1(tmpfp._fp):
raise IOError(0, _('largefile contents do not match hash'))
To: indygreg, #hg-reviewers, durin42
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list