]> git.ipfire.org Git - thirdparty/git.git/commitdiff
builtin/repack.c: avoid "the_repository" when removing packs
authorTaylor Blau <me@ttaylorr.com>
Wed, 15 Oct 2025 22:27:27 +0000 (18:27 -0400)
committerJunio C Hamano <gitster@pobox.com>
Thu, 16 Oct 2025 17:08:53 +0000 (10:08 -0700)
The 'remove_redundant_pack()' function uses "the_repository" to obtain,
and optionally remove, the repository's MIDX. Instead of relying on
"the_repository", pass around a "struct repository *" parameter through
its callers, and use that instead.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/repack.c

index 113f5fc67f90be0df8ec9328253dd75af43fdf3c..93802531e1a47475a9415b9ca363cae7e3b7df8e 100644 (file)
@@ -221,33 +221,35 @@ static void mark_packs_for_deletion(struct existing_packs *existing,
        mark_packs_for_deletion_1(names, &existing->cruft_packs);
 }
 
-static void remove_redundant_pack(const char *dir_name, const char *base_name)
+static void remove_redundant_pack(struct repository *repo,
+                                 const char *dir_name, const char *base_name)
 {
        struct strbuf buf = STRBUF_INIT;
-       struct odb_source *source = the_repository->objects->sources;
+       struct odb_source *source = repo->objects->sources;
        struct multi_pack_index *m = get_multi_pack_index(source);
        strbuf_addf(&buf, "%s.pack", base_name);
        if (m && source->local && midx_contains_pack(m, buf.buf))
-               clear_midx_file(the_repository);
+               clear_midx_file(repo);
        strbuf_insertf(&buf, 0, "%s/", dir_name);
        unlink_pack_path(buf.buf, 1);
        strbuf_release(&buf);
 }
 
-static void remove_redundant_packs_1(struct string_list *packs)
+static void remove_redundant_packs_1(struct repository *repo,
+                                    struct string_list *packs)
 {
        struct string_list_item *item;
        for_each_string_list_item(item, packs) {
                if (!pack_is_marked_for_deletion(item))
                        continue;
-               remove_redundant_pack(packdir, item->string);
+               remove_redundant_pack(repo, packdir, item->string);
        }
 }
 
 static void remove_redundant_existing_packs(struct existing_packs *existing)
 {
-       remove_redundant_packs_1(&existing->non_kept_packs);
-       remove_redundant_packs_1(&existing->cruft_packs);
+       remove_redundant_packs_1(existing->repo, &existing->non_kept_packs);
+       remove_redundant_packs_1(existing->repo, &existing->cruft_packs);
 }
 
 static void existing_packs_release(struct existing_packs *existing)
@@ -685,7 +687,7 @@ static void geometry_remove_redundant_packs(struct pack_geometry *geometry,
                    (string_list_has_string(&existing->kept_packs, buf.buf)))
                        continue;
 
-               remove_redundant_pack(packdir, buf.buf);
+               remove_redundant_pack(existing->repo, packdir, buf.buf);
        }
 
        strbuf_release(&buf);