diff -r 93397c4633f6 -r 3a2367e6c6f2 mercurial/httppeer.py --- a/mercurial/httppeer.py Mon Apr 09 19:35:04 2018 -0700 +++ b/mercurial/httppeer.py Mon Apr 09 19:35:39 2018 -0700 @@ -493,6 +493,15 @@ def _call(self, name, **args): """Call a wire protocol command with arguments.""" + # Having this early has a side-effect of importing wireprotov2server, + # which has the side-effect of ensuring commands are registered. + + # TODO modify user-agent to reflect v2. + headers = { + r'Accept': wireprotov2server.FRAMINGTYPE, + r'Content-Type': wireprotov2server.FRAMINGTYPE, + } + # TODO permissions should come from capabilities results. permission = wireproto.commandsv2[name].permission if permission not in ('push', 'pull'): @@ -507,12 +516,6 @@ url = '%s/api/%s/%s/%s' % (self.url, wireprotov2server.HTTPV2, permission, name) - # TODO modify user-agent to reflect v2. - headers = { - r'Accept': wireprotov2server.FRAMINGTYPE, - r'Content-Type': wireprotov2server.FRAMINGTYPE, - } - # TODO this should be part of a generic peer for the frame-based # protocol. reactor = wireprotoframing.clientreactor(hasmultiplesend=False,