On Tue, 30 Jan 2018 16:39:30 -0500
Derrick Stolee <[email protected]> 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.