Mercurial > hg
changeset 38910:245c58952298
changegroup: inline _packellipsischangegroup
It now does nothing special. The logic is simple enough to inline
in the 2 callers in narrow that need it.
The changegroup generation APIs could probably be a bit simpler.
But that's for another time.
Differential Revision: https://phab.mercurial-scm.org/D4092
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Fri, 03 Aug 2018 14:03:31 -0700 |
parents | 1af339c22aeb |
children | 2aa4f06c1e91 |
files | hgext/narrow/narrowbundle2.py mercurial/changegroup.py |
diffstat | 2 files changed, 18 insertions(+), 23 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/narrow/narrowbundle2.py Fri Aug 03 13:43:55 2018 -0700 +++ b/hgext/narrow/narrowbundle2.py Fri Aug 03 14:03:31 2018 -0700 @@ -116,10 +116,15 @@ newvisit, newfull, newellipsis = exchange._computeellipsis( repo, set(), common, known, newmatch) if newvisit: - cg = changegroup._packellipsischangegroup( - repo, common, newmatch, newfull, newellipsis, - newvisit, depth, source, version) - part = bundler.newpart('changegroup', data=cg) + packer = changegroup.getbundler(version, repo, + filematcher=newmatch, + ellipses=True, + shallow=depth is not None, + ellipsisroots=newellipsis, + fullnodes=newfull) + cgdata = packer.generate(common, newvisit, False, source) + + part = bundler.newpart('changegroup', data=cgdata) part.addparam('version', version) if 'treemanifest' in repo.requirements: part.addparam('treemanifest', '1') @@ -129,10 +134,15 @@ repo.ui.debug('Found %d relevant revs\n' % len(relevant_nodes)) if visitnodes: - cg = changegroup._packellipsischangegroup( - repo, common, newmatch, relevant_nodes, ellipsisroots, - visitnodes, depth, source, version) - part = bundler.newpart('changegroup', data=cg) + packer = changegroup.getbundler(version, repo, + filematcher=newmatch, + ellipses=True, + shallow=depth is not None, + ellipsisroots=ellipsisroots, + fullnodes=relevant_nodes) + cgdata = packer.generate(common, visitnodes, False, source) + + part = bundler.newpart('changegroup', data=cgdata) part.addparam('version', version) if 'treemanifest' in repo.requirements: part.addparam('treemanifest', '1')
--- a/mercurial/changegroup.py Fri Aug 03 13:43:55 2018 -0700 +++ b/mercurial/changegroup.py Fri Aug 03 14:03:31 2018 -0700 @@ -1418,18 +1418,3 @@ (f, hex(n))) return revisions, files - -def _packellipsischangegroup(repo, common, match, relevant_nodes, - ellipsisroots, visitnodes, depth, source, version): - # We wrap cg1packer.revchunk, using a side channel to pass - # relevant_nodes into that area. Then if linknode isn't in the - # set, we know we have an ellipsis node and we should defer - # sending that node's data. We override close() to detect - # pending ellipsis nodes and flush them. - packer = getbundler(version, repo, filematcher=match, - ellipses=True, - shallow=depth is not None, - ellipsisroots=ellipsisroots, - fullnodes=relevant_nodes) - - return packer.generate(common, visitnodes, False, source)