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

login
register
mail settings
Submitter Gregory Szorc
Date Nov. 11, 2016, 9:23 a.m.
Message ID <0239a4e94147ce85aecb.1478856217@ubuntu-vm-main>
Download mbox | patch
Permalink /patch/17472/
State Accepted
Headers show

Comments

Gregory Szorc - Nov. 11, 2016, 9:23 a.m.
# HG changeset patch
# User Gregory Szorc <gregory.szorc@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.

Patch

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'):
             return
         assert not any(n.lower() == 'Compression' for n, v in self._params)
         self.addparam('Compression', alg)