804 def _pushb2phases(pushop, bundler): |
804 def _pushb2phases(pushop, bundler): |
805 """handle phase push through bundle2""" |
805 """handle phase push through bundle2""" |
806 if 'phases' in pushop.stepsdone: |
806 if 'phases' in pushop.stepsdone: |
807 return |
807 return |
808 b2caps = bundle2.bundle2caps(pushop.remote) |
808 b2caps = bundle2.bundle2caps(pushop.remote) |
809 if 'pushkey' in b2caps: |
809 ui = pushop.repo.ui |
|
810 |
|
811 legacyphase = 'phases' in ui.configlist('devel', 'legacy.exchange') |
|
812 haspushkey = 'pushkey' in b2caps |
|
813 hasphaseheads = 'heads' in b2caps.get('phases', ()) |
|
814 |
|
815 if hasphaseheads and not legacyphase: |
|
816 _pushb2phaseheads(pushop, bundler) |
|
817 elif haspushkey: |
810 _pushb2phasespushkey(pushop, bundler) |
818 _pushb2phasespushkey(pushop, bundler) |
|
819 |
|
820 def _pushb2phaseheads(pushop, bundler): |
|
821 """push phase information through a bundle2 - binary part""" |
|
822 pushop.stepsdone.add('phases') |
|
823 if pushop.outdatedphases: |
|
824 updates = [[] for p in phases.allphases] |
|
825 updates[0].extend(h.node() for h in pushop.outdatedphases) |
|
826 phasedata = phases.binaryencode(updates) |
|
827 bundler.newpart('phase-heads', data=phasedata) |
811 |
828 |
812 def _pushb2phasespushkey(pushop, bundler): |
829 def _pushb2phasespushkey(pushop, bundler): |
813 """push phase information through a bundle2 - pushkey part""" |
830 """push phase information through a bundle2 - pushkey part""" |
814 pushop.stepsdone.add('phases') |
831 pushop.stepsdone.add('phases') |
815 part2node = [] |
832 part2node = [] |