1448 """pull data using bundle2 |
1448 """pull data using bundle2 |
1449 |
1449 |
1450 For now, the only supported data are changegroup.""" |
1450 For now, the only supported data are changegroup.""" |
1451 kwargs = {'bundlecaps': caps20to10(pullop.repo)} |
1451 kwargs = {'bundlecaps': caps20to10(pullop.repo)} |
1452 |
1452 |
|
1453 # make ui easier to access |
|
1454 ui = pullop.repo.ui |
|
1455 |
1453 # At the moment we don't do stream clones over bundle2. If that is |
1456 # At the moment we don't do stream clones over bundle2. If that is |
1454 # implemented then here's where the check for that will go. |
1457 # implemented then here's where the check for that will go. |
1455 streaming = False |
1458 streaming = False |
1456 |
1459 |
|
1460 # declare pull perimeters |
|
1461 kwargs['common'] = pullop.common |
|
1462 kwargs['heads'] = pullop.heads or pullop.rheads |
|
1463 |
1457 # pulling changegroup |
1464 # pulling changegroup |
1458 pullop.stepsdone.add('changegroup') |
1465 pullop.stepsdone.add('changegroup') |
1459 |
1466 |
1460 kwargs['common'] = pullop.common |
|
1461 kwargs['heads'] = pullop.heads or pullop.rheads |
|
1462 kwargs['cg'] = pullop.fetch |
1467 kwargs['cg'] = pullop.fetch |
1463 |
1468 |
1464 ui = pullop.repo.ui |
|
1465 legacyphase = 'phases' in ui.configlist('devel', 'legacy.exchange') |
1469 legacyphase = 'phases' in ui.configlist('devel', 'legacy.exchange') |
1466 hasbinaryphase = 'heads' in pullop.remotebundle2caps.get('phases', ()) |
1470 hasbinaryphase = 'heads' in pullop.remotebundle2caps.get('phases', ()) |
1467 if (not legacyphase and hasbinaryphase): |
1471 if (not legacyphase and hasbinaryphase): |
1468 kwargs['phases'] = True |
1472 kwargs['phases'] = True |
1469 pullop.stepsdone.add('phases') |
1473 pullop.stepsdone.add('phases') |
1470 |
1474 |
|
1475 if 'listkeys' in pullop.remotebundle2caps: |
|
1476 if 'phases' not in pullop.stepsdone: |
|
1477 kwargs['listkeys'] = ['phases'] |
|
1478 |
1471 bookmarksrequested = False |
1479 bookmarksrequested = False |
1472 legacybookmark = 'bookmarks' in ui.configlist('devel', 'legacy.exchange') |
1480 legacybookmark = 'bookmarks' in ui.configlist('devel', 'legacy.exchange') |
1473 hasbinarybook = 'bookmarks' in pullop.remotebundle2caps |
1481 hasbinarybook = 'bookmarks' in pullop.remotebundle2caps |
1474 |
1482 |
1475 if pullop.remotebookmarks is not None: |
1483 if pullop.remotebookmarks is not None: |
1480 and not legacybookmark and hasbinarybook): |
1488 and not legacybookmark and hasbinarybook): |
1481 kwargs['bookmarks'] = True |
1489 kwargs['bookmarks'] = True |
1482 bookmarksrequested = True |
1490 bookmarksrequested = True |
1483 |
1491 |
1484 if 'listkeys' in pullop.remotebundle2caps: |
1492 if 'listkeys' in pullop.remotebundle2caps: |
1485 if 'phases' not in pullop.stepsdone: |
|
1486 kwargs['listkeys'] = ['phases'] |
|
1487 if 'request-bookmarks' not in pullop.stepsdone: |
1493 if 'request-bookmarks' not in pullop.stepsdone: |
1488 # make sure to always includes bookmark data when migrating |
1494 # make sure to always includes bookmark data when migrating |
1489 # `hg incoming --bundle` to using this function. |
1495 # `hg incoming --bundle` to using this function. |
1490 pullop.stepsdone.add('request-bookmarks') |
1496 pullop.stepsdone.add('request-bookmarks') |
1491 kwargs.setdefault('listkeys', []).append('bookmarks') |
1497 kwargs.setdefault('listkeys', []).append('bookmarks') |