From d65798abb799bdf6915501ca274fc85cbc35d69f Mon Sep 17 00:00:00 2001 From: Taylor Blau Date: Fri, 26 Jun 2026 15:02:17 -0400 Subject: [PATCH] repack: extract `locate_existing_pack()` helper Factor out the lookup from `existing_packs_retain_cruft()` that converts a pack basename to a `string_list_item` into a reusable static helper function, `locate_existing_pack()`. A subsequent commit will introduce a new function which will need to perform this same lookup against a different `string_list`. Signed-off-by: Taylor Blau Signed-off-by: Junio C Hamano --- repack.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/repack.c b/repack.c index 571dabb665..986c74ac7e 100644 --- a/repack.c +++ b/repack.c @@ -226,21 +226,32 @@ static void existing_packs_mark_for_deletion_1(const struct git_hash_algo *algop } } -void existing_packs_retain_cruft(struct existing_packs *existing, - struct packed_git *cruft) +static struct string_list_item *locate_existing_pack(struct string_list *list, + struct packed_git *p) { struct strbuf buf = STRBUF_INIT; struct string_list_item *item; - strbuf_addstr(&buf, pack_basename(cruft)); + strbuf_addstr(&buf, pack_basename(p)); strbuf_strip_suffix(&buf, ".pack"); - item = string_list_lookup(&existing->cruft_packs, buf.buf); + item = string_list_lookup(list, buf.buf); + + strbuf_release(&buf); + + return item; +} + +void existing_packs_retain_cruft(struct existing_packs *existing, + struct packed_git *cruft) +{ + struct string_list_item *item; + + item = locate_existing_pack(&existing->cruft_packs, cruft); if (!item) BUG("could not find cruft pack '%s'", pack_basename(cruft)); existing_packs_mark_retained(item); - strbuf_release(&buf); } void existing_packs_mark_for_deletion(struct existing_packs *existing,