comparison mercurial/exchange.py @ 22269:03cc81a28228

push: check if local and remote support evolution during discovery We can now directly prevent any evolution-related operation from happening by using an empty set for outgoing markers. So we detect if no transfers should occur and use an empty set in this case.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Wed, 20 Aug 2014 17:36:54 -0700
parents 172036d60b22
children 2d16b39601b5
comparison
equal deleted inserted replaced
22268:ca2e9cf77033 22269:03cc81a28228
278 pushop.outdatedphases = future 278 pushop.outdatedphases = future
279 pushop.fallbackoutdatedphases = fallback 279 pushop.fallbackoutdatedphases = fallback
280 280
281 @pushdiscovery('obsmarker') 281 @pushdiscovery('obsmarker')
282 def _pushdiscoveryobsmarkers(pushop): 282 def _pushdiscoveryobsmarkers(pushop):
283 pushop.outobsmarkers = pushop.repo.obsstore 283 if (obsolete._enabled
284 and pushop.repo.obsstore
285 and 'obsolete' in pushop.remote.listkeys('namespaces')):
286 pushop.outobsmarkers = pushop.repo.obsstore
284 287
285 @pushdiscovery('bookmarks') 288 @pushdiscovery('bookmarks')
286 def _pushdiscoverybookmarks(pushop): 289 def _pushdiscoverybookmarks(pushop):
287 ui = pushop.ui 290 ui = pushop.ui
288 repo = pushop.repo.unfiltered() 291 repo = pushop.repo.unfiltered()
650 return 653 return
651 pushop.ui.debug('try to push obsolete markers to remote\n') 654 pushop.ui.debug('try to push obsolete markers to remote\n')
652 repo = pushop.repo 655 repo = pushop.repo
653 remote = pushop.remote 656 remote = pushop.remote
654 pushop.stepsdone.add('obsmarkers') 657 pushop.stepsdone.add('obsmarkers')
655 if (obsolete._enabled and repo.obsstore and 658 if (pushop.outobsmarkers):
656 'obsolete' in remote.listkeys('namespaces')):
657 rslts = [] 659 rslts = []
658 remotedata = obsolete._pushkeyescape(pushop.outobsmarkers) 660 remotedata = obsolete._pushkeyescape(pushop.outobsmarkers)
659 for key in sorted(remotedata, reverse=True): 661 for key in sorted(remotedata, reverse=True):
660 # reverse sort to ensure we end with dump0 662 # reverse sort to ensure we end with dump0
661 data = remotedata[key] 663 data = remotedata[key]