mercurial/exchange.py
changeset 46711 a41565bef69f
parent 46478 db9e33beb0fb
child 46713 bc2519513ae0
equal deleted inserted replaced
46710:4cd214c9948d 46711:a41565bef69f
  2247         return any(cap.startswith(b'HG2') for cap in bundlecaps)
  2247         return any(cap.startswith(b'HG2') for cap in bundlecaps)
  2248     return False
  2248     return False
  2249 
  2249 
  2250 
  2250 
  2251 def getbundlechunks(
  2251 def getbundlechunks(
  2252     repo, source, heads=None, common=None, bundlecaps=None, **kwargs
  2252     repo,
       
  2253     source,
       
  2254     heads=None,
       
  2255     common=None,
       
  2256     bundlecaps=None,
       
  2257     remote_sidedata=None,
       
  2258     **kwargs
  2253 ):
  2259 ):
  2254     """Return chunks constituting a bundle's raw data.
  2260     """Return chunks constituting a bundle's raw data.
  2255 
  2261 
  2256     Could be a bundle HG10 or a bundle HG20 depending on bundlecaps
  2262     Could be a bundle HG10 or a bundle HG20 depending on bundlecaps
  2257     passed.
  2263     passed.
  2277         outgoing = _computeoutgoing(repo, heads, common)
  2283         outgoing = _computeoutgoing(repo, heads, common)
  2278         info[b'bundleversion'] = 1
  2284         info[b'bundleversion'] = 1
  2279         return (
  2285         return (
  2280             info,
  2286             info,
  2281             changegroup.makestream(
  2287             changegroup.makestream(
  2282                 repo, outgoing, b'01', source, bundlecaps=bundlecaps
  2288                 repo,
       
  2289                 outgoing,
       
  2290                 b'01',
       
  2291                 source,
       
  2292                 bundlecaps=bundlecaps,
       
  2293                 remote_sidedata=remote_sidedata,
  2283             ),
  2294             ),
  2284         )
  2295         )
  2285 
  2296 
  2286     # bundle20 case
  2297     # bundle20 case
  2287     info[b'bundleversion'] = 2
  2298     info[b'bundleversion'] = 2
  2301             bundler,
  2312             bundler,
  2302             repo,
  2313             repo,
  2303             source,
  2314             source,
  2304             bundlecaps=bundlecaps,
  2315             bundlecaps=bundlecaps,
  2305             b2caps=b2caps,
  2316             b2caps=b2caps,
       
  2317             remote_sidedata=remote_sidedata,
  2306             **pycompat.strkwargs(kwargs)
  2318             **pycompat.strkwargs(kwargs)
  2307         )
  2319         )
  2308 
  2320 
  2309     info[b'prefercompressed'] = bundler.prefercompressed
  2321     info[b'prefercompressed'] = bundler.prefercompressed
  2310 
  2322 
  2323     source,
  2335     source,
  2324     bundlecaps=None,
  2336     bundlecaps=None,
  2325     b2caps=None,
  2337     b2caps=None,
  2326     heads=None,
  2338     heads=None,
  2327     common=None,
  2339     common=None,
       
  2340     remote_sidedata=None,
  2328     **kwargs
  2341     **kwargs
  2329 ):
  2342 ):
  2330     """add a changegroup part to the requested bundle"""
  2343     """add a changegroup part to the requested bundle"""
  2331     if not kwargs.get('cg', True) or not b2caps:
  2344     if not kwargs.get('cg', True) or not b2caps:
  2332         return
  2345         return
  2353         matcher = narrowspec.match(repo.root, include=include, exclude=exclude)
  2366         matcher = narrowspec.match(repo.root, include=include, exclude=exclude)
  2354     else:
  2367     else:
  2355         matcher = None
  2368         matcher = None
  2356 
  2369 
  2357     cgstream = changegroup.makestream(
  2370     cgstream = changegroup.makestream(
  2358         repo, outgoing, version, source, bundlecaps=bundlecaps, matcher=matcher
  2371         repo,
       
  2372         outgoing,
       
  2373         version,
       
  2374         source,
       
  2375         bundlecaps=bundlecaps,
       
  2376         matcher=matcher,
       
  2377         remote_sidedata=remote_sidedata,
  2359     )
  2378     )
  2360 
  2379 
  2361     part = bundler.newpart(b'changegroup', data=cgstream)
  2380     part = bundler.newpart(b'changegroup', data=cgstream)
  2362     if cgversions:
  2381     if cgversions:
  2363         part.addparam(b'version', version)
  2382         part.addparam(b'version', version)