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>
Jayesh Daga committed
Mar 31, 2026 at 15:34 UTC
0c20c6cb230cf7611ee6b6e18c3aeb13986c462e
1 file changed
+7
-7
unpack-trees.c
+7
-7
index 998a1e6dc7..b42020f16b 100644
--- a/unpack-trees.c
+++ b/unpack-trees.c
@@ -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;
@@ -1882,7 +1882,7 @@ static int verify_absent(const struct cache_entry *,
*/
int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options *o)
{
- struct repository *repo = the_repository;
+ struct repository *repo = o->src_index->repo;
int i, ret;
static struct cache_entry *dfc;
struct pattern_list pl;
@@ -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;