Show More
@@ -310,66 +310,8 b' class revlog(object):' | |||||
310 | the current position in the file handle is valid, and log/warn/fail (by |
|
310 | the current position in the file handle is valid, and log/warn/fail (by | |
311 | raising). |
|
311 | raising). | |
312 |
|
312 | |||
313 |
|
313 | See mercurial/revlogutils/contants.py for details about the content of an | ||
314 | Internal details |
|
314 | index entry. | |
315 | ---------------- |
|
|||
316 |
|
||||
317 | A large part of the revlog logic deals with revisions' "index entries", tuple |
|
|||
318 | objects that contains the same "items" whatever the revlog version. |
|
|||
319 | Different versions will have different ways of storing these items (sometimes |
|
|||
320 | not having them at all), but the tuple will always be the same. New fields |
|
|||
321 | are usually added at the end to avoid breaking existing code that relies |
|
|||
322 | on the existing order. The field are defined as follows: |
|
|||
323 |
|
||||
324 | [0] offset: |
|
|||
325 | The byte index of the start of revision data chunk. |
|
|||
326 | That value is shifted up by 16 bits. use "offset = field >> 16" to |
|
|||
327 | retrieve it. |
|
|||
328 |
|
||||
329 | flags: |
|
|||
330 | A flag field that carries special information or changes the behavior |
|
|||
331 | of the revision. (see `REVIDX_*` constants for details) |
|
|||
332 | The flag field only occupies the first 16 bits of this field, |
|
|||
333 | use "flags = field & 0xFFFF" to retrieve the value. |
|
|||
334 |
|
||||
335 | [1] compressed length: |
|
|||
336 | The size, in bytes, of the chunk on disk |
|
|||
337 |
|
||||
338 | [2] uncompressed length: |
|
|||
339 | The size, in bytes, of the full revision once reconstructed. |
|
|||
340 |
|
||||
341 | [3] base rev: |
|
|||
342 | Either the base of the revision delta chain (without general |
|
|||
343 | delta), or the base of the delta (stored in the data chunk) |
|
|||
344 | with general delta. |
|
|||
345 |
|
||||
346 | [4] link rev: |
|
|||
347 | Changelog revision number of the changeset introducing this |
|
|||
348 | revision. |
|
|||
349 |
|
||||
350 | [5] parent 1 rev: |
|
|||
351 | Revision number of the first parent |
|
|||
352 |
|
||||
353 | [6] parent 2 rev: |
|
|||
354 | Revision number of the second parent |
|
|||
355 |
|
||||
356 | [7] node id: |
|
|||
357 | The node id of the current revision |
|
|||
358 |
|
||||
359 | [8] sidedata offset: |
|
|||
360 | The byte index of the start of the revision's side-data chunk. |
|
|||
361 |
|
||||
362 | [9] sidedata chunk length: |
|
|||
363 | The size, in bytes, of the revision's side-data chunk. |
|
|||
364 |
|
||||
365 | [10] data compression mode: |
|
|||
366 | two bits that detail the way the data chunk is compressed on disk. |
|
|||
367 | (see "COMP_MODE_*" constants for details). For revlog version 0 and |
|
|||
368 | 1 this will always be COMP_MODE_INLINE. |
|
|||
369 |
|
||||
370 | [11] side-data compression mode: |
|
|||
371 | two bits that detail the way the sidedata chunk is compressed on disk. |
|
|||
372 | (see "COMP_MODE_*" constants for details) |
|
|||
373 | """ |
|
315 | """ | |
374 |
|
316 | |||
375 | _flagserrorclass = error.RevlogError |
|
317 | _flagserrorclass = error.RevlogError |
@@ -27,6 +27,81 b' ALL_KINDS = {' | |||||
27 | KIND_OTHER, |
|
27 | KIND_OTHER, | |
28 | } |
|
28 | } | |
29 |
|
29 | |||
|
30 | ### Index entry key | |||
|
31 | # | |||
|
32 | # | |||
|
33 | # Internal details | |||
|
34 | # ---------------- | |||
|
35 | # | |||
|
36 | # A large part of the revlog logic deals with revisions' "index entries", tuple | |||
|
37 | # objects that contains the same "items" whatever the revlog version. | |||
|
38 | # Different versions will have different ways of storing these items (sometimes | |||
|
39 | # not having them at all), but the tuple will always be the same. New fields | |||
|
40 | # are usually added at the end to avoid breaking existing code that relies | |||
|
41 | # on the existing order. The field are defined as follows: | |||
|
42 | ||||
|
43 | # [0] offset: | |||
|
44 | # The byte index of the start of revision data chunk. | |||
|
45 | # That value is shifted up by 16 bits. use "offset = field >> 16" to | |||
|
46 | # retrieve it. | |||
|
47 | # | |||
|
48 | # flags: | |||
|
49 | # A flag field that carries special information or changes the behavior | |||
|
50 | # of the revision. (see `REVIDX_*` constants for details) | |||
|
51 | # The flag field only occupies the first 16 bits of this field, | |||
|
52 | # use "flags = field & 0xFFFF" to retrieve the value. | |||
|
53 | ENTRY_DATA_OFFSET = 0 | |||
|
54 | ||||
|
55 | # [1] compressed length: | |||
|
56 | # The size, in bytes, of the chunk on disk | |||
|
57 | ENTRY_DATA_COMPRESSED_LENGTH = 1 | |||
|
58 | ||||
|
59 | # [2] uncompressed length: | |||
|
60 | # The size, in bytes, of the full revision once reconstructed. | |||
|
61 | ENTRY_DATA_UNCOMPRESSED_LENGTH = 2 | |||
|
62 | ||||
|
63 | # [3] base rev: | |||
|
64 | # Either the base of the revision delta chain (without general | |||
|
65 | # delta), or the base of the delta (stored in the data chunk) | |||
|
66 | # with general delta. | |||
|
67 | ENTRY_DELTA_BASE = 3 | |||
|
68 | ||||
|
69 | # [4] link rev: | |||
|
70 | # Changelog revision number of the changeset introducing this | |||
|
71 | # revision. | |||
|
72 | ENTRY_LINK_REV = 4 | |||
|
73 | ||||
|
74 | # [5] parent 1 rev: | |||
|
75 | # Revision number of the first parent | |||
|
76 | ENTRY_PARENT_1 = 5 | |||
|
77 | ||||
|
78 | # [6] parent 2 rev: | |||
|
79 | # Revision number of the second parent | |||
|
80 | ENTRY_PARENT_2 = 6 | |||
|
81 | ||||
|
82 | # [7] node id: | |||
|
83 | # The node id of the current revision | |||
|
84 | ENTRY_NODE_ID = 7 | |||
|
85 | ||||
|
86 | # [8] sidedata offset: | |||
|
87 | # The byte index of the start of the revision's side-data chunk. | |||
|
88 | ENTRY_SIDEDATA_OFFSET = 8 | |||
|
89 | ||||
|
90 | # [9] sidedata chunk length: | |||
|
91 | # The size, in bytes, of the revision's side-data chunk. | |||
|
92 | ENTRY_SIDEDATA_COMPRESSED_LENGTH = 9 | |||
|
93 | ||||
|
94 | # [10] data compression mode: | |||
|
95 | # two bits that detail the way the data chunk is compressed on disk. | |||
|
96 | # (see "COMP_MODE_*" constants for details). For revlog version 0 and | |||
|
97 | # 1 this will always be COMP_MODE_INLINE. | |||
|
98 | ENTRY_DATA_COMPRESSION_MODE = 10 | |||
|
99 | ||||
|
100 | # [11] side-data compression mode: | |||
|
101 | # two bits that detail the way the sidedata chunk is compressed on disk. | |||
|
102 | # (see "COMP_MODE_*" constants for details) | |||
|
103 | ENTRY_SIDEDATA_COMPRESSION_MODE = 11 | |||
|
104 | ||||
30 | ### main revlog header |
|
105 | ### main revlog header | |
31 |
|
106 | |||
32 | # We cannot rely on Struct.format is inconsistent for python <=3.6 versus above |
|
107 | # We cannot rely on Struct.format is inconsistent for python <=3.6 versus above |
General Comments 0
You need to be logged in to leave comments.
Login now