@@ -18,9 +18,9 @@ metadata, including:
18
18
the graph file.
19
19
20
20
These positional references are stored as unsigned 32-bit integers
21
- corresponding to the array position within the list of commit OIDs. We
22
- use the most-significant bit for special purposes, so we can store at most
23
- (1 << 31) - 1 (around 2 billion) commits.
21
+ corresponding to the array position within the list of commit OIDs. Due
22
+ to some special constants we use to track parents, we can store at most
23
+ (1 << 30) + (1 << 29) + (1 << 28) - 1 (around 1.8 billion) commits.
24
24
25
25
== Commit graph files have the following format:
26
26
@@ -70,10 +70,10 @@ CHUNK DATA:
70
70
OID Lookup (ID: {'O', 'I', 'D', 'L'}) (N * H bytes)
71
71
The OIDs for all commits in the graph, sorted in ascending order.
72
72
73
- Commit Data (ID: {'C', 'G ', 'E ', 'T' }) (N * (H + 16) bytes)
73
+ Commit Data (ID: {'C', 'D ', 'A ', 'T' }) (N * (H + 16) bytes)
74
74
* The first H bytes are for the OID of the root tree.
75
75
* The next 8 bytes are for the positions of the first two parents
76
- of the ith commit. Stores value 0xffffffff if no parent in that
76
+ of the ith commit. Stores value 0x7000000 if no parent in that
77
77
position. If there are more than two parents, the second value
78
78
has its most-significant bit on and the other bits store an array
79
79
position into the Large Edge List chunk.
0 commit comments