comparison mercurial/revlogutils/revlogv0.py @ 47260: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 013c645dd28c
children 2b69555e4875
comparison
equal deleted inserted replaced
47259:013c645dd28c 47260:130c9f7ed914
7 from __future__ import absolute_import 7 from __future__ import absolute_import
8 8
9 9
10 from ..node import sha1nodeconstants 10 from ..node import sha1nodeconstants
11 from .constants import ( 11 from .constants import (
12 COMP_MODE_INLINE,
12 INDEX_ENTRY_V0, 13 INDEX_ENTRY_V0,
13 ) 14 )
14 from ..i18n import _ 15 from ..i18n import _
15 16
16 from .. import ( 17 from .. import (
40 return int(int(offset) << 16 | type) 41 return int(int(offset) << 16 | type)
41 42
42 43
43 class revlogoldindex(list): 44 class revlogoldindex(list):
44 entry_size = INDEX_ENTRY_V0.size 45 entry_size = INDEX_ENTRY_V0.size
45 null_item = (0, 0, 0, -1, -1, -1, -1, sha1nodeconstants.nullid, 0, 0) 46 null_item = (
47 0,
48 0,
49 0,
50 -1,
51 -1,
52 -1,
53 -1,
54 sha1nodeconstants.nullid,
55 0,
56 0,
57 COMP_MODE_INLINE,
58 )
46 59
47 @property 60 @property
48 def nodemap(self): 61 def nodemap(self):
49 msg = b"index.nodemap is deprecated, use index.[has_node|rev|get_rev]" 62 msg = b"index.nodemap is deprecated, use index.[has_node|rev|get_rev]"
50 util.nouideprecwarn(msg, b'5.3', stacklevel=2) 63 util.nouideprecwarn(msg, b'5.3', stacklevel=2)
136 nodemap.get(e[4], node.nullrev), 149 nodemap.get(e[4], node.nullrev),
137 nodemap.get(e[5], node.nullrev), 150 nodemap.get(e[5], node.nullrev),
138 e[6], 151 e[6],
139 0, # no side data support 152 0, # no side data support
140 0, # no side data support 153 0, # no side data support
154 COMP_MODE_INLINE,
141 ) 155 )
142 index.append(e2) 156 index.append(e2)
143 nodemap[e[6]] = n 157 nodemap[e[6]] = n
144 n += 1 158 n += 1
145 159