comparison mercurial/exchange.py @ 35759:c24dad55ac19

bundle2: add support for a 'stream' parameter to 'getbundle' This parameter can be used to request a stream bundle.
author Boris Feld <boris.feld@octobus.net>
date Wed, 17 Jan 2018 16:36:23 +0100
parents 86f9aabed67b
children 1908d360f977
comparison
equal deleted inserted replaced
35758:b996ddf5963d 35759:c24dad55ac19
1745 func(bundler, repo, source, bundlecaps=bundlecaps, b2caps=b2caps, 1745 func(bundler, repo, source, bundlecaps=bundlecaps, b2caps=b2caps,
1746 **pycompat.strkwargs(kwargs)) 1746 **pycompat.strkwargs(kwargs))
1747 1747
1748 return bundler.getchunks() 1748 return bundler.getchunks()
1749 1749
1750 @getbundle2partsgenerator('stream')
1751 def _getbundlestream(bundler, repo, source, bundlecaps=None,
1752 b2caps=None, heads=None, common=None, **kwargs):
1753 if not kwargs.get('stream', False):
1754 return
1755 filecount, bytecount, it = streamclone.generatev2(repo)
1756 requirements = ' '.join(repo.requirements)
1757 part = bundler.newpart('stream', data=it)
1758 part.addparam('bytecount', '%d' % bytecount, mandatory=True)
1759 part.addparam('filecount', '%d' % filecount, mandatory=True)
1760 part.addparam('requirements', requirements, mandatory=True)
1761 part.addparam('version', 'v2', mandatory=True)
1762
1750 @getbundle2partsgenerator('changegroup') 1763 @getbundle2partsgenerator('changegroup')
1751 def _getbundlechangegrouppart(bundler, repo, source, bundlecaps=None, 1764 def _getbundlechangegrouppart(bundler, repo, source, bundlecaps=None,
1752 b2caps=None, heads=None, common=None, **kwargs): 1765 b2caps=None, heads=None, common=None, **kwargs):
1753 """add a changegroup part to the requested bundle""" 1766 """add a changegroup part to the requested bundle"""
1754 cgstream = None 1767 cgstream = None