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
@@ -1780,14 +1780,14 @@ static int clear_ce_flags(struct index_state *istate,
1780
1781
xsnprintf(label, sizeof(label), "clear_ce_flags(0x%08lx,0x%08lx)",
1782
(unsigned long)select_mask, (unsigned long)clear_mask);
1783
- trace2_region_enter("unpack_trees", label, the_repository);
1783
+ trace2_region_enter("unpack_trees", label, istate->repo);
1784
rval = clear_ce_flags_1(istate,
1785
istate->cache,
1786
istate->cache_nr,
1787
&prefix,
1788
select_mask, clear_mask,
1789
pl, 0, 0);
1790
- trace2_region_leave("unpack_trees", label, the_repository);
1790
+ trace2_region_leave("unpack_trees", label, istate->repo);
1791
1792
stop_progress(&istate->progress);
1793
return rval;
@@ -1882,7 +1882,7 @@ static int verify_absent(const struct cache_entry *,
1882
*/
1883
int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options *o)
1884
{
1885
- struct repository *repo = the_repository;
1885
+ struct repository *repo = o->src_index->repo;
1886
int i, ret;
1887
static struct cache_entry *dfc;
1888
struct pattern_list pl;
@@ -1903,7 +1903,7 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
1903
BUG("o->df_conflict_entry is an output only field");
1904
1905
trace_performance_enter();
1906
- trace2_region_enter("unpack_trees", "unpack_trees", the_repository);
1906
+ trace2_region_enter("unpack_trees", "unpack_trees", repo);
1907
1908
prepare_repo_settings(repo);
1909
if (repo->settings.command_requires_full_index) {
@@ -2007,9 +2007,9 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
2007
}
2008
2009
trace_performance_enter();
2010
- trace2_region_enter("unpack_trees", "traverse_trees", the_repository);
2010
+ trace2_region_enter("unpack_trees", "traverse_trees", repo);
2011
ret = traverse_trees(o->src_index, len, t, &info);
2012
- trace2_region_leave("unpack_trees", "traverse_trees", the_repository);
2012
+ trace2_region_leave("unpack_trees", "traverse_trees", repo);
2013
trace_performance_leave("traverse_trees");
2014
if (ret < 0)
2015
goto return_failed;
@@ -2106,7 +2106,7 @@ done:
2106
dir_clear(o->internal.dir);
2107
o->internal.dir = NULL;
2108
}
2109
- trace2_region_leave("unpack_trees", "unpack_trees", the_repository);
2109
+ trace2_region_leave("unpack_trees", "unpack_trees", repo);
2110
trace_performance_leave("unpack_trees");
2111
return ret;
2112