Mercurial > hg > mercurial-crew-with-dirclash
comparison mercurial/changegroup.py @ 3667:8500a13ec44b
create a readbundle function
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Wed, 15 Nov 2006 15:51:58 -0600 |
parents | 025f68f22ae2 |
children | f4dc02d7fb71 |
comparison
equal
deleted
inserted
replaced
3666:025f68f22ae2 | 3667:8500a13ec44b |
---|---|
91 finally: | 91 finally: |
92 if fh is not None: | 92 if fh is not None: |
93 fh.close() | 93 fh.close() |
94 if cleanup is not None: | 94 if cleanup is not None: |
95 os.unlink(cleanup) | 95 os.unlink(cleanup) |
96 | |
97 def readbundle(fh): | |
98 header = fh.read(6) | |
99 if not header.startswith("HG"): | |
100 raise util.Abort(_("%s: not a Mercurial bundle file") % fname) | |
101 elif not header.startswith("HG10"): | |
102 raise util.Abort(_("%s: unknown bundle version") % fname) | |
103 | |
104 if header == "HG10BZ": | |
105 def generator(f): | |
106 zd = bz2.BZ2Decompressor() | |
107 zd.decompress("BZ") | |
108 for chunk in util.filechunkiter(f, 4096): | |
109 yield zd.decompress(chunk) | |
110 return util.chunkbuffer(generator(fh)) | |
111 elif header == "HG10UN": | |
112 return fh | |
113 | |
114 raise util.Abort(_("%s: unknown bundle compression type") | |
115 % fname) |