diff -r 443848eece18 -r a40e2f7fe49d mercurial/exchange.py --- a/mercurial/exchange.py Wed Jan 13 15:47:37 2016 -0600 +++ b/mercurial/exchange.py Tue Jan 12 21:01:06 2016 -0800 @@ -653,7 +653,8 @@ cg = changegroup.getlocalchangegroupraw(pushop.repo, 'push', pushop.outgoing) else: - cgversions = [v for v in cgversions if v in changegroup.packermap] + cgversions = [v for v in cgversions + if v in changegroup.supportedversions(pushop.repo)] if not cgversions: raise ValueError(_('no common changegroup version')) version = max(cgversions) @@ -1505,7 +1506,8 @@ cgversions = b2caps.get('changegroup') getcgkwargs = {} if cgversions: # 3.1 and 3.2 ship with an empty value - cgversions = [v for v in cgversions if v in changegroup.packermap] + cgversions = [v for v in cgversions + if v in changegroup.supportedversions(repo)] if not cgversions: raise ValueError(_('no common changegroup version')) version = getcgkwargs['version'] = max(cgversions)