Mercurial > public > mercurial-scm > hg
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 |