mercurial/exchange.py
changeset 21658 0696ca0a685b
parent 21657 0ff44e06275d
child 21662 09f19e09f1b4
--- a/mercurial/exchange.py	Tue May 27 15:43:09 2014 -0700
+++ b/mercurial/exchange.py	Tue May 27 15:44:46 2014 -0700
@@ -532,12 +532,15 @@
     """pull data using bundle2
 
     For now, the only supported data are changegroup."""
+    remotecaps = bundle2.bundle2caps(pullop.remote)
     kwargs = {'bundlecaps': caps20to10(pullop.repo)}
     # pulling changegroup
     pullop.todosteps.remove('changegroup')
 
     kwargs['common'] = pullop.common
     kwargs['heads'] = pullop.heads or pullop.rheads
+    if 'b2x:listkeys' in remotecaps:
+        kwargs['listkeys'] = ['phase']
     if not pullop.fetch:
         pullop.repo.ui.status(_("no changes found\n"))
         pullop.cgresult = 0
@@ -557,6 +560,11 @@
         assert len(op.records['changegroup']) == 1
         pullop.cgresult = op.records['changegroup'][0]['return']
 
+    # processing phases change
+    for namespace, value in op.records['listkeys']:
+        if namespace == 'phases':
+            _pullapplyphases(pullop, value)
+
 def _pullbundle2extraprepare(pullop, kwargs):
     """hook function so that extensions can extend the getbundle call"""
     pass