83 Each index entry is 64 bytes. The byte layout of each entry is as |
83 Each index entry is 64 bytes. The byte layout of each entry is as |
84 follows, with byte 0 being the first byte (all data stored as big endian): |
84 follows, with byte 0 being the first byte (all data stored as big endian): |
85 |
85 |
86 0-3 (4 bytes) (rev 0 only) |
86 0-3 (4 bytes) (rev 0 only) |
87 Revlog header |
87 Revlog header |
|
88 |
88 0-5 (6 bytes) |
89 0-5 (6 bytes) |
89 Absolute offset of revision data from beginning of revlog. |
90 Absolute offset of revision data from beginning of revlog. |
|
91 |
90 6-7 (2 bytes) |
92 6-7 (2 bytes) |
91 Bit flags impacting revision behavior. The following bit offsets define: |
93 Bit flags impacting revision behavior. The following bit offsets define: |
92 0: REVIDX_ISCENSORED revision has censor metadata, must be verified. |
94 0: REVIDX_ISCENSORED revision has censor metadata, must be verified. |
93 1: REVIDX_EXTSTORED revision data is stored externally. |
95 1: REVIDX_EXTSTORED revision data is stored externally. |
|
96 |
94 8-11 (4 bytes) |
97 8-11 (4 bytes) |
95 Compressed length of revision data / chunk as stored in revlog. |
98 Compressed length of revision data / chunk as stored in revlog. |
|
99 |
96 12-15 (4 bytes) |
100 12-15 (4 bytes) |
97 Uncompressed length of revision data. This is the size of the full |
101 Uncompressed length of revision data. This is the size of the full |
98 revision data, not the size of the chunk post decompression. |
102 revision data, not the size of the chunk post decompression. |
|
103 |
99 16-19 (4 bytes) |
104 16-19 (4 bytes) |
100 Base or previous revision this revision's delta was produced against. |
105 Base or previous revision this revision's delta was produced against. |
101 -1 means this revision holds full text (as opposed to a delta). |
106 -1 means this revision holds full text (as opposed to a delta). |
102 For generaldelta repos, this is the previous revision in the delta |
107 For generaldelta repos, this is the previous revision in the delta |
103 chain. For non-generaldelta repos, this is the base or first |
108 chain. For non-generaldelta repos, this is the base or first |
104 revision in the delta chain. |
109 revision in the delta chain. |
|
110 |
105 20-23 (4 bytes) |
111 20-23 (4 bytes) |
106 A revision this revision is *linked* to. This allows a revision in |
112 A revision this revision is *linked* to. This allows a revision in |
107 one revlog to be forever associated with a revision in another |
113 one revlog to be forever associated with a revision in another |
108 revlog. For example, a file's revlog may point to the changelog |
114 revlog. For example, a file's revlog may point to the changelog |
109 revision that introduced it. |
115 revision that introduced it. |
|
116 |
110 24-27 (4 bytes) |
117 24-27 (4 bytes) |
111 Revision of 1st parent. -1 indicates no parent. |
118 Revision of 1st parent. -1 indicates no parent. |
|
119 |
112 28-31 (4 bytes) |
120 28-31 (4 bytes) |
113 Revision of 2nd parent. -1 indicates no 2nd parent. |
121 Revision of 2nd parent. -1 indicates no 2nd parent. |
|
122 |
114 32-63 (32 bytes) |
123 32-63 (32 bytes) |
115 Hash of revision's full text. Currently, SHA-1 is used and only |
124 Hash of revision's full text. Currently, SHA-1 is used and only |
116 the first 20 bytes of this field are used. The rest of the bytes |
125 the first 20 bytes of this field are used. The rest of the bytes |
117 are ignored and should be stored as \0. |
126 are ignored and should be stored as \0. |
118 |
127 |