diff -r 5a7906ed78d4 -r 0c4b23ccf1a5 mercurial/httppeer.py --- a/mercurial/httppeer.py Fri Jan 12 10:14:20 2018 +0000 +++ b/mercurial/httppeer.py Fri Jan 12 10:41:03 2018 +0000 @@ -162,7 +162,39 @@ getattr(h, "close_all", lambda: None)() def _openurl(self, req): - return self._urlopener.open(req) + if (self._ui.debugflag + and self._ui.configbool('devel', 'debug.peer-request')): + dbg = self._ui.debug + line = 'devel-peer-request: %s\n' + dbg(line % '%s %s' % (req.get_method(), req.get_full_url())) + hgargssize = None + + for header, value in sorted(req.header_items()): + if header.startswith('X-hgarg-'): + if hgargssize is None: + hgargssize = 0 + hgargssize += len(value) + else: + dbg(line % ' %s %s' % (header, value)) + + if hgargssize is not None: + dbg(line % ' %d bytes of commands arguments in headers' + % hgargssize) + + if req.has_data(): + data = req.get_data() + length = getattr(data, 'length', None) + if length is None: + length = len(data) + dbg(line % ' %d bytes of data' % length) + + start = util.timer() + + ret = self._urlopener.open(req) + if self._ui.configbool('devel', 'debug.peer-request'): + dbg(line % ' finished in %.4f seconds (%s)' + % (util.timer() - start, ret.code)) + return ret # Begin of _basepeer interface.