190 # 4 bytes: parent 2 rev |
190 # 4 bytes: parent 2 rev |
191 # 32 bytes: nodeid |
191 # 32 bytes: nodeid |
192 # 8 bytes: sidedata offset |
192 # 8 bytes: sidedata offset |
193 # 4 bytes: sidedata compressed length |
193 # 4 bytes: sidedata compressed length |
194 # 1 bytes: compression mode (2 lower bit are data_compression_mode) |
194 # 1 bytes: compression mode (2 lower bit are data_compression_mode) |
195 # 27 bytes: Padding to align to 96 bytes (see RevlogV2Plan wiki page) |
195 # 4 bytes: changeset rank (i.e. `len(::REV)`) |
196 INDEX_ENTRY_CL_V2 = struct.Struct(b">Qiiii20s12xQiB27x") |
196 # 23 bytes: Padding to align to 96 bytes (see RevlogV2Plan wiki page) |
|
197 INDEX_ENTRY_CL_V2 = struct.Struct(b">Qiiii20s12xQiBi23x") |
197 assert INDEX_ENTRY_CL_V2.size == 32 * 3, INDEX_ENTRY_CL_V2.size |
198 assert INDEX_ENTRY_CL_V2.size == 32 * 3, INDEX_ENTRY_CL_V2.size |
198 INDEX_ENTRY_V2_IDX_OFFSET = 0 |
199 INDEX_ENTRY_V2_IDX_OFFSET = 0 |
199 INDEX_ENTRY_V2_IDX_COMPRESSED_LENGTH = 1 |
200 INDEX_ENTRY_V2_IDX_COMPRESSED_LENGTH = 1 |
200 INDEX_ENTRY_V2_IDX_UNCOMPRESSED_LENGTH = 2 |
201 INDEX_ENTRY_V2_IDX_UNCOMPRESSED_LENGTH = 2 |
201 INDEX_ENTRY_V2_IDX_PARENT_1 = 3 |
202 INDEX_ENTRY_V2_IDX_PARENT_1 = 3 |
202 INDEX_ENTRY_V2_IDX_PARENT_2 = 4 |
203 INDEX_ENTRY_V2_IDX_PARENT_2 = 4 |
203 INDEX_ENTRY_V2_IDX_NODEID = 5 |
204 INDEX_ENTRY_V2_IDX_NODEID = 5 |
204 INDEX_ENTRY_V2_IDX_SIDEDATA_OFFSET = 6 |
205 INDEX_ENTRY_V2_IDX_SIDEDATA_OFFSET = 6 |
205 INDEX_ENTRY_V2_IDX_SIDEDATA_COMPRESSED_LENGTH = 7 |
206 INDEX_ENTRY_V2_IDX_SIDEDATA_COMPRESSED_LENGTH = 7 |
206 INDEX_ENTRY_V2_IDX_COMPRESSION_MODE = 8 |
207 INDEX_ENTRY_V2_IDX_COMPRESSION_MODE = 8 |
|
208 INDEX_ENTRY_V2_IDX_RANK = 9 |
207 |
209 |
208 # revlog index flags |
210 # revlog index flags |
209 |
211 |
210 # For historical reasons, revlog's internal flags were exposed via the |
212 # For historical reasons, revlog's internal flags were exposed via the |
211 # wire protocol and are even exposed in parts of the storage APIs. |
213 # wire protocol and are even exposed in parts of the storage APIs. |