Subject: Re: [PATCH 0/7] Commit-graph: Generation Number v2 Fixes, v3 implementation

From: Junio C Hamano <[email-masked]>
Date: Thu, 24 Feb 2022 13:42:39 -0800

"Derrick Stolee via GitGitGadget" <[email-masked]> 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.