[PATCH 0/5] pack-objects: brown-paper-bag fixes for multi-pack reuse
- From
Taylor Blau <me@ttaylorr.com>
- Date
- Aug 27, 2024, 21:13 UTC
- Message-ID
- <cover.1724793201.git.me@ttaylorr.com>
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