##// END OF EJS Templates
changegroup: make delta header struct formatters actual structs...
Gregory Szorc -
r38932:271854ad default
parent child Browse files
Show More
@@ -40,9 +40,9 b' from .utils import ('
40 stringutil,
40 stringutil,
41 )
41 )
42
42
43 _CHANGEGROUPV1_DELTA_HEADER = "20s20s20s20s"
43 _CHANGEGROUPV1_DELTA_HEADER = struct.Struct("20s20s20s20s")
44 _CHANGEGROUPV2_DELTA_HEADER = "20s20s20s20s20s"
44 _CHANGEGROUPV2_DELTA_HEADER = struct.Struct("20s20s20s20s20s")
45 _CHANGEGROUPV3_DELTA_HEADER = ">20s20s20s20s20sH"
45 _CHANGEGROUPV3_DELTA_HEADER = struct.Struct(">20s20s20s20s20sH")
46
46
47 LFS_REQUIREMENT = 'lfs'
47 LFS_REQUIREMENT = 'lfs'
48
48
@@ -119,7 +119,7 b' class cg1unpacker(object):'
119 bundlerepo and some debug commands - their use is discouraged.
119 bundlerepo and some debug commands - their use is discouraged.
120 """
120 """
121 deltaheader = _CHANGEGROUPV1_DELTA_HEADER
121 deltaheader = _CHANGEGROUPV1_DELTA_HEADER
122 deltaheadersize = struct.calcsize(deltaheader)
122 deltaheadersize = deltaheader.size
123 version = '01'
123 version = '01'
124 _grouplistcount = 1 # One list of files after the manifests
124 _grouplistcount = 1 # One list of files after the manifests
125
125
@@ -192,7 +192,7 b' class cg1unpacker(object):'
192 if not l:
192 if not l:
193 return {}
193 return {}
194 headerdata = readexactly(self._stream, self.deltaheadersize)
194 headerdata = readexactly(self._stream, self.deltaheadersize)
195 header = struct.unpack(self.deltaheader, headerdata)
195 header = self.deltaheader.unpack(headerdata)
196 delta = readexactly(self._stream, l - self.deltaheadersize)
196 delta = readexactly(self._stream, l - self.deltaheadersize)
197 node, p1, p2, deltabase, cs, flags = self._deltaheader(header, prevnode)
197 node, p1, p2, deltabase, cs, flags = self._deltaheader(header, prevnode)
198 return (node, p1, p2, cs, deltabase, delta, flags)
198 return (node, p1, p2, cs, deltabase, delta, flags)
@@ -451,7 +451,7 b' class cg2unpacker(cg1unpacker):'
451 remain the same.
451 remain the same.
452 """
452 """
453 deltaheader = _CHANGEGROUPV2_DELTA_HEADER
453 deltaheader = _CHANGEGROUPV2_DELTA_HEADER
454 deltaheadersize = struct.calcsize(deltaheader)
454 deltaheadersize = deltaheader.size
455 version = '02'
455 version = '02'
456
456
457 def _deltaheader(self, headertuple, prevnode):
457 def _deltaheader(self, headertuple, prevnode):
@@ -467,7 +467,7 b' class cg3unpacker(cg2unpacker):'
467 separating manifests and files.
467 separating manifests and files.
468 """
468 """
469 deltaheader = _CHANGEGROUPV3_DELTA_HEADER
469 deltaheader = _CHANGEGROUPV3_DELTA_HEADER
470 deltaheadersize = struct.calcsize(deltaheader)
470 deltaheadersize = deltaheader.size
471 version = '03'
471 version = '03'
472 _grouplistcount = 2 # One list of manifests and one list of files
472 _grouplistcount = 2 # One list of manifests and one list of files
473
473
@@ -1099,7 +1099,7 b' class cg1packer(object):'
1099 def builddeltaheader(self, node, p1n, p2n, basenode, linknode, flags):
1099 def builddeltaheader(self, node, p1n, p2n, basenode, linknode, flags):
1100 # do nothing with basenode, it is implicitly the previous one in HG10
1100 # do nothing with basenode, it is implicitly the previous one in HG10
1101 # do nothing with flags, it is implicitly 0 for cg1 and cg2
1101 # do nothing with flags, it is implicitly 0 for cg1 and cg2
1102 return struct.pack(self.deltaheader, node, p1n, p2n, linknode)
1102 return self.deltaheader.pack(node, p1n, p2n, linknode)
1103
1103
1104 class cg2packer(cg1packer):
1104 class cg2packer(cg1packer):
1105 deltaheader = _CHANGEGROUPV2_DELTA_HEADER
1105 deltaheader = _CHANGEGROUPV2_DELTA_HEADER
@@ -1155,7 +1155,7 b' class cg2packer(cg1packer):'
1155
1155
1156 def builddeltaheader(self, node, p1n, p2n, basenode, linknode, flags):
1156 def builddeltaheader(self, node, p1n, p2n, basenode, linknode, flags):
1157 # Do nothing with flags, it is implicitly 0 in cg1 and cg2
1157 # Do nothing with flags, it is implicitly 0 in cg1 and cg2
1158 return struct.pack(self.deltaheader, node, p1n, p2n, basenode, linknode)
1158 return self.deltaheader.pack(node, p1n, p2n, basenode, linknode)
1159
1159
1160 class cg3packer(cg2packer):
1160 class cg3packer(cg2packer):
1161 deltaheader = _CHANGEGROUPV3_DELTA_HEADER
1161 deltaheader = _CHANGEGROUPV3_DELTA_HEADER
@@ -1173,8 +1173,7 b' class cg3packer(cg2packer):'
1173 return self.close()
1173 return self.close()
1174
1174
1175 def builddeltaheader(self, node, p1n, p2n, basenode, linknode, flags):
1175 def builddeltaheader(self, node, p1n, p2n, basenode, linknode, flags):
1176 return struct.pack(
1176 return self.deltaheader.pack(node, p1n, p2n, basenode, linknode, flags)
1177 self.deltaheader, node, p1n, p2n, basenode, linknode, flags)
1178
1177
1179 def _makecg1packer(repo, filematcher, bundlecaps):
1178 def _makecg1packer(repo, filematcher, bundlecaps):
1180 return cg1packer(repo, filematcher, b'01', bundlecaps=bundlecaps)
1179 return cg1packer(repo, filematcher, b'01', bundlecaps=bundlecaps)
General Comments 0
You need to be logged in to leave comments. Login now