indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  Currently, the version is an attribute on each class. Passing
  the argument into the constructor gets us one step closer to
  eliminating cg2packer and cg3packer.

REPOSITORY
  rHG Mercurial

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

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
@@ -524,8 +524,8 @@
 
 class cg1packer(object):
     deltaheader = _CHANGEGROUPV1_DELTA_HEADER
-    version = '01'
-    def __init__(self, repo, filematcher, bundlecaps=None):
+
+    def __init__(self, repo, filematcher, version, bundlecaps=None):
         """Given a source repo, construct a bundler.
 
         filematcher is a matcher that matches on files to include in the
@@ -539,6 +539,8 @@
         assert filematcher
         self._filematcher = filematcher
 
+        self.version = version
+
         # Set of capabilities we can use to build the bundle.
         if bundlecaps is None:
             bundlecaps = set()
@@ -1103,11 +1105,10 @@
         return struct.pack(self.deltaheader, node, p1n, p2n, linknode)
 
 class cg2packer(cg1packer):
-    version = '02'
     deltaheader = _CHANGEGROUPV2_DELTA_HEADER
 
-    def __init__(self, repo, filematcher, bundlecaps=None):
-        super(cg2packer, self).__init__(repo, filematcher,
+    def __init__(self, repo, filematcher, version, bundlecaps=None):
+        super(cg2packer, self).__init__(repo, filematcher, version,
                                         bundlecaps=bundlecaps)
 
         if self._reorder is None:
@@ -1160,7 +1161,6 @@
         return struct.pack(self.deltaheader, node, p1n, p2n, basenode, 
linknode)
 
 class cg3packer(cg2packer):
-    version = '03'
     deltaheader = _CHANGEGROUPV3_DELTA_HEADER
 
     def _packmanifests(self, dir, mfnodes, lookuplinknode):
@@ -1180,13 +1180,13 @@
             self.deltaheader, node, p1n, p2n, basenode, linknode, flags)
 
 def _makecg1packer(repo, filematcher, bundlecaps):
-    return cg1packer(repo, filematcher, bundlecaps=bundlecaps)
+    return cg1packer(repo, filematcher, b'01', bundlecaps=bundlecaps)
 
 def _makecg2packer(repo, filematcher, bundlecaps):
-    return cg2packer(repo, filematcher, bundlecaps=bundlecaps)
+    return cg2packer(repo, filematcher, b'02', bundlecaps=bundlecaps)
 
 def _makecg3packer(repo, filematcher, bundlecaps):
-    return cg3packer(repo, filematcher, bundlecaps=bundlecaps)
+    return cg3packer(repo, filematcher, b'03', bundlecaps=bundlecaps)
 
 _packermap = {'01': (_makecg1packer, cg1unpacker),
              # cg2 adds support for exchanging generaldelta



To: indygreg, #hg-reviewers
Cc: mercurial-devel
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to