On Thu, Jul 10, 2025 at 07:10:02PM -0400, Taylor Blau wrote: > On Wed, Jul 09, 2025 at 09:54:49AM +0200, Patrick Steinhardt wrote: > > Multi-pack indices are tracked via `struct multi_pack_index`. This data > > structure is stored as a linked list inside `struct object_database`, > > which is the global database that spans across all of the object > > sources. > > > > This layout causes two problems: > > > > - Multi-pack indices aren't global to an object database, but instead > > there can be one multi-pack index per source. This creates a > > mismatch between the on-disk layout and how things are organized in > > the object database subsystems and makes some parts, like figuring > > out whether a source has an MIDX, quite awkward. > > This is a little confusing to me. What do we consider to be an "object > database", and what do we consider to be a "source"? > > For instance, if I have a repository with one or more alternates, I > would imagine that each alternate is a separate "source", and the > sources together comprise the object database. Does that match the way > you're thinking about it? > > If so, that makes sense. But if not (i.e., we consider all alternates to > belong to the same object database and share a single source), then I > don't know how this will interact with the existing MIDX alternates > mechanism. > > Some clarification here would be helpful, I think. Ahh..., after applying part of this series locally, the documentation in "struct odb_source" clarifies that (at least as of yet) there is one source per alternate, along with a source for the local object database, and that these collection of sources comprise the object database. Makes sense. Thanks, Taylor