Show More
@@ -243,21 +243,8 b' def parse_index2(data, inline, revlogv2=' | |||||
243 |
|
243 | |||
244 |
|
244 | |||
245 | class Index2Mixin(object): |
|
245 | class Index2Mixin(object): | |
246 | # 6 bytes: offset |
|
246 | index_format = revlog_constants.INDEX_ENTRY_V2.format | |
247 | # 2 bytes: flags |
|
247 | index_size = revlog_constants.INDEX_ENTRY_V2.size | |
248 | # 4 bytes: compressed length |
|
|||
249 | # 4 bytes: uncompressed length |
|
|||
250 | # 4 bytes: base rev |
|
|||
251 | # 4 bytes: link rev |
|
|||
252 | # 4 bytes: parent 1 rev |
|
|||
253 | # 4 bytes: parent 2 rev |
|
|||
254 | # 32 bytes: nodeid |
|
|||
255 | # 8 bytes: sidedata offset |
|
|||
256 | # 4 bytes: sidedata compressed length |
|
|||
257 | # 20 bytes: Padding to align to 96 bytes (see RevlogV2Plan wiki page) |
|
|||
258 | index_format = b">Qiiiiii20s12xQi20x" |
|
|||
259 | index_size = struct.calcsize(index_format) |
|
|||
260 | assert index_size == 96, index_size |
|
|||
261 | null_item = (0, 0, 0, -1, -1, -1, -1, nullid, 0, 0) |
|
248 | null_item = (0, 0, 0, -1, -1, -1, -1, nullid, 0, 0) | |
262 |
|
249 | |||
263 | def replace_sidedata_info(self, i, sidedata_offset, sidedata_length): |
|
250 | def replace_sidedata_info(self, i, sidedata_offset, sidedata_length): |
@@ -43,6 +43,7 b' from .revlogutils.constants import (' | |||||
43 | FLAG_INLINE_DATA, |
|
43 | FLAG_INLINE_DATA, | |
44 | INDEX_ENTRY_V0, |
|
44 | INDEX_ENTRY_V0, | |
45 | INDEX_ENTRY_V1, |
|
45 | INDEX_ENTRY_V1, | |
|
46 | INDEX_ENTRY_V2, | |||
46 | REVLOGV0, |
|
47 | REVLOGV0, | |
47 | REVLOGV1, |
|
48 | REVLOGV1, | |
48 | REVLOGV1_FLAGS, |
|
49 | REVLOGV1_FLAGS, | |
@@ -87,7 +88,6 b' from .utils import (' | |||||
87 | storageutil, |
|
88 | storageutil, | |
88 | stringutil, |
|
89 | stringutil, | |
89 | ) |
|
90 | ) | |
90 | from .pure import parsers as pureparsers |
|
|||
91 |
|
91 | |||
92 | # blanked usage of all the name to prevent pyflakes constraints |
|
92 | # blanked usage of all the name to prevent pyflakes constraints | |
93 | # We need these name available in the module for extensions. |
|
93 | # We need these name available in the module for extensions. | |
@@ -352,20 +352,16 b' class revlogio(object):' | |||||
352 | return p |
|
352 | return p | |
353 |
|
353 | |||
354 |
|
354 | |||
355 | indexformatv2 = struct.Struct(pureparsers.Index2Mixin.index_format) |
|
|||
356 | indexformatv2_pack = indexformatv2.pack |
|
|||
357 |
|
||||
358 |
|
||||
359 | class revlogv2io(object): |
|
355 | class revlogv2io(object): | |
360 | def __init__(self): |
|
356 | def __init__(self): | |
361 |
self.size = |
|
357 | self.size = INDEX_ENTRY_V2.size | |
362 |
|
358 | |||
363 | def parseindex(self, data, inline): |
|
359 | def parseindex(self, data, inline): | |
364 | index, cache = parsers.parse_index2(data, inline, revlogv2=True) |
|
360 | index, cache = parsers.parse_index2(data, inline, revlogv2=True) | |
365 | return index, cache |
|
361 | return index, cache | |
366 |
|
362 | |||
367 | def packentry(self, entry, node, version, rev): |
|
363 | def packentry(self, entry, node, version, rev): | |
368 |
p = |
|
364 | p = INDEX_ENTRY_V2.pack(*entry) | |
369 | if rev == 0: |
|
365 | if rev == 0: | |
370 | p = versionformat_pack(version) + p[4:] |
|
366 | p = versionformat_pack(version) + p[4:] | |
371 | return p |
|
367 | return p |
@@ -57,6 +57,21 b' INDEX_ENTRY_V0 = struct.Struct(b">4l20s2' | |||||
57 | INDEX_ENTRY_V1 = struct.Struct(b">Qiiiiii20s12x") |
|
57 | INDEX_ENTRY_V1 = struct.Struct(b">Qiiiiii20s12x") | |
58 | assert INDEX_ENTRY_V1.size == 32 * 2 |
|
58 | assert INDEX_ENTRY_V1.size == 32 * 2 | |
59 |
|
59 | |||
|
60 | # 6 bytes: offset | |||
|
61 | # 2 bytes: flags | |||
|
62 | # 4 bytes: compressed length | |||
|
63 | # 4 bytes: uncompressed length | |||
|
64 | # 4 bytes: base rev | |||
|
65 | # 4 bytes: link rev | |||
|
66 | # 4 bytes: parent 1 rev | |||
|
67 | # 4 bytes: parent 2 rev | |||
|
68 | # 32 bytes: nodeid | |||
|
69 | # 8 bytes: sidedata offset | |||
|
70 | # 4 bytes: sidedata compressed length | |||
|
71 | # 20 bytes: Padding to align to 96 bytes (see RevlogV2Plan wiki page) | |||
|
72 | INDEX_ENTRY_V2 = struct.Struct(b">Qiiiiii20s12xQi20x") | |||
|
73 | assert INDEX_ENTRY_V2.size == 32 * 3 | |||
|
74 | ||||
60 | # revlog index flags |
|
75 | # revlog index flags | |
61 |
|
76 | |||
62 | # For historical reasons, revlog's internal flags were exposed via the |
|
77 | # For historical reasons, revlog's internal flags were exposed via the |
General Comments 0
You need to be logged in to leave comments.
Login now