diff options
| author | Patrick Steinhardt <ps@pks.im> | 2026-01-05 14:16:44 +0100 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2026-01-14 06:29:24 -0800 |
| commit | fa7b91247b42bc9ffab423d42f0e9e12e86769fa (patch) | |
| tree | bd62b8ee8e0541f590fd462f001778ffe8150ee1 | |
| parent | dd8c4e12c2da850d67849ccfc221ee1dbf87ce55 (diff) | |
| download | git-fa7b91247b42bc9ffab423d42f0e9e12e86769fa.tar.xz | |
repack-promisor: extract function to remove redundant packs
We're about to add a second caller that wants to remove redundant packs
after a geometric repack. Split out the function which does this to
prepare for that.
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
| -rw-r--r-- | repack-geometry.c | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/repack-geometry.c b/repack-geometry.c index 17e6652a91..0daf545a81 100644 --- a/repack-geometry.c +++ b/repack-geometry.c @@ -197,17 +197,18 @@ struct packed_git *pack_geometry_preferred_pack(struct pack_geometry *geometry) return NULL; } -void pack_geometry_remove_redundant(struct pack_geometry *geometry, - struct string_list *names, - struct existing_packs *existing, - const char *packdir) +static void remove_redundant_packs(struct packed_git **pack, + uint32_t pack_nr, + struct string_list *names, + struct existing_packs *existing, + const char *packdir) { const struct git_hash_algo *algop = existing->repo->hash_algo; struct strbuf buf = STRBUF_INIT; uint32_t i; - for (i = 0; i < geometry->split; i++) { - struct packed_git *p = geometry->pack[i]; + for (i = 0; i < pack_nr; i++) { + struct packed_git *p = pack[i]; if (string_list_has_string(names, hash_to_hex_algop(p->hash, algop))) continue; @@ -226,6 +227,15 @@ void pack_geometry_remove_redundant(struct pack_geometry *geometry, strbuf_release(&buf); } +void pack_geometry_remove_redundant(struct pack_geometry *geometry, + struct string_list *names, + struct existing_packs *existing, + const char *packdir) +{ + remove_redundant_packs(geometry->pack, geometry->split, + names, existing, packdir); +} + void pack_geometry_release(struct pack_geometry *geometry) { if (!geometry) |
