Jeff King <peff@xxxxxxxx> 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.