D4089: changegroup: pass ellipsis roots into cgpacker constructor

2018-08-06 Thread indygreg (Gregory Szorc)
This revision was automatically updated to reflect the committed changes.
Closed by commit rHGad4c4cc9a5ac: changegroup: pass ellipsis roots into 
cgpacker constructor (authored by indygreg, committed by ).

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D4089?vs=9851=9965

REVISION DETAIL
  https://phab.mercurial-scm.org/D4089

AFFECTED FILES
  mercurial/changegroup.py

CHANGE DETAILS

diff --git a/mercurial/changegroup.py b/mercurial/changegroup.py
--- a/mercurial/changegroup.py
+++ b/mercurial/changegroup.py
@@ -522,7 +522,8 @@
 class cgpacker(object):
 def __init__(self, repo, filematcher, version, allowreorder,
  useprevdelta, builddeltaheader, manifestsend,
- sendtreemanifests, bundlecaps=None, shallow=False):
+ sendtreemanifests, bundlecaps=None, shallow=False,
+ ellipsisroots=None):
 """Given a source repo, construct a bundler.
 
 filematcher is a matcher that matches on files to include in the
@@ -565,6 +566,9 @@
 self._bundlecaps = bundlecaps
 self._isshallow = shallow
 
+# Maps ellipsis revs to their roots at the changelog level.
+self._precomputedellipsis = ellipsisroots
+
 # experimental config: bundle.reorder
 reorder = repo.ui.config('bundle', 'reorder')
 if reorder == 'auto':
@@ -740,7 +744,7 @@
 # we skip some manifest nodes that we should otherwise
 # have sent.
 if (x in self._full_nodes
-or cl.rev(x) in self._precomputed_ellipsis):
+or cl.rev(x) in self._precomputedellipsis):
 n = c[0]
 # Record the first changeset introducing this manifest
 # version.
@@ -1086,10 +1090,10 @@
 
 # At this point, a node can either be one we should skip or an
 # ellipsis. If it's not an ellipsis, bail immediately.
-if linkrev not in self._precomputed_ellipsis:
+if linkrev not in self._precomputedellipsis:
 return
 
-linkparents = self._precomputed_ellipsis[linkrev]
+linkparents = self._precomputedellipsis[linkrev]
 def local(clrev):
 """Turn a changelog revnum into a local revnum.
 
@@ -1133,8 +1137,8 @@
 elif p in self._full_nodes:
 walk.extend([pp for pp in 
self._repo.changelog.parentrevs(p)
 if pp != nullrev])
-elif p in self._precomputed_ellipsis:
-walk.extend([pp for pp in self._precomputed_ellipsis[p]
+elif p in self._precomputedellipsis:
+walk.extend([pp for pp in self._precomputedellipsis[p]
 if pp != nullrev])
 else:
 # In this case, we've got an ellipsis with parents
@@ -1188,7 +1192,8 @@
 deltachunks=(diffheader, data),
 )
 
-def _makecg1packer(repo, filematcher, bundlecaps, shallow=False):
+def _makecg1packer(repo, filematcher, bundlecaps, shallow=False,
+   ellipsisroots=None):
 builddeltaheader = lambda d: _CHANGEGROUPV1_DELTA_HEADER.pack(
 d.node, d.p1node, d.p2node, d.linknode)
 
@@ -1199,9 +1204,11 @@
 manifestsend=b'',
 sendtreemanifests=False,
 bundlecaps=bundlecaps,
-shallow=shallow)
+shallow=shallow,
+ellipsisroots=ellipsisroots)
 
-def _makecg2packer(repo, filematcher, bundlecaps, shallow=False):
+def _makecg2packer(repo, filematcher, bundlecaps, shallow=False,
+   ellipsisroots=None):
 builddeltaheader = lambda d: _CHANGEGROUPV2_DELTA_HEADER.pack(
 d.node, d.p1node, d.p2node, d.basenode, d.linknode)
 
@@ -1215,9 +1222,11 @@
 manifestsend=b'',
 sendtreemanifests=False,
 bundlecaps=bundlecaps,
-shallow=shallow)
+shallow=shallow,
+ellipsisroots=ellipsisroots)
 
-def _makecg3packer(repo, filematcher, bundlecaps, shallow=False):
+def _makecg3packer(repo, filematcher, bundlecaps, shallow=False,
+   ellipsisroots=None):
 builddeltaheader = lambda d: _CHANGEGROUPV3_DELTA_HEADER.pack(
 d.node, d.p1node, d.p2node, d.basenode, d.linknode, d.flags)
 
@@ -1228,7 +1237,8 @@
 manifestsend=closechunk(),
 sendtreemanifests=True,
 bundlecaps=bundlecaps,
