diff -r a40e2f7fe49d -r 29cfc474c5fd mercurial/changegroup.py --- a/mercurial/changegroup.py Tue Jan 12 21:01:06 2016 -0800 +++ b/mercurial/changegroup.py Tue Jan 12 21:23:45 2016 -0800 @@ -922,7 +922,13 @@ } def supportedversions(repo): - return _packermap.keys() + versions = _packermap.keys() + cg3 = ('treemanifest' in repo.requirements or + repo.ui.configbool('experimental', 'changegroup3') or + repo.ui.configbool('experimental', 'treemanifest')) + if not cg3: + versions.remove('03') + return versions def getbundler(version, repo, bundlecaps=None): assert version in supportedversions(repo)