comparison mercurial/exchange.py @ 23179:6bb9533fa8fa

getbundle: send highest changegroup format supported by both side When using bundle2, we find the common subset of supported changegroup-packers and we pick the max of them. This allow to use generaldelta aware changegroup through bundle2.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Fri, 17 Oct 2014 14:59:10 +0200
parents 706547a14b8b
children 116b80d63815
comparison
equal deleted inserted replaced
23178:5e895ed5e955 23179:6bb9533fa8fa
1184 b2caps=None, heads=None, common=None, **kwargs): 1184 b2caps=None, heads=None, common=None, **kwargs):
1185 """add a changegroup part to the requested bundle""" 1185 """add a changegroup part to the requested bundle"""
1186 cg = None 1186 cg = None
1187 if kwargs.get('cg', True): 1187 if kwargs.get('cg', True):
1188 # build changegroup bundle here. 1188 # build changegroup bundle here.
1189 cg = changegroup.getchangegroupraw(repo, source, heads=heads, 1189 version = None
1190 common=common, bundlecaps=bundlecaps) 1190 cgversions = b2caps.get('b2x:changegroup')
1191 if cgversions is None:
1192 cg = changegroup.getchangegroupraw(repo, source, heads=heads,
1193 common=common,
1194 bundlecaps=bundlecaps)
1195 else:
1196 cgversions = [v for v in cgversions if v in changegroup.packermap]
1197 if not cgversions:
1198 raise ValueError(_('no common changegroup version'))
1199 version = max(cgversions)
1200 cg = changegroup.getchangegroupraw(repo, source, heads=heads,
1201 common=common,
1202 bundlecaps=bundlecaps,
1203 version=version)
1191 1204
1192 if cg: 1205 if cg:
1193 bundler.newpart('b2x:changegroup', data=cg) 1206 part = bundler.newpart('b2x:changegroup', data=cg)
1207 if version is not None:
1208 part.addparam('version', version)
1194 1209
1195 @getbundle2partsgenerator('listkeys') 1210 @getbundle2partsgenerator('listkeys')
1196 def _getbundlelistkeysparts(bundler, repo, source, bundlecaps=None, 1211 def _getbundlelistkeysparts(bundler, repo, source, bundlecaps=None,
1197 b2caps=None, **kwargs): 1212 b2caps=None, **kwargs):
1198 """add parts containing listkeys namespaces to the requested bundle""" 1213 """add parts containing listkeys namespaces to the requested bundle"""