Show More
@@ -12,10 +12,8 b' from mercurial import (' | |||
|
12 | 12 | changegroup, |
|
13 | 13 | error, |
|
14 | 14 | extensions, |
|
15 | mdiff, | |
|
16 | 15 | node, |
|
17 | 16 | pycompat, |
|
18 | revlog, | |
|
19 | 17 | util, |
|
20 | 18 | ) |
|
21 | 19 | |
@@ -54,21 +52,6 b' def setup():' | |||
|
54 | 52 | extensions.wrapfunction( |
|
55 | 53 | changegroup.cg1packer, 'generatefiles', generatefiles) |
|
56 | 54 | |
|
57 | def ellipsisdata(packer, rev, revlog_, p1, p2, data, linknode): | |
|
58 | n = revlog_.node(rev) | |
|
59 | p1n, p2n = revlog_.node(p1), revlog_.node(p2) | |
|
60 | flags = revlog_.flags(rev) | |
|
61 | flags |= revlog.REVIDX_ELLIPSIS | |
|
62 | meta = packer.builddeltaheader( | |
|
63 | n, p1n, p2n, node.nullid, linknode, flags) | |
|
64 | # TODO: try and actually send deltas for ellipsis data blocks | |
|
65 | diffheader = mdiff.trivialdiffheader(len(data)) | |
|
66 | l = len(meta) + len(diffheader) + len(data) | |
|
67 | return ''.join((changegroup.chunkheader(l), | |
|
68 | meta, | |
|
69 | diffheader, | |
|
70 | data)) | |
|
71 | ||
|
72 | 55 | def close(orig, self): |
|
73 | 56 | getattr(self, 'clrev_to_localrev', {}).clear() |
|
74 | 57 | if getattr(self, 'next_clrev_to_localrev', {}): |
@@ -330,7 +313,7 b' def setup():' | |||
|
330 | 313 | else: |
|
331 | 314 | p1, p2 = sorted(local(p) for p in linkparents) |
|
332 | 315 | n = revlog.node(rev) |
|
333 | yield ellipsisdata( | |
|
316 | yield changegroup.ellipsisdata( | |
|
334 | 317 | self, rev, revlog, p1, p2, revlog.revision(n), linknode) |
|
335 | 318 | extensions.wrapfunction(changegroup.cg1packer, 'revchunk', revchunk) |
|
336 | 319 |
@@ -14,6 +14,7 b' import weakref' | |||
|
14 | 14 | from .i18n import _ |
|
15 | 15 | from .node import ( |
|
16 | 16 | hex, |
|
17 | nullid, | |
|
17 | 18 | nullrev, |
|
18 | 19 | short, |
|
19 | 20 | ) |
@@ -27,6 +28,7 b' from . import (' | |||
|
27 | 28 | phases, |
|
28 | 29 | pycompat, |
|
29 | 30 | repository, |
|
31 | revlog, | |
|
30 | 32 | util, |
|
31 | 33 | ) |
|
32 | 34 | |
@@ -492,6 +494,21 b' class headerlessfixup(object):' | |||
|
492 | 494 | return d |
|
493 | 495 | return readexactly(self._fh, n) |
|
494 | 496 | |
|
497 | def ellipsisdata(packer, rev, revlog_, p1, p2, data, linknode): | |
|
498 | n = revlog_.node(rev) | |
|
499 | p1n, p2n = revlog_.node(p1), revlog_.node(p2) | |
|
500 | flags = revlog_.flags(rev) | |
|
501 | flags |= revlog.REVIDX_ELLIPSIS | |
|
502 | meta = packer.builddeltaheader( | |
|
503 | n, p1n, p2n, nullid, linknode, flags) | |
|
504 | # TODO: try and actually send deltas for ellipsis data blocks | |
|
505 | diffheader = mdiff.trivialdiffheader(len(data)) | |
|
506 | l = len(meta) + len(diffheader) + len(data) | |
|
507 | return ''.join((chunkheader(l), | |
|
508 | meta, | |
|
509 | diffheader, | |
|
510 | data)) | |
|
511 | ||
|
495 | 512 | class cg1packer(object): |
|
496 | 513 | deltaheader = _CHANGEGROUPV1_DELTA_HEADER |
|
497 | 514 | version = '01' |
General Comments 0
You need to be logged in to leave comments.
Login now