[PATCH 0/7] midx: ignore cruft pack with `repack`, `expire`
- From
Taylor Blau <me@ttaylorr.com>
- Date
- Sep 20, 2022, 01:55 UTC
- Message-ID
- <cover.1663638929.git.me@ttaylorr.com>
This series fixes a pair of bugs that were originally pointed out by Gregory Szorc in [1].
Namely, that both `git multi-pack-index repack` and `git multi-pack-index expire` can cause us to "absorb" the cruft pack, distributing its objects into a new pack, and removing its metadata.
This is worth avoiding, since even though it doesn't result in object corruption, this bug removes semi-important metadata contained in the .mtimes file, which controls how fast objects leave the repository during a pruning GC.
This series teaches both sub-commands to avoid any cruft pack(s), preserving their metadata.
Thanks in advance for your review.
[1]: https://lore.kernel.org/git/CAKQoGanPBec6wRO6uWrETaoJXdszpjRWytXaJwx6jw0mrrj-gQ@mail.gmail.com/
Taylor Blau (7): Documentation/git-multi-pack-index.txt: fix typo Documentation/git-multi-pack-index.txt: clarify expire behavior midx.c: prevent `expire` from removing the cruft pack midx.c: avoid cruft packs with `repack --batch-size=0` midx.c: replace `xcalloc()` with `CALLOC_ARRAY()` midx.c: remove unnecessary loop condition midx.c: avoid cruft packs with non-zero `repack --batch-size`
Documentation/git-multi-pack-index.txt | 7 +- midx.c | 12 +++- t/t5319-multi-pack-index.sh | 94 ++++++++++++++++++++++++++ 3 files changed, 107 insertions(+), 6 deletions(-)
-- 2.37.0.1.g1379af2e9d