##// END OF EJS Templates
bundle2: allow compression options to be passed to compressor...
Gregory Szorc -
r30757:511a4bf5 default
parent child Browse files
Show More
@@ -512,14 +512,16 b' class bundle20(object):'
512 512 self._parts = []
513 513 self.capabilities = dict(capabilities)
514 514 self._compengine = util.compengines.forbundletype('UN')
515 self._compopts = None
515 516
516 def setcompression(self, alg):
517 def setcompression(self, alg, compopts=None):
517 518 """setup core part compression to <alg>"""
518 519 if alg in (None, 'UN'):
519 520 return
520 521 assert not any(n.lower() == 'Compression' for n, v in self._params)
521 522 self.addparam('Compression', alg)
522 523 self._compengine = util.compengines.forbundletype(alg)
524 self._compopts = compopts
523 525
524 526 @property
525 527 def nbparts(self):
@@ -571,7 +573,8 b' class bundle20(object):'
571 573 yield _pack(_fstreamparamsize, len(param))
572 574 if param:
573 575 yield param
574 for chunk in self._compengine.compressstream(self._getcorechunk()):
576 for chunk in self._compengine.compressstream(self._getcorechunk(),
577 self._compopts):
575 578 yield chunk
576 579
577 580 def _paramchunk(self):
@@ -1289,7 +1292,8 b' def obsmarkersversion(caps):'
1289 1292 obscaps = caps.get('obsmarkers', ())
1290 1293 return [int(c[1:]) for c in obscaps if c.startswith('V')]
1291 1294
1292 def writebundle(ui, cg, filename, bundletype, vfs=None, compression=None):
1295 def writebundle(ui, cg, filename, bundletype, vfs=None, compression=None,
1296 compopts=None):
1293 1297 """Write a bundle file and return its filename.
1294 1298
1295 1299 Existing files will not be overwritten.
@@ -1300,7 +1304,7 b' def writebundle(ui, cg, filename, bundle'
1300 1304
1301 1305 if bundletype == "HG20":
1302 1306 bundle = bundle20(ui)
1303 bundle.setcompression(compression)
1307 bundle.setcompression(compression, compopts)
1304 1308 part = bundle.newpart('changegroup', data=cg.getchunks())
1305 1309 part.addparam('version', cg.version)
1306 1310 if 'clcount' in cg.extras:
@@ -1320,7 +1324,7 b' def writebundle(ui, cg, filename, bundle'
1320 1324 compengine = util.compengines.forbundletype(comp)
1321 1325 def chunkiter():
1322 1326 yield header
1323 for chunk in compengine.compressstream(cg.getchunks()):
1327 for chunk in compengine.compressstream(cg.getchunks(), compopts):
1324 1328 yield chunk
1325 1329 chunkiter = chunkiter()
1326 1330
General Comments 0
You need to be logged in to leave comments. Login now