Show More
@@ -93,3 +93,23 b' def writebundle(cg, filename, compress):' | |||
|
93 | 93 | fh.close() |
|
94 | 94 | if cleanup is not None: |
|
95 | 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) |
@@ -11,7 +11,7 b' from i18n import gettext as _' | |||
|
11 | 11 | demandload(globals(), "os re sys signal imp urllib pdb shlex") |
|
12 | 12 | demandload(globals(), "fancyopts ui hg util lock revlog bundlerepo") |
|
13 | 13 | demandload(globals(), "difflib patch time") |
|
14 |
demandload(globals(), "traceback errno version atexit |
|
|
14 | demandload(globals(), "traceback errno version atexit") | |
|
15 | 15 | demandload(globals(), "archival changegroup cmdutil hgweb.server sshserver") |
|
16 | 16 | |
|
17 | 17 | class UnknownCommand(Exception): |
@@ -2195,29 +2195,8 b' def unbundle(ui, repo, fname, **opts):' | |||
|
2195 | 2195 | Apply a compressed changegroup file generated by the bundle |
|
2196 | 2196 | command. |
|
2197 | 2197 | """ |
|
2198 |
|
|
|
2199 | ||
|
2200 | header = f.read(6) | |
|
2201 | if not header.startswith("HG"): | |
|
2202 | raise util.Abort(_("%s: not a Mercurial bundle file") % fname) | |
|
2203 | elif not header.startswith("HG10"): | |
|
2204 | raise util.Abort(_("%s: unknown bundle version") % fname) | |
|
2205 | elif header == "HG10BZ": | |
|
2206 | def generator(f): | |
|
2207 | zd = bz2.BZ2Decompressor() | |
|
2208 | zd.decompress("BZ") | |
|
2209 | for chunk in f: | |
|
2210 | yield zd.decompress(chunk) | |
|
2211 | elif header == "HG10UN": | |
|
2212 | def generator(f): | |
|
2213 | for chunk in f: | |
|
2214 | yield chunk | |
|
2215 | else: | |
|
2216 | raise util.Abort(_("%s: unknown bundle compression type") | |
|
2217 | % fname) | |
|
2218 | gen = generator(util.filechunkiter(f, 4096)) | |
|
2219 | modheads = repo.addchangegroup(util.chunkbuffer(gen), 'unbundle', | |
|
2220 | 'bundle:' + fname) | |
|
2198 | gen = changegroup.readbundle(urllib.urlopen(fname)) | |
|
2199 | modheads = repo.addchangegroup(gen, 'unbundle', 'bundle:' + fname) | |
|
2221 | 2200 | return postincoming(ui, repo, modheads, opts['update']) |
|
2222 | 2201 | |
|
2223 | 2202 | def update(ui, repo, node=None, merge=False, clean=False, force=None, |
General Comments 0
You need to be logged in to leave comments.
Login now