comparison mercurial/unionrepo.py @ 47249:130c9f7ed914

revlog: add a "data compression mode" entry in the index tuple That will make it possible to keep track of compression information in the revlog index, opening the way to more efficient revision restoration (in native code, but the python usage is already defeating performance work). We start with adding a new entry to the index tuple, using a value matching the current behavior. We will introduce storage and other value in later changesets. Differential Revision: https://phab.mercurial-scm.org/D10646
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Mon, 03 May 2021 18:19:16 +0200
parents 8d3c2f9d4af7
children 2b69555e4875
comparison
equal deleted inserted replaced
47248:013c645dd28c 47249:130c9f7ed914
27 mdiff, 27 mdiff,
28 pathutil, 28 pathutil,
29 revlog, 29 revlog,
30 util, 30 util,
31 vfs as vfsmod, 31 vfs as vfsmod,
32 )
33
34 from .revlogutils import (
35 constants as revlog_constants,
32 ) 36 )
33 37
34 38
35 class unionrevlog(revlog.revlog): 39 class unionrevlog(revlog.revlog):
36 def __init__(self, opener, radix, revlog2, linkmapper): 40 def __init__(self, opener, radix, revlog2, linkmapper):
63 p1rev, 67 p1rev,
64 p2rev, 68 p2rev,
65 node, 69 node,
66 _sdo, 70 _sdo,
67 _sds, 71 _sds,
72 _dcm,
68 ) = rev 73 ) = rev
69 flags = _start & 0xFFFF 74 flags = _start & 0xFFFF
70 75
71 if linkmapper is None: # link is to same revlog 76 if linkmapper is None: # link is to same revlog
72 assert linkrev == rev2 # we never link back 77 assert linkrev == rev2 # we never link back
97 self.rev(p1node), 102 self.rev(p1node),
98 self.rev(p2node), 103 self.rev(p2node),
99 node, 104 node,
100 0, # sidedata offset 105 0, # sidedata offset
101 0, # sidedata size 106 0, # sidedata size
107 revlog_constants.COMP_MODE_INLINE,
102 ) 108 )
103 self.index.append(e) 109 self.index.append(e)
104 self.bundlerevs.add(n) 110 self.bundlerevs.add(n)
105 n += 1 111 n += 1
106 112