D887: httppeer: use native strings for headers
durin42 (Augie Fackler)
phabricator at mercurial-scm.org
Sun Oct 1 16:43:30 UTC 2017
durin42 created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
On Python 3, we need to use unicodes, rather than bytes. This lets
test-pull.t get a lot further along.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D887
AFFECTED FILES
mercurial/httppeer.py
CHANGE DETAILS
diff --git a/mercurial/httppeer.py b/mercurial/httppeer.py
--- a/mercurial/httppeer.py
+++ b/mercurial/httppeer.py
@@ -221,33 +221,34 @@
argsio = io.BytesIO(strargs)
argsio.length = len(strargs)
data = _multifile(argsio, data)
- headers['X-HgArgs-Post'] = len(strargs)
+ headers[r'X-HgArgs-Post'] = len(strargs)
else:
if len(args) > 0:
httpheader = self.capable('httpheader')
if httpheader:
headersize = int(httpheader.split(',', 1)[0])
if headersize > 0:
# The headers can typically carry more data than the URL.
encargs = urlreq.urlencode(sorted(args.items()))
- for header, value in encodevalueinheaders(encargs, 'X-HgArg',
+ for header, value in encodevalueinheaders(encargs, r'X-HgArg',
headersize):
headers[header] = value
varyheaders.append(header)
else:
q += sorted(args.items())
- qs = '?%s' % urlreq.urlencode(q)
- cu = "%s%s" % (self._url, qs)
+ qs = '?%s' % urlreq.urlencode([
+ (pycompat.strurl(qq[0]), pycompat.strurl(qq[1])) for qq in q])
+ cu = r"%s%s" % (pycompat.strurl(self._url), qs)
size = 0
if util.safehasattr(data, 'length'):
size = data.length
elif data is not None:
size = len(data)
if size and self.ui.configbool('ui', 'usehttp2'):
- headers['Expect'] = '100-Continue'
- headers['X-HgHttp2'] = '1'
- if data is not None and 'Content-Type' not in headers:
- headers['Content-Type'] = 'application/mercurial-0.1'
+ headers[r'Expect'] = r'100-Continue'
+ headers[r'X-HgHttp2'] = r'1'
+ if data is not None and r'Content-Type' not in headers:
+ headers[r'Content-Type'] = r'application/mercurial-0.1'
# Tell the server we accept application/mercurial-0.2 and multiple
# compression formats if the server is capable of emitting those
@@ -281,7 +282,7 @@
varyheaders.append(header)
if varyheaders:
- headers['Vary'] = ','.join(varyheaders)
+ headers[r'Vary'] = r','.join(varyheaders)
req = self._requestbuilder(cu, data, headers)
To: durin42, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list