Skip to content

midx: ignore cruft pack with `repack`, `expire`

Taylor Blau git 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest7 patches 3 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/7Documentation/git-multi-pack-index.txt: fix typoDocumentation/git-multi-pack-index.txt+1 -10 replies
2/7Documentation/git-multi-pack-index.txt: clarify expire behaviorDocumentation/git-multi-pack-index.txt+3 -20 replies
3/7midx.c: prevent `expire` from removing the cruft packDocumentation/git-multi-pack-index.txt midx.c t/t5319-multi-pack-index.sh+33 -31 reply
4/7midx.c: avoid cruft packs with `repack --batch-size=0`midx.c t/t5319-multi-pack-index.sh+25 -00 replies
5/7midx.c: replace `xcalloc()` with `CALLOC_ARRAY()`midx.c+3 -10 replies
6/7midx.c: remove unnecessary loop conditionmidx.c+1 -10 replies
7/7midx.c: avoid cruft packs with non-zero `repack --batch-size`midx.c t/t5319-multi-pack-index.sh+43 -00 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/7] midx: ignore cruft pack with `repack`, `expire`

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(-)
Signature · 1 line
2.37.0.1.g1379af2e9d