]> git.ipfire.org Git - thirdparty/git.git/commitdiff
unpack-trees: use repository from index instead of global
authorJayesh Daga <jayeshdaga99@gmail.com>
Tue, 31 Mar 2026 15:34:26 +0000 (15:34 +0000)
committerJunio C Hamano <gitster@pobox.com>
Tue, 31 Mar 2026 19:44:24 +0000 (12:44 -0700)
unpack_trees() currently initializes its repository from the
global 'the_repository', even though a repository instance is
already available via the source index.

Use 'o->src_index->repo' instead of the global variable,
reducing reliance on global repository state.

This is a step towards eliminating global repository usage in
unpack_trees().

Suggested-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Jayesh Daga <jayeshdaga99@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
unpack-trees.c

index 998a1e6dc70cae48a700651459ba87b8151a765a..191b9d4769a7b48b9637486e6fc80dc316f175d7 100644 (file)
@@ -1780,14 +1780,14 @@ static int clear_ce_flags(struct index_state *istate,
 
        xsnprintf(label, sizeof(label), "clear_ce_flags(0x%08lx,0x%08lx)",
                  (unsigned long)select_mask, (unsigned long)clear_mask);
-       trace2_region_enter("unpack_trees", label, the_repository);
+       trace2_region_enter("unpack_trees", label, istate->repo);
        rval = clear_ce_flags_1(istate,
                                istate->cache,
                                istate->cache_nr,
                                &prefix,
                                select_mask, clear_mask,
                                pl, 0, 0);
-       trace2_region_leave("unpack_trees", label, the_repository);
+       trace2_region_leave("unpack_trees", label, istate->repo);
 
        stop_progress(&istate->progress);
        return rval;
@@ -1903,7 +1903,7 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
                BUG("o->df_conflict_entry is an output only field");
 
        trace_performance_enter();
-       trace2_region_enter("unpack_trees", "unpack_trees", the_repository);
+       trace2_region_enter("unpack_trees", "unpack_trees", repo);
 
        prepare_repo_settings(repo);
        if (repo->settings.command_requires_full_index) {
@@ -2007,9 +2007,9 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
                }
 
                trace_performance_enter();
-               trace2_region_enter("unpack_trees", "traverse_trees", the_repository);
+               trace2_region_enter("unpack_trees", "traverse_trees", repo);
                ret = traverse_trees(o->src_index, len, t, &info);
-               trace2_region_leave("unpack_trees", "traverse_trees", the_repository);
+               trace2_region_leave("unpack_trees", "traverse_trees", repo);
                trace_performance_leave("traverse_trees");
                if (ret < 0)
                        goto return_failed;
@@ -2106,7 +2106,7 @@ done:
                dir_clear(o->internal.dir);
                o->internal.dir = NULL;
        }
-       trace2_region_leave("unpack_trees", "unpack_trees", the_repository);
+       trace2_region_leave("unpack_trees", "unpack_trees", repo);
        trace_performance_leave("unpack_trees");
        return ret;