summaryrefslogtreecommitdiff
path: root/t/t4013/diff.diff_--stat_initial..side
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2026-08-17 13:09:23 +0200
committerJunio C Hamano <gitster@pobox.com>2026-08-17 09:36:10 -0700
commitf978f560dd7f0c92ed1834198747da621400350a (patch)
tree9211cd1cc1d79172dd99f689079395562f877728 /t/t4013/diff.diff_--stat_initial..side
parent987927709135a2267abfa929a6f20ddd4302c8b7 (diff)
odb: eagerly initialize alternates
When creating the object database we initialize the main object database source, but we don't yet initialize its alternates. Instead, we have many calls to `odb_prepare_alternates()` cluttered around the code base whenever we are about to iterate through the sources. This lazy loading doesn't really add much value: the moment where we read any object we _have_ to load the alternates anyway. So given that most of our commands would access the object database this optimization is not really buying us much in the first place. Quite on the contrary, it makes the code harder to understand and is a potential source of bugs in case any callsite forgot to prepare alternates before we iterate through the sources. Historically though there was a reason why we deferred lazy-loading: it may happen that the repository has "core.ignoreCase" configured, and we use that to deduplicate the list of alternates in case we had the same alternate configured multiple times, but with different casing. We used to initialize the object database before we had fully configured the owning repository though, and consequently we couldn't access that configuration yet. This has changed in the preceding commit though where we started to parse "core.ignoreCase" manually. Eagerly prepare alternates both when creating the object database and when flushing its caches. Drop the now-unneeded calls to prepare the alternates that are scattered across the code base. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t4013/diff.diff_--stat_initial..side')
0 files changed, 0 insertions, 0 deletions