mercurial/exchange.py
changeset 24650 b83a8f512a80
parent 24649 2d15c59a001b
child 24686 e0e28e910fa3
equal deleted inserted replaced
24649:2d15c59a001b 24650:b83a8f512a80
    49         if version is None:
    49         if version is None:
    50             raise ValueError('bundler do not support common obsmarker format')
    50             raise ValueError('bundler do not support common obsmarker format')
    51         stream = obsolete.encodemarkers(markers, True, version=version)
    51         stream = obsolete.encodemarkers(markers, True, version=version)
    52         return bundler.newpart('b2x:obsmarkers', data=stream)
    52         return bundler.newpart('b2x:obsmarkers', data=stream)
    53     return None
    53     return None
       
    54 
       
    55 def _canusebundle2(op):
       
    56     """return true if a pull/push can use bundle2
       
    57 
       
    58     Feel free to nuke this function when we drop the experimental option"""
       
    59     return (op.repo.ui.configbool('experimental', 'bundle2-exp', False)
       
    60             and op.remote.capable('bundle2-exp'))
       
    61 
    54 
    62 
    55 class pushoperation(object):
    63 class pushoperation(object):
    56     """A object that represent a single push operation
    64     """A object that represent a single push operation
    57 
    65 
    58     It purpose is to carry push related state and very common operation.
    66     It purpose is to carry push related state and very common operation.
   215         unbundle = pushop.remote.capable('unbundle')
   223         unbundle = pushop.remote.capable('unbundle')
   216         if not unbundle:
   224         if not unbundle:
   217             lock = pushop.remote.lock()
   225             lock = pushop.remote.lock()
   218         try:
   226         try:
   219             _pushdiscovery(pushop)
   227             _pushdiscovery(pushop)
   220             if (pushop.repo.ui.configbool('experimental', 'bundle2-exp',
   228             if _canusebundle2(pushop):
   221                                           False)
       
   222                 and pushop.remote.capable('bundle2-exp')):
       
   223                 _pushbundle2(pushop)
   229                 _pushbundle2(pushop)
   224             _pushchangeset(pushop)
   230             _pushchangeset(pushop)
   225             _pushsyncphase(pushop)
   231             _pushsyncphase(pushop)
   226             _pushobsolete(pushop)
   232             _pushobsolete(pushop)
   227             _pushbookmark(pushop)
   233             _pushbookmark(pushop)
   874     pullop.remotebookmarks = remote.listkeys('bookmarks')
   880     pullop.remotebookmarks = remote.listkeys('bookmarks')
   875     lock = pullop.repo.lock()
   881     lock = pullop.repo.lock()
   876     try:
   882     try:
   877         pullop.trmanager = transactionmanager(repo, 'pull', remote.url())
   883         pullop.trmanager = transactionmanager(repo, 'pull', remote.url())
   878         _pulldiscovery(pullop)
   884         _pulldiscovery(pullop)
   879         if (pullop.repo.ui.configbool('experimental', 'bundle2-exp', False)
   885         if _canusebundle2(pullop):
   880             and pullop.remote.capable('bundle2-exp')):
       
   881             _pullbundle2(pullop)
   886             _pullbundle2(pullop)
   882         _pullchangeset(pullop)
   887         _pullchangeset(pullop)
   883         _pullphase(pullop)
   888         _pullphase(pullop)
   884         _pullbookmarks(pullop)
   889         _pullbookmarks(pullop)
   885         _pullobsolete(pullop)
   890         _pullobsolete(pullop)