pub const TOMBSTONE: u8 = 0;Expand description
A row that retires an oid.
The file is append-only, so retain cannot reach back and delete: it appends
rows that say this oid is gone, and the index fold applies them in file
order, so the last word about an oid wins. Dropping only from the in-memory
index is what a first cut did, and it was WRONG in the way that matters —
a_wholly_dead_pack_does_not_come_back_when_the_store_is_reopened came back
with 551 commits instead of 1, because a reopen rebuilds the index from
the file and resurrected every row gc had retired.
0 and not a sixth column: git’s pack type codes are 1–7 and 0 is not one of
them, so kind_of already answers None for it. A tombstone costs an oid
and an empty payload, not a byte on every live row.