Re: [PATCH 0/7] Commit-graph: Generation Number v2 Fixes, v3 implementation
From: Junio C Hamano <hidden>
Date: 2022-02-24 21:42:45
"Derrick Stolee via GitGitGadget" [off-list ref] writes:
This patch series includes two distinct, but similarly-motivated parts: * Patches 1-4 fix some bugs in the commit-graph generation number v2. * Patches 5-7 add a new generation number v3 by incrementing the commit-graph file format. I had been thinking about generation number v3, which is the same corrected commit date as generation number v2, but it is stored in the Commit Data chunk, requiring a new commit-graph file format version. This breaks compatibility with older versions of Git, so it requires opt-in via the commitGraph.generationVersion config value. The only improvement over version 2 is that the commit-graph file is smaller, so I/O time is reduced.
Sounds exciting. Locality of on-disk data does matter.
However, while exploring this idea I found bugs in generation number v2. In particular, Git has been ignoring them since shortly after they were introduced. This is due to a bug I introduced when trying to make split commit-graphs safer with mixed generation number versions. I also noticed an issue with the offset overflows that I only noticed after writing generation number v3 using a smaller offset size, actually triggering the bug in the test suite. I'm submitting these two things together so we can see them all at once, but I'd be happy to split this into two series. The first four patches are important bug fixes, so we can consider them as higher-priority. Thanks, -Stolee
Thanks, will take a look.