Mercurial > public > mercurial-scm > hg
diff mercurial/debugcommands.py @ 30502:6da030496667
debugcommands: move debug{create,apply}streambundleclone to the new module
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Wed, 17 Aug 2016 20:37:54 -0700 |
parents | a87e469201f9 |
children | 6bfb333a6f2f |
line wrap: on
line diff
--- a/mercurial/debugcommands.py Wed Aug 17 21:07:22 2016 -0700 +++ b/mercurial/debugcommands.py Wed Aug 17 20:37:54 2016 -0700 @@ -27,6 +27,7 @@ revlog, scmutil, simplemerge, + streamclone, ) release = lockmod.release @@ -273,3 +274,22 @@ version = part.params.get('version', '01') cg = changegroup.getunbundler(version, part, 'UN') _debugchangegroup(ui, cg, all=all, indent=4, **opts) + +@command('debugcreatestreamclonebundle', [], 'FILE') +def debugcreatestreamclonebundle(ui, repo, fname): + """create a stream clone bundle file + + Stream bundles are special bundles that are essentially archives of + revlog files. They are commonly used for cloning very quickly. + """ + requirements, gen = streamclone.generatebundlev1(repo) + changegroup.writechunks(ui, gen, fname) + + ui.write(_('bundle requirements: %s\n') % ', '.join(sorted(requirements))) + +@command('debugapplystreamclonebundle', [], 'FILE') +def debugapplystreamclonebundle(ui, repo, fname): + """apply a stream clone bundle file""" + f = hg.openpath(ui, fname) + gen = exchange.readbundle(ui, f, fname) + gen.apply(repo)