Mercurial > public > mercurial-scm > hg
comparison mercurial/commands.py @ 14141:bd1cbfe5db5c
bundler: make parsechunk return the base revision of the delta
author | Benoit Boissinot <benoit.boissinot@ens-lyon.org> |
---|---|
date | Sat, 30 Apr 2011 10:00:41 +0200 |
parents | 9f5a0acb0056 |
children | 3c3c53d8343a |
comparison
equal
deleted
inserted
replaced
14140:82f0412ef7de | 14141:bd1cbfe5db5c |
---|---|
1212 """lists the contents of a bundle""" | 1212 """lists the contents of a bundle""" |
1213 f = url.open(ui, bundlepath) | 1213 f = url.open(ui, bundlepath) |
1214 try: | 1214 try: |
1215 gen = changegroup.readbundle(f, bundlepath) | 1215 gen = changegroup.readbundle(f, bundlepath) |
1216 if all: | 1216 if all: |
1217 ui.write("format: id, p1, p2, cset, len(delta)\n") | 1217 ui.write("format: id, p1, p2, cset, delta base, len(delta)\n") |
1218 | 1218 |
1219 def showchunks(named): | 1219 def showchunks(named): |
1220 ui.write("\n%s\n" % named) | 1220 ui.write("\n%s\n" % named) |
1221 chain = None | |
1221 while 1: | 1222 while 1: |
1222 chunkdata = gen.parsechunk() | 1223 chunkdata = gen.parsechunk(chain) |
1223 if not chunkdata: | 1224 if not chunkdata: |
1224 break | 1225 break |
1225 node = chunkdata['node'] | 1226 node = chunkdata['node'] |
1226 p1 = chunkdata['p1'] | 1227 p1 = chunkdata['p1'] |
1227 p2 = chunkdata['p2'] | 1228 p2 = chunkdata['p2'] |
1228 cs = chunkdata['cs'] | 1229 cs = chunkdata['cs'] |
1229 delta = chunkdata['data'] | 1230 deltabase = chunkdata['deltabase'] |
1230 ui.write("%s %s %s %s %s\n" % | 1231 delta = chunkdata['delta'] |
1232 ui.write("%s %s %s %s %s %s\n" % | |
1231 (hex(node), hex(p1), hex(p2), | 1233 (hex(node), hex(p1), hex(p2), |
1232 hex(cs), len(delta))) | 1234 hex(cs), hex(deltabase), len(delta))) |
1235 chain = node | |
1233 | 1236 |
1234 showchunks("changelog") | 1237 showchunks("changelog") |
1235 showchunks("manifest") | 1238 showchunks("manifest") |
1236 while 1: | 1239 while 1: |
1237 fname = gen.chunk() | 1240 fname = gen.chunk() |
1238 if not fname: | 1241 if not fname: |
1239 break | 1242 break |
1240 showchunks(fname) | 1243 showchunks(fname) |
1241 else: | 1244 else: |
1245 chain = None | |
1242 while 1: | 1246 while 1: |
1243 chunkdata = gen.parsechunk() | 1247 chunkdata = gen.parsechunk(chain) |
1244 if not chunkdata: | 1248 if not chunkdata: |
1245 break | 1249 break |
1246 node = chunkdata['node'] | 1250 node = chunkdata['node'] |
1247 ui.write("%s\n" % hex(node)) | 1251 ui.write("%s\n" % hex(node)) |
1252 chain = node | |
1248 finally: | 1253 finally: |
1249 f.close() | 1254 f.close() |
1250 | 1255 |
1251 def debuggetbundle(ui, repopath, bundlepath, head=None, common=None, **opts): | 1256 def debuggetbundle(ui, repopath, bundlepath, head=None, common=None, **opts): |
1252 """retrieves a bundle from a repo | 1257 """retrieves a bundle from a repo |