mercurial/commands.py
changeset 1940 7ae177a70f54
parent 1920 b7cc0f323a4c
child 1943 8198c60f7914
equal deleted inserted replaced
1920:b7cc0f323a4c 1940:7ae177a70f54
  2490     Apply a compressed changegroup file generated by the bundle
  2490     Apply a compressed changegroup file generated by the bundle
  2491     command.
  2491     command.
  2492     """
  2492     """
  2493     f = urllib.urlopen(fname)
  2493     f = urllib.urlopen(fname)
  2494 
  2494 
  2495     if f.read(4) != "HG10":
  2495     header = f.read(4)
       
  2496     if header == "HG10":
       
  2497         def generator(f):
       
  2498             zd = bz2.BZ2Decompressor()
       
  2499             for chunk in f:
       
  2500                 yield zd.decompress(chunk)
       
  2501     elif header == "HG11":
       
  2502         def generator(f):
       
  2503             for chunk in f:
       
  2504                 yield chunk
       
  2505     else:
  2496         raise util.Abort(_("%s: not a Mercurial bundle file") % fname)
  2506         raise util.Abort(_("%s: not a Mercurial bundle file") % fname)
  2497 
  2507     gen = generator(util.filechunkiter(f, 4096))
  2498     def bzgenerator(f):
  2508     if repo.addchangegroup(util.chunkbuffer(gen)):
  2499         zd = bz2.BZ2Decompressor()
       
  2500         for chunk in f:
       
  2501             yield zd.decompress(chunk)
       
  2502 
       
  2503     bzgen = bzgenerator(util.filechunkiter(f, 4096))
       
  2504     if repo.addchangegroup(util.chunkbuffer(bzgen)):
       
  2505         return 1
  2509         return 1
  2506 
  2510 
  2507     if opts['update']:
  2511     if opts['update']:
  2508         return update(ui, repo)
  2512         return update(ui, repo)
  2509     else:
  2513     else: