comparison mercurial/bundlerepo.py @ 26801:73bf76bf6f14

bundlerepo: uncompress changegroup in bundle1 case only Uncompressing bundle2 needs to be handled differently.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Mon, 19 Oct 2015 18:04:08 +0200
parents 7cac6ee41be7
children ed41ce89822d
comparison
equal deleted inserted replaced
26800:7cac6ee41be7 26801:73bf76bf6f14
273 self._url = 'bundle:' + bundlename 273 self._url = 'bundle:' + bundlename
274 274
275 self.tempfile = None 275 self.tempfile = None
276 f = util.posixfile(bundlename, "rb") 276 f = util.posixfile(bundlename, "rb")
277 self.bundlefile = self.bundle = exchange.readbundle(ui, f, bundlename) 277 self.bundlefile = self.bundle = exchange.readbundle(ui, f, bundlename)
278 if self.bundle.compressed():
279 f = _writetempbundle(self.bundle.read, '.hg10un', header='HG10UN')
280 self.bundlefile = self.bundle = exchange.readbundle(ui, f,
281 bundlename,
282 self.vfs)
283 278
284 if isinstance(self.bundle, bundle2.unbundle20): 279 if isinstance(self.bundle, bundle2.unbundle20):
285 cgparts = [part for part in self.bundle.iterparts() 280 cgparts = [part for part in self.bundle.iterparts()
286 if (part.type == 'changegroup') 281 if (part.type == 'changegroup')
287 and (part.params.get('version', '01') 282 and (part.params.get('version', '01')
296 raise NotImplementedError("Can't process multiple changegroups") 291 raise NotImplementedError("Can't process multiple changegroups")
297 part = cgparts[0] 292 part = cgparts[0]
298 293
299 part.seek(0) 294 part.seek(0)
300 self.bundle = changegroup.packermap[version][1](part, 'UN') 295 self.bundle = changegroup.packermap[version][1](part, 'UN')
296
297 elif self.bundle.compressed():
298 f = _writetempbundle(self.bundle.read, '.hg10un', header='HG10UN')
299 self.bundlefile = self.bundle = exchange.readbundle(ui, f,
300 bundlename,
301 self.vfs)
301 302
302 # dict with the mapping 'filename' -> position in the bundle 303 # dict with the mapping 'filename' -> position in the bundle
303 self.bundlefilespos = {} 304 self.bundlefilespos = {}
304 305
305 self.firstnewrev = self.changelog.repotiprev + 1 306 self.firstnewrev = self.changelog.repotiprev + 1