unpack-trees: use repository from index instead of global

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>
This commit is contained in:
Jayesh Daga
2026-03-31 15:34:26 +00:00
committed by Junio C Hamano
parent 5361983c07
commit 0df739ea34

View 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;