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