From: Junio C Hamano Date: Wed, 18 Jul 2018 19:20:34 +0000 (-0700) Subject: Merge branch 'ds/commit-graph' X-Git-Tag: v2.19.0-rc0~148 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/06994ae06506a24dfdad0336a555bbdcfaa693e2?ds=inline;hp=-c Merge branch 'ds/commit-graph' Docfix. * ds/commit-graph: commit-graph: fix documentation inconsistencies --- 06994ae06506a24dfdad0336a555bbdcfaa693e2 diff --combined Documentation/technical/commit-graph-format.txt index 2c965d594f,91c2fbd86a..cc0474ba3e --- a/Documentation/technical/commit-graph-format.txt +++ b/Documentation/technical/commit-graph-format.txt @@@ -18,9 -18,9 +18,9 @@@ metadata, including the graph file. These positional references are stored as unsigned 32-bit integers - corresponding to the array position within the list of commit OIDs. We - use the most-significant bit for special purposes, so we can store at most - (1 << 31) - 1 (around 2 billion) commits. -corresponding to the array position withing the list of commit OIDs. Due ++corresponding to the array position within the list of commit OIDs. Due + to some special constants we use to track parents, we can store at most + (1 << 30) + (1 << 29) + (1 << 28) - 1 (around 1.8 billion) commits. == Commit graph files have the following format: @@@ -70,10 -70,10 +70,10 @@@ CHUNK DATA OID Lookup (ID: {'O', 'I', 'D', 'L'}) (N * H bytes) The OIDs for all commits in the graph, sorted in ascending order. - Commit Data (ID: {'C', 'G', 'E', 'T' }) (N * (H + 16) bytes) + Commit Data (ID: {'C', 'D', 'A', 'T' }) (N * (H + 16) bytes) * The first H bytes are for the OID of the root tree. * The next 8 bytes are for the positions of the first two parents - of the ith commit. Stores value 0xffffffff if no parent in that + of the ith commit. Stores value 0x7000000 if no parent in that position. If there are more than two parents, the second value has its most-significant bit on and the other bits store an array position into the Large Edge List chunk.