diff -r e67522413ca8 -r 762ef19a07e3 mercurial/httppeer.py --- a/mercurial/httppeer.py Mon Oct 08 17:10:59 2018 -0700 +++ b/mercurial/httppeer.py Mon Oct 08 17:00:16 2018 -0700 @@ -514,9 +514,27 @@ def sendv2request(ui, opener, requestbuilder, apiurl, permission, requests, redirect): + wireprotoframing.populatestreamencoders() + + uiencoders = ui.configlist(b'experimental', b'httppeer.v2-encoder-order') + + if uiencoders: + encoders = [] + + for encoder in uiencoders: + if encoder not in wireprotoframing.STREAM_ENCODERS: + ui.warn(_(b'wire protocol version 2 encoder referenced in ' + b'config (%s) is not known; ignoring\n') % encoder) + else: + encoders.append(encoder) + + else: + encoders = wireprotoframing.STREAM_ENCODERS_ORDER + reactor = wireprotoframing.clientreactor(ui, hasmultiplesend=False, - buffersends=True) + buffersends=True, + clientcontentencoders=encoders) handler = wireprotov2peer.clienthandler(ui, reactor, opener=opener,