-shallow=shallow)
+shallow=shallow,
+ellipsisroots=ellipsisroots)
 
 _packermap = {'01': (_makecg1packer, cg1unpacker),
  # cg2 adds support for exchanging generaldelta
@@ -1289,7 +1299,7 @@
 return min(versions)
 
 def getbundler(version, repo, bundlecaps=None, 

D4089: changegroup: pass ellipsis roots into cgpacker constructor

2018-08-03 Thread indygreg (Gregory Szorc)
indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  And rename the internal variable to conform with naming conventions.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D4089

AFFECTED FILES
  mercurial/changegroup.py

CHANGE DETAILS

diff --git a/mercurial/changegroup.py b/mercurial/changegroup.py
--- a/mercurial/changegroup.py
+++ b/mercurial/changegroup.py
@@ -525,7 +525,8 @@
 class cgpacker(object):
 def __init__(self, repo, filematcher, version, allowreorder,
  useprevdelta, builddeltaheader, manifestsend,
- sendtreemanifests, bundlecaps=None, shallow=False):
+ sendtreemanifests, bundlecaps=None, shallow=False,
+ ellipsisroots=None):
 """Given a source repo, construct a bundler.
 
 filematcher is a matcher that matches on files to include in the
@@ -568,6 +569,9 @@
 self._bundlecaps = bundlecaps
 self._isshallow = shallow
 
+# Maps ellipsis revs to their roots at the changelog level.
+self._precomputedellipsis = ellipsisroots
+
 # experimental config: bundle.reorder
 reorder = repo.ui.config('bundle', 'reorder')
 if reorder == 'auto':
@@ -743,7 +747,7 @@
 # we skip some manifest nodes that we should otherwise
 # have sent.
 if (x in self._full_nodes
-or cl.rev(x) in self._precomputed_ellipsis):
+or cl.rev(x) in self._precomputedellipsis):
 n = c[0]
 # Record the first changeset introducing this manifest
 # version.
@@ -1089,10 +1093,10 @@
 
 # At this point, a node can either be one we should skip or an
 # ellipsis. If it's not an ellipsis, bail immediately.
-if linkrev not in self._precomputed_ellipsis:
+if linkrev not in self._precomputedellipsis:
 return
 
-linkparents = self._precomputed_ellipsis[linkrev]
+linkparents = self._precomputedellipsis[linkrev]
 def local(clrev):
 """Turn a changelog revnum into a local revnum.
 
@@ -1136,8 +1140,8 @@
 elif p in self._full_nodes:
 walk.extend([pp for pp in 
self._repo.changelog.parentrevs(p)
 if pp != nullrev])
-elif p in self._precomputed_ellipsis:
-walk.extend([pp for pp in self._precomputed_ellipsis[p]
+elif p in self._precomputedellipsis:
+walk.extend([pp for pp in self._precomputedellipsis[p]
 if pp != nullrev])
 else:
 # In this case, we've got an ellipsis with parents
@@ -1191,7 +1195,8 @@
 deltachunks=(diffheader, data),
 )
 
-def _makecg1packer(repo, filematcher, bundlecaps, shallow=False):
+def _makecg1packer(repo, filematcher, bundlecaps, shallow=False,
+   ellipsisroots=None):
 builddeltaheader = lambda d: _CHANGEGROUPV1_DELTA_HEADER.pack(
 d.node, d.p1node, d.p2node, d.linknode)
 
@@ -1202,9 +1207,11 @@
 manifestsend=b'',
 sendtreemanifests=False,
 bundlecaps=bundlecaps,
-shallow=shallow)
+shallow=shallow,
+ellipsisroots=ellipsisroots)
 
-def _makecg2packer(repo, filematcher, bundlecaps, shallow=False):
+def _makecg2packer(repo, filematcher, bundlecaps, shallow=False,
+   ellipsisroots=None):
 builddeltaheader = lambda d: _CHANGEGROUPV2_DELTA_HEADER.pack(
 d.node, d.p1node, d.p2node, d.basenode, d.linknode)
 
@@ -1218,9 +1225,11 @@
 manifestsend=b'',
 sendtreemanifests=False,
 bundlecaps=bundlecaps,
-shallow=shallow)
+shallow=shallow,
+ellipsisroots=ellipsisroots)
 
-def _makecg3packer(repo, filematcher, bundlecaps, shallow=False):
+def _makecg3packer(repo, filematcher, bundlecaps, shallow=False,
+   ellipsisroots=None):
 builddeltaheader = lambda d: _CHANGEGROUPV3_DELTA_HEADER.pack(
 d.node, d.p1node, d.p2node, d.basenode, d.linknode, d.flags)
 
@@ -1231,7 +1240,8 @@
 manifestsend=closechunk(),
 sendtreemanifests=True,
 bundlecaps=bundlecaps,
-shallow=shallow)
+shallow=shallow,
+ellipsisroots=ellipsisroots)
 
 _packermap = {'01': (_makecg1packer, cg1unpacker),
  # cg2 adds support for exchanging generaldelta
@@ -1292,7 +1302,7 @@
 return min(versions)
 
 def getbundler(version, repo, bundlecaps=None, filematcher=None,
-   shallow=False):
+   shallow=False,