Re: [PATCH 3/5] setup: defer object database creation

Patrick Steinhardt <[email protected]> Tue, 4 Aug 2026 09:28:35 +0200
Newsgroups org.kernel.vger.git
Message-ID <[email protected]>
On Tue, Aug 04, 2026 at 09:21:45AM +0200, Patrick Steinhardt wrote:
> On Tue, Jul 28, 2026 at 04:13:42PM -0500, Justin Tobler wrote:
> > On 26/07/24 05:48AM, Patrick Steinhardt wrote:
> > > In a subsequent commit we'll make the creation of the on-disk data
> > > structures of an object database pluggable. This will lead to an
> > > in-between state where we have already configured the repository's
> > > object database, but it's not usable yet until we eventually call
> > > `create_object_directory()`.
> > >
> > > Defer the object database creation so that we handle both steps in the
> > > same function.
> > 
> > So IIUC, the repository gets configured via `apply_repository_format()`
> > which invokes `odb_new()`. In this patch a
> > APPLY_REPOSITORY_FORMAT_SKIP_ODB_CREATION flag is introduced to allow
> > the creation of the ODB to be delayed until after source specific
> > on-disk state has been created.
> > 
> > Naive question: would it be simpler to just require invoking `odb_new()`
> > explicitly after `apply_repository_format()` in all cases? There doesn't
> > appear to be too many callsites.
> 
> I don't think it would, mostly because the logic to figure out the
> object directory and the alternate object directory requires a bunch of
> logic.
> 
> I think it'll ultimately become simpler though once we move into the
> direction of what we've discussed in [1], where we said that we want to
> move handling of those environment variables into the "files" backend,
> too. And then it might make sense to revisit this.
> 
> Patrick

[1]: <[email protected]>