Mercurial > hg
changeset 1940:7ae177a70f54
add a new bundle type: uncompressed bundle
author | Benoit Boissinot <benoit.boissinot@ens-lyon.org> |
---|---|
date | Mon, 13 Mar 2006 03:54:23 +0100 |
parents | b7cc0f323a4c |
children | 7518823709a2 |
files | mercurial/commands.py |
diffstat | 1 files changed, 13 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/commands.py Sun Mar 12 16:21:59 2006 -0800 +++ b/mercurial/commands.py Mon Mar 13 03:54:23 2006 +0100 @@ -2492,16 +2492,20 @@ """ f = urllib.urlopen(fname) - if f.read(4) != "HG10": + header = f.read(4) + if header == "HG10": + def generator(f): + zd = bz2.BZ2Decompressor() + for chunk in f: + yield zd.decompress(chunk) + elif header == "HG11": + def generator(f): + for chunk in f: + yield chunk + else: raise util.Abort(_("%s: not a Mercurial bundle file") % fname) - - def bzgenerator(f): - zd = bz2.BZ2Decompressor() - for chunk in f: - yield zd.decompress(chunk) - - bzgen = bzgenerator(util.filechunkiter(f, 4096)) - if repo.addchangegroup(util.chunkbuffer(bzgen)): + gen = generator(util.filechunkiter(f, 4096)) + if repo.addchangegroup(util.chunkbuffer(gen)): return 1 if opts['update']: