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 <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Taylor Blau committed
Jun 26, 2026 at 15:02 UTC
d65798abb799bdf6915501ca274fc85cbc35d69f
1 file changed
+16
-5
repack.c
+16
-5
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,