diff -r 36200dc6b3bd -r 0ff44e06275d mercurial/exchange.py --- a/mercurial/exchange.py Thu May 29 14:59:22 2014 -0700 +++ b/mercurial/exchange.py Tue May 27 15:43:09 2014 -0700 @@ -9,7 +9,7 @@ from node import hex, nullid import errno, urllib import util, scmutil, changegroup, base85, error -import discovery, phases, obsolete, bookmarks, bundle2 +import discovery, phases, obsolete, bookmarks, bundle2, pushkey def readbundle(ui, fh, fname, vfs=None): header = changegroup.readexactly(fh, 4) @@ -678,6 +678,12 @@ bundler = bundle2.bundle20(repo.ui, b2caps) if cg: bundler.newpart('b2x:changegroup', data=cg.getchunks()) + listkeys = kwargs.get('listkeys', ()) + for namespace in listkeys: + part = bundler.newpart('b2x:listkeys') + part.addparam('namespace', namespace) + keys = repo.listkeys(namespace).items() + part.data = pushkey.encodekeys(keys) _getbundleextrapart(bundler, repo, source, heads=heads, common=common, bundlecaps=bundlecaps, **kwargs) return util.chunkbuffer(bundler.getchunks())