mercurial/changegroup.py
branchstable
changeset 27928 c0f11347b107
parent 27920 da5f23362517
child 27929 3b2ac2115464
equal deleted inserted replaced
27927:0de4dfc9af0c 27928:c0f11347b107
   945              # cg3 adds support for exchanging revlog flags and treemanifests
   945              # cg3 adds support for exchanging revlog flags and treemanifests
   946              '03': (cg3packer, cg3unpacker),
   946              '03': (cg3packer, cg3unpacker),
   947 }
   947 }
   948 
   948 
   949 def supportedversions(repo):
   949 def supportedversions(repo):
   950     versions = _packermap.keys()
   950     versions = set(_packermap.keys())
   951     cg3 = ('treemanifest' in repo.requirements or
   951     if ('treemanifest' in repo.requirements or
   952            repo.ui.configbool('experimental', 'changegroup3') or
   952         repo.ui.configbool('experimental', 'treemanifest')):
   953            repo.ui.configbool('experimental', 'treemanifest'))
   953         # Versions 01 and 02 support only flat manifests and it's just too
   954     if not cg3:
   954         # expensive to convert between the flat manifest and tree manifest on
   955         versions.remove('03')
   955         # the fly. Since tree manifests are hashed differently, all of history
       
   956         # would have to be converted. Instead, we simply don't even pretend to
       
   957         # support versions 01 and 02.
       
   958         versions.discard('01')
       
   959         versions.discard('02')
       
   960     elif not repo.ui.configbool('experimental', 'changegroup3'):
       
   961         versions.discard('03')
   956     return versions
   962     return versions
   957 
   963 
   958 def getbundler(version, repo, bundlecaps=None):
   964 def getbundler(version, repo, bundlecaps=None):
   959     assert version in supportedversions(repo)
   965     assert version in supportedversions(repo)
   960     return _packermap[version][0](repo, bundlecaps)
   966     return _packermap[version][0](repo, bundlecaps)