]> git.ipfire.org Git - thirdparty/git.git/commitdiff
builtin/grep: simplify how we preload packs
authorPatrick Steinhardt <ps@pks.im>
Thu, 9 Oct 2025 08:01:37 +0000 (10:01 +0200)
committerJunio C Hamano <gitster@pobox.com>
Thu, 16 Oct 2025 21:42:39 +0000 (14:42 -0700)
When using multiple threads in git-grep(1) we eagerly preload both the
gitmodules file as well as the packfiles so that the threads won't race
with one another to initialize these data structures.

For packfiles, this is done by calling `packfile_store_get_packs()`,
which first loads our packfiles and then returns a pointer to the first
such packfile. This pointer is ignored though, as all we really care
about is that `packfile_store_prepare()` was called.

Historically, that function was file-local to "packfile.c", but that
changed with 4188332569 (packfile: move `get_multi_pack_index()` into
"midx.c", 2025-09-02). We can thus simplify the code by calling that
function directly.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/grep.c

index 13841fbf00fed1be07d203a5141271b7c7012b92..53cccf2d25068c664c27643873b8c6d7fe99d848 100644 (file)
@@ -1214,7 +1214,7 @@ int cmd_grep(int argc,
                if (recurse_submodules)
                        repo_read_gitmodules(the_repository, 1);
                if (startup_info->have_repository)
-                       (void)packfile_store_get_packs(the_repository->objects->packfiles);
+                       packfile_store_prepare(the_repository->objects->packfiles);
 
                start_threads(&opt);
        } else {