Show 43 quoted lines
> Hi,
>
> multi-pack-indices are tracked via `struct multi_pack_index`. This data
> structure is stored 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 object 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 an object source has an MIDX, quite awkward.
>
> - Multi-pack indices are an implementation detail of how efficient
> access for packfiles work. As such, they are neither relevant in the
> context of loose objects, nor in a potential future where we have
> pluggable backends.
>
> This patch series thus refactors the codebase to stop tracking MIDX's
> globally. Instead, they are being pushed down one level so that every
> `struct odb_source` has an optional MIDX itself. This simplifies some of
> our code and will make it easier in a future iteration to move the data
> into a packfile-specific object source backend.
>
> Changes in v2:
> - Changed the base of this series. It is now built on top of
> a30f80fde92 (The eighth batch, 2025-07-08) with "ps/object-store" at
> 841a03b4046 (odb: rename `read_object_with_reference()`, 2025-07-01)
> and "tb/midx-avoid-cruft-packs" at 5ee86c273bf (repack: exclude
> cruft pack(s) from the MIDX where possible, 2025-06-23) merged into
> it.
> - Re-explain the split between object databases and object sources
> to help readers out a bit, given that this is a rather recent
> change.
> - Rename `struct odb_source::multi_pack_index` to `struct
> odb_source::midx`.
> - Fix some overly long lines when looping through the individual
> sources.
> - Drop the patch that guards re-loading MIDXs, as we already have the
> guard via `packed_git_initialized`.
> - Remove some while-at-it changes to make the diffs easier to read.
> - Link to v1: https://lore.kernel.org/r/20250709-b4-pks-midx-via-odb-alternate-v1-0-f31150d21331@pks.im