wireproto: don't compress errors from getbundle()
Errors should be small. There's no real need to compress them.
Truth be told, there's no good reason to not compress them either.
But leaving them uncompressed makes it easier to test failures
by looking at the raw HTTP response. This makes it easier for us
to write tests. It may make it easier for people writing their
own clients.
Differential Revision: https://phab.mercurial-scm.org/D1922
--- a/mercurial/wireproto.py Sat Jan 20 16:08:07 2018 -0800
+++ b/mercurial/wireproto.py Sat Jan 20 15:43:02 2018 -0800
@@ -862,6 +862,8 @@
raise error.Abort(bundle2requiredmain,
hint=bundle2requiredhint)
+ preferuncompressed = False
+
try:
if repo.ui.configbool('server', 'disablefullbundle'):
# Check to see if this is a full clone.
@@ -891,8 +893,10 @@
advargs.append(('hint', exc.hint))
bundler.addpart(bundle2.bundlepart('error:abort',
manargs, advargs))
- return streamres(gen=bundler.getchunks())
- return streamres(gen=chunks)
+ chunks = bundler.getchunks()
+ preferuncompressed = True
+
+ return streamres(gen=chunks, prefer_uncompressed=preferuncompressed)
@wireprotocommand('heads')
def heads(repo, proto):