mercurial/bundlerepo.py
changeset 37643 1aa4d646d0de
parent 37642 d959277ff1b5
child 37717 0664be4f0c1f
equal deleted inserted replaced
37642:d959277ff1b5 37643:1aa4d646d0de
   538         forcebundle1 = 'bundle2' not in legexc and 'bundle1' in legexc
   538         forcebundle1 = 'bundle2' not in legexc and 'bundle1' in legexc
   539         canbundle2 = (not forcebundle1
   539         canbundle2 = (not forcebundle1
   540                       and peer.capable('getbundle')
   540                       and peer.capable('getbundle')
   541                       and peer.capable('bundle2'))
   541                       and peer.capable('bundle2'))
   542         if canbundle2:
   542         if canbundle2:
   543             kwargs = {}
   543             with peer.commandexecutor() as e:
   544             kwargs[r'common'] = common
   544                 b2 = e.callcommand('getbundle', {
   545             kwargs[r'heads'] = rheads
   545                     'source': 'incoming',
   546             kwargs[r'bundlecaps'] = exchange.caps20to10(repo, role='client')
   546                     'common': common,
   547             kwargs[r'cg'] = True
   547                     'heads': rheads,
   548             b2 = peer.getbundle('incoming', **kwargs)
   548                     'bundlecaps': exchange.caps20to10(repo, role='client'),
   549             fname = bundle = changegroup.writechunks(ui, b2._forwardchunks(),
   549                     'cg': True,
   550                                                      bundlename)
   550                 }).result()
       
   551 
       
   552                 fname = bundle = changegroup.writechunks(ui,
       
   553                                                          b2._forwardchunks(),
       
   554                                                          bundlename)
   551         else:
   555         else:
   552             if peer.capable('getbundle'):
   556             if peer.capable('getbundle'):
   553                 cg = peer.getbundle('incoming', common=common, heads=rheads)
   557                 with peer.commandexecutor() as e:
       
   558                     cg = e.callcommand('getbundle', {
       
   559                         'source': 'incoming',
       
   560                         'common': common,
       
   561                         'heads': rheads,
       
   562                     }).result()
   554             elif onlyheads is None and not peer.capable('changegroupsubset'):
   563             elif onlyheads is None and not peer.capable('changegroupsubset'):
   555                 # compat with older servers when pulling all remote heads
   564                 # compat with older servers when pulling all remote heads
   556 
   565 
   557                 with peer.commandexecutor() as e:
   566                 with peer.commandexecutor() as e:
   558                     cg = e.callcommand('changegroup', {
   567                     cg = e.callcommand('changegroup', {
   592 
   601 
   593     csets = localrepo.changelog.findmissing(common, rheads)
   602     csets = localrepo.changelog.findmissing(common, rheads)
   594 
   603 
   595     if bundlerepo:
   604     if bundlerepo:
   596         reponodes = [ctx.node() for ctx in bundlerepo[bundlerepo.firstnewrev:]]
   605         reponodes = [ctx.node() for ctx in bundlerepo[bundlerepo.firstnewrev:]]
   597         remotephases = peer.listkeys('phases')
   606 
       
   607         with peer.commandexecutor() as e:
       
   608             remotephases = e.callcommand('listkeys', {
       
   609                 'namespace': 'phases',
       
   610             }).result()
   598 
   611 
   599         pullop = exchange.pulloperation(bundlerepo, peer, heads=reponodes)
   612         pullop = exchange.pulloperation(bundlerepo, peer, heads=reponodes)
   600         pullop.trmanager = bundletransactionmanager()
   613         pullop.trmanager = bundletransactionmanager()
   601         exchange._pullapplyphases(pullop, remotephases)
   614         exchange._pullapplyphases(pullop, remotephases)
   602 
   615