Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/commands.py @ 13741:b51bf961b3cb
wireproto: add getbundle() function
getbundle(common, heads) -> bundle
Returns the changegroup for all ancestors of heads which are not ancestors of common. For both
sets, the heads are included in the set.
Intended to eventually supercede changegroupsubset and changegroup. Uses heads of common region
to exclude unwanted changesets instead of bases of desired region, which is more useful and
easier to implement.
Designed to be extensible with new optional arguments (which will have to be guarded by
corresponding capabilities).
author | Peter Arrenbrecht <peter.arrenbrecht@gmail.com> |
---|---|
date | Wed, 23 Mar 2011 16:02:11 +0100 |
parents | ce47a0c10224 |
children | cede00420e1e |
comparison
equal
deleted
inserted
replaced
13740:dcb51f156fa6 | 13741:b51bf961b3cb |
---|---|
1267 break | 1267 break |
1268 node = chunkdata['node'] | 1268 node = chunkdata['node'] |
1269 ui.write("%s\n" % hex(node)) | 1269 ui.write("%s\n" % hex(node)) |
1270 finally: | 1270 finally: |
1271 f.close() | 1271 f.close() |
1272 | |
1273 def debuggetbundle(ui, repopath, bundlepath, head=None, common=None, **opts): | |
1274 """retrieves a bundle from a repo | |
1275 | |
1276 Every ID must be a full-length hex node id string. Saves the bundle to the | |
1277 given file. | |
1278 """ | |
1279 repo = hg.repository(ui, repopath) | |
1280 if not repo.capable('getbundle'): | |
1281 raise util.Abort("getbundle() not supported by target repository") | |
1282 args = {} | |
1283 if common: | |
1284 args['common'] = [bin(s) for s in common] | |
1285 if head: | |
1286 args['heads'] = [bin(s) for s in head] | |
1287 bundle = repo.getbundle('debug', **args) | |
1288 | |
1289 bundletype = opts.get('type', 'bzip2').lower() | |
1290 btypes = {'none': 'HG10UN', 'bzip2': 'HG10BZ', 'gzip': 'HG10GZ'} | |
1291 bundletype = btypes.get(bundletype) | |
1292 if bundletype not in changegroup.bundletypes: | |
1293 raise util.Abort(_('unknown bundle type specified with --type')) | |
1294 changegroup.writebundle(bundle, bundlepath, bundletype) | |
1272 | 1295 |
1273 def debugpushkey(ui, repopath, namespace, *keyinfo): | 1296 def debugpushkey(ui, repopath, namespace, *keyinfo): |
1274 '''access the pushkey key/value protocol | 1297 '''access the pushkey key/value protocol |
1275 | 1298 |
1276 With two args, list the keys in the given namespace. | 1299 With two args, list the keys in the given namespace. |
4495 (debugdate, | 4518 (debugdate, |
4496 [('e', 'extended', None, _('try extended date formats'))], | 4519 [('e', 'extended', None, _('try extended date formats'))], |
4497 _('[-e] DATE [RANGE]')), | 4520 _('[-e] DATE [RANGE]')), |
4498 "debugdata": (debugdata, [], _('FILE REV')), | 4521 "debugdata": (debugdata, [], _('FILE REV')), |
4499 "debugfsinfo": (debugfsinfo, [], _('[PATH]')), | 4522 "debugfsinfo": (debugfsinfo, [], _('[PATH]')), |
4523 "debuggetbundle": | |
4524 (debuggetbundle, | |
4525 [('H', 'head', [], _('id of head node'), _('ID')), | |
4526 ('C', 'common', [], _('id of common node'), _('ID')), | |
4527 ('t', 'type', 'bzip2', _('bundle compression type to use'), _('TYPE')), | |
4528 ], | |
4529 _('REPO FILE [-H|-C ID]...')), | |
4500 "debugignore": (debugignore, [], ''), | 4530 "debugignore": (debugignore, [], ''), |
4501 "debugindex": (debugindex, | 4531 "debugindex": (debugindex, |
4502 [('f', 'format', 0, _('revlog format'), _('FORMAT'))], | 4532 [('f', 'format', 0, _('revlog format'), _('FORMAT'))], |
4503 _('FILE')), | 4533 _('FILE')), |
4504 "debugindexdot": (debugindexdot, [], _('FILE')), | 4534 "debugindexdot": (debugindexdot, [], _('FILE')), |
4867 "version": (version_, []), | 4897 "version": (version_, []), |
4868 } | 4898 } |
4869 | 4899 |
4870 norepo = ("clone init version help debugcommands debugcomplete" | 4900 norepo = ("clone init version help debugcommands debugcomplete" |
4871 " debugdate debuginstall debugfsinfo debugpushkey debugwireargs" | 4901 " debugdate debuginstall debugfsinfo debugpushkey debugwireargs" |
4872 " debugknown debugbundle") | 4902 " debugknown debuggetbundle debugbundle") |
4873 optionalrepo = ("identify paths serve showconfig debugancestor debugdag" | 4903 optionalrepo = ("identify paths serve showconfig debugancestor debugdag" |
4874 " debugdata debugindex debugindexdot") | 4904 " debugdata debugindex debugindexdot") |