On 25/07/15 01:29PM, Patrick Steinhardt wrote: > 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@xxxxxx Thanks Patrick! From the range-diff, this version looks good to me :) -Justin