This series fixes a couple of issues (some cosmetic, others less so) in multi-pack reuse noticed when rolling this out over a few real-world, internal repositories on GitHub's servers. The patches are laid out as follows: - The first three patches demonstrate, prepare for, and fix a significant bug with multi-pack reuse which results in all sorts of strange behavior (explained in detail in the third commit of this series). - The fourth patch is a minor (mostly cosmetic) performance optimization that avoids duplicate calls to pack_pos_to_offset() when performing pack-reuse with a MIDX bitmap. - The final patch is a cosmetic fix to avoid using the value of a constant instead of the name constant itself. Thanks in advance for your review! Taylor Blau (5): t/t5332-multi-pack-reuse.sh: verify pack generation with --strict pack-bitmap: tag bitmapped packs with their corresponding MIDX builtin/pack-objects.c: translate bit positions during pack-reuse pack-bitmap.c: avoid repeated `pack_pos_to_offset()` during reuse builtin/pack-objects.c: do not open-code `MAX_PACK_OBJECT_HEADER` builtin/pack-objects.c | 46 +++++++++++++++++++++++++++++-------- midx.c | 1 + pack-bitmap.c | 12 ++++++---- pack-bitmap.h | 1 + t/t5332-multi-pack-reuse.sh | 35 ++++++++++++++++++++++++---- 5 files changed, 78 insertions(+), 17 deletions(-) base-commit: 159f2d50e75c17382c9f4eb7cbda671a6fa612d1 -- 2.46.0.426.g82754d92509