mercurial/exchange.py
changeset 21657 0ff44e06275d
parent 21656 36200dc6b3bd
child 21658 0696ca0a685b
--- 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())