##// END OF EJS Templates
changegroup: move ellipsisdata() from narrow...
Gregory Szorc -
r38919:ee1ea96c default
parent child Browse files
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