[PATCH 5 of 8] bundle2: equate 'UN' with no compression

Gregory Szorc gregory.szorc at gmail.com
Fri Nov 11 04:23:37 EST 2016

# HG changeset patch
# User Gregory Szorc <gregory.szorc at gmail.com>
# Date 1478849341 28800
#      Thu Nov 10 23:29:01 2016 -0800
# Node ID 0239a4e94147ce85aecb71bfb0dbf227410a7b67
# Parent  bf84b10919fc5869097a7ba64e15b38859064f62
bundle2: equate 'UN' with no compression

An upcoming patch will change the "alg" argument passed to this
function from None to "UN" when no compression is wanted.

The existing implementation of bundle2 does not set a "Compression"
parameter if no compression is used. In theory, setting
"Compression=UN" should work. But I haven't audited the code to see if
all client versions supporting bundle2 will accept this.

Rather than take the risk, avoid the BC breakage and treat "UN"
the same as None.

diff --git a/mercurial/bundle2.py b/mercurial/bundle2.py
--- a/mercurial/bundle2.py
+++ b/mercurial/bundle2.py
@@ -515,7 +515,7 @@ class bundle20(object):
     def setcompression(self, alg):
         """setup core part compression to <alg>"""
-        if alg is None:
+        if alg in (None, 'UN'):
         assert not any(n.lower() == 'Compression' for n, v in self._params)
         self.addparam('Compression', alg)

More information about the Mercurial-devel mailing list