changegroup: inline _packellipsischangegroup
authorGregory Szorc <gregory.szorc@gmail.com>
Fri, 03 Aug 2018 14:03:31 -0700
changeset 38910 245c58952298
parent 38909 1af339c22aeb
child 38911 2aa4f06c1e91
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
hgext/narrow/narrowbundle2.py
mercurial/changegroup.py
--- 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)