Re: [PATCH 4/4] odb: drop `alternates_db` field
Patrick Steinhardt <[email protected]>
| Newsgroups | org.kernel.vger.git |
|---|---|
| Message-ID | <[email protected]> |
On Tue, Aug 11, 2026 at 05:31:17PM -0500, Justin Tobler wrote: > On 26/08/10 03:33PM, Patrick Steinhardt wrote: > > The `struct object_database::alternates_db` field tracks the value of > > the "GIT_ALTERNATE_OBJECT_DIRECTORIES" environment variable and is > > used in `odb_prepare_alternates()`. It's not necessary to store it as a > > separate field anymore though, as we stopped lazy-loading alternates. > > Consequently, we can simply pass it to `odb_prepare_alternates()` via > > `odb_new()` now. > > > > Do so and remove the field. > > > > Signed-off-by: Patrick Steinhardt <[email protected]> > > --- > [snip] > > @@ -1126,7 +1126,7 @@ void odb_prepare(struct object_database *o, enum odb_prepare_flags flags) > > * the lifetime of the process. > > */ > > if (flags & ODB_PREPARE_FLUSH_CACHES) { > > - odb_prepare_alternates(o); > > + odb_prepare_alternates(o, NULL); > > o->object_count_valid = 0; > > } > > Naive question: is the reason we don't need to wire the > `GIT_ALTERNATE_OBJECT_DIRECTORIES` environment variable here because > they have already been added as sources? IOW, when we invoke > `odb_prepare_alternates()` after the initial set up, we only really care > about re-reading the alternates file. Yes, exactly. We set up alternates exactly once in `odb_new()`, and we don't expect the environment variable to ever change in a running process. And as `odb_prepare_alternates()` only adds but never removes any it's fine to ignore those here. I'll add a comment. Patrick