wireproto: don't compress errors from getbundle()
authorGregory Szorc <gregory.szorc@gmail.com>
Sat, 20 Jan 2018 15:43:02 -0800
changeset 35782 9d249f3de730
parent 35781 c6ef8e841873
child 35783 c97639ad6874
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
mercurial/wireproto.py
--- 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):