Re: [PATCH v2 01/14] commit-graph: add format document
From: Jonathan Tan <hidden>
Date: 2018-02-01 21:44:29
On Tue, 30 Jan 2018 16:39:30 -0500 Derrick Stolee [off-list ref] wrote:
+ Commit Data (ID: {'C', 'G', 'E', 'T' }) (N * (H + 16) bytes)
+ * The first H bytes are for the OID of the root tree.
+ * The next 8 bytes are for the int-ids of the first two parents
+ of the ith commit. Stores value 0xffffffff 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.[snip]
+ Large Edge List (ID: {'E', 'D', 'G', 'E'})
+ This list of 4-byte values store the second through nth parents for
+ all octopus merges. The second parent value in the commit data is a
+ negative number pointing into this list. Looking at the paragraph which I quoted before the [snip], this sentence is confusing (in particular, the second parent value is not interpreted as the normal two's-complement negative value, and the semantics of negative values indexing into the list is unclear). Maybe it's better to omit it entirely.