diff -r 800bb35d891e -r 13dc7f29531e mercurial/exchange.py --- a/mercurial/exchange.py Wed Aug 16 15:48:48 2017 -0700 +++ b/mercurial/exchange.py Thu Aug 17 13:04:47 2017 -0700 @@ -1401,6 +1401,10 @@ if pullop.fetch: pullop.cgresult = bundle2.combinechangegroupresults(op) + # If the bundle had a phase-heads part, then phase exchange is already done + if op.records['phase-heads']: + pullop.stepsdone.add('phases') + # processing phases change for namespace, value in op.records['listkeys']: if namespace == 'phases':