##// END OF EJS Templates
changegroup: fix deltachunk API to be consistent from one class to another...
marmoute -
r48131:3f00665b default
parent child Browse files
Show More
@@ -225,7 +225,17 b' def addchangegroupfiles('
225
225
226 chain = None
226 chain = None
227 while True:
227 while True:
228 # returns: (node, p1, p2, cs, deltabase, delta, flags) or None
228 # returns: None or (
229 # node,
230 # p1,
231 # p2,
232 # cs,
233 # deltabase,
234 # delta,
235 # flags,
236 # sidedata,
237 # proto_flags
238 # )
229 revisiondata = source.deltachunk(chain)
239 revisiondata = source.deltachunk(chain)
230 if not revisiondata:
240 if not revisiondata:
231 break
241 break
@@ -263,7 +273,7 b' def addchangegroupfiles('
263 prefetchfiles = []
273 prefetchfiles = []
264 for f, node in queue:
274 for f, node in queue:
265 revisiondata = revisiondatas[(f, node)]
275 revisiondata = revisiondatas[(f, node)]
266 # revisiondata: (node, p1, p2, cs, deltabase, delta, flags)
276 # revisiondata: (node, p1, p2, cs, deltabase, delta, flags, sdata, pfl)
267 dependents = [revisiondata[1], revisiondata[2], revisiondata[4]]
277 dependents = [revisiondata[1], revisiondata[2], revisiondata[4]]
268
278
269 for dependent in dependents:
279 for dependent in dependents:
@@ -287,8 +297,18 b' def addchangegroupfiles('
287 fl = repo.file(f)
297 fl = repo.file(f)
288
298
289 revisiondata = revisiondatas[(f, node)]
299 revisiondata = revisiondatas[(f, node)]
290 # revisiondata: (node, p1, p2, cs, deltabase, delta, flags)
300 # revisiondata: (node, p1, p2, cs, deltabase, delta, flags, sdata, pfl)
291 node, p1, p2, linknode, deltabase, delta, flags, sidedata = revisiondata
301 (
302 node,
303 p1,
304 p2,
305 linknode,
306 deltabase,
307 delta,
308 flags,
309 sidedata,
310 proto_flags,
311 ) = revisiondata
292
312
293 if not available(f, node, f, deltabase):
313 if not available(f, node, f, deltabase):
294 continue
314 continue
@@ -199,6 +199,7 b' class cg1unpacker(object):'
199 return node, p1, p2, deltabase, cs, flags, protocol_flags
199 return node, p1, p2, deltabase, cs, flags, protocol_flags
200
200
201 def deltachunk(self, prevnode):
201 def deltachunk(self, prevnode):
202 # Chunkdata: (node, p1, p2, cs, deltabase, delta, flags, sidedata, proto_flags)
202 l = self._chunklength()
203 l = self._chunklength()
203 if not l:
204 if not l:
204 return {}
205 return {}
@@ -207,7 +208,7 b' class cg1unpacker(object):'
207 delta = readexactly(self._stream, l - self.deltaheadersize)
208 delta = readexactly(self._stream, l - self.deltaheadersize)
208 header = self._deltaheader(header, prevnode)
209 header = self._deltaheader(header, prevnode)
209 node, p1, p2, deltabase, cs, flags, protocol_flags = header
210 node, p1, p2, deltabase, cs, flags, protocol_flags = header
210 return node, p1, p2, cs, deltabase, delta, flags, protocol_flags
211 return node, p1, p2, cs, deltabase, delta, flags, {}, protocol_flags
211
212
212 def getchunks(self):
213 def getchunks(self):
213 """returns all the chunks contains in the bundle
214 """returns all the chunks contains in the bundle
@@ -583,8 +584,8 b' class cg1unpacker(object):'
583 """
584 """
584 chain = None
585 chain = None
585 for chunkdata in iter(lambda: self.deltachunk(chain), {}):
586 for chunkdata in iter(lambda: self.deltachunk(chain), {}):
586 # Chunkdata: (node, p1, p2, cs, deltabase, delta, flags, sidedata)
587 # Chunkdata: (node, p1, p2, cs, deltabase, delta, flags, sidedata, proto_flags)
587 yield chunkdata
588 yield chunkdata[:8]
588 chain = chunkdata[0]
589 chain = chunkdata[0]
589
590
590
591
@@ -659,14 +660,35 b' class cg4unpacker(cg3unpacker):'
659 if not res:
660 if not res:
660 return res
661 return res
661
662
662 (node, p1, p2, cs, deltabase, delta, flags, protocol_flags) = res
663 (
664 node,
665 p1,
666 p2,
667 cs,
668 deltabase,
669 delta,
670 flags,
671 sidedata,
672 protocol_flags,
673 ) = res
674 assert not sidedata
663
675
664 sidedata = {}
676 sidedata = {}
665 if protocol_flags & storageutil.CG_FLAG_SIDEDATA:
677 if protocol_flags & storageutil.CG_FLAG_SIDEDATA:
666 sidedata_raw = getchunk(self._stream)
678 sidedata_raw = getchunk(self._stream)
667 sidedata = sidedatamod.deserialize_sidedata(sidedata_raw)
679 sidedata = sidedatamod.deserialize_sidedata(sidedata_raw)
668
680
669 return node, p1, p2, cs, deltabase, delta, flags, sidedata
681 return (
682 node,
683 p1,
684 p2,
685 cs,
686 deltabase,
687 delta,
688 flags,
689 sidedata,
690 protocol_flags,
691 )
670
692
671
693
672 class headerlessfixup(object):
694 class headerlessfixup(object):
General Comments 0
You need to be logged in to leave comments. Login now