mercurial/changegroup.py
changeset 30354 a37a96d838b9
parent 30339 6cdfb7e15a35
child 30589 182cacaa4c32
--- a/mercurial/changegroup.py	Mon Nov 07 18:36:48 2016 -0800
+++ b/mercurial/changegroup.py	Mon Nov 07 18:38:13 2016 -0800
@@ -137,14 +137,16 @@
     _grouplistcount = 1 # One list of files after the manifests
 
     def __init__(self, fh, alg, extras=None):
-        if alg == 'UN':
-            alg = None # get more modern without breaking too much
-        if not alg in util.decompressors:
+        if alg is None:
+            alg = 'UN'
+        if alg not in util.compengines.supportedbundletypes:
             raise error.Abort(_('unknown stream compression type: %s')
                              % alg)
         if alg == 'BZ':
             alg = '_truncatedBZ'
-        self._stream = util.decompressors[alg](fh)
+
+        compengine = util.compengines.forbundletype(alg)
+        self._stream = compengine.decompressorreader(fh)
         self._type = alg
         self.extras = extras or {}
         self.callback = None