Subject: Re: [PATCH v2 09/23] pseudo-merge: implement support for selecting pseudo-merge commits

From: Junio C Hamano <[email-masked]>
Date: Thu, 16 May 2024 15:43:11 -0700

Jeff King <[email-masked]> writes:

>     motivation. Something like (assuming we're following a section on
>     bitmaps in the "advanced packing" page, something I recognize also
>     does not yet exist):
>
>       Reachability bitmaps are most efficient when we have on-disk
>       stored bitmaps for one or more of the starting points of a
>       traversal. For this reason, Git prefers storing bitmaps for
>       commits at the tips of refs, because traversals tend to start with
>       those points.
>
>       But if you have a large number of refs, it's not feasible to store
>       a bitmap for _every_ ref tip. It takes up space, and just OR-ing
>       all of those bitmaps together is expensive.
>
>       One way we can deal with that is to create bitmaps that represent
>       _groups_ of refs. When a traversal asks about the entire group,
>       then we can use this single bitmap instead of considering each ref
>       individually. Because these bitmaps represent the set of objects
>       which would be reachable in a hypothetical merge of all of the
>       commits, we call them pseudo-merge bitmaps.

Nicely put.  I wish there were something like the above in the
patches when I read these patches for the first time.  The concept
of "pseudo-merge" was the first hump in the road to understanding.
Eventually I figured it out, but a simple write-up like the above
would have helped readers a lot.

Thanks.