Re: [PATCH 3/5] setup: defer object database creation
From: Patrick Steinhardt <hidden>
Date: 2026-08-04 07:21:47
On Tue, Jul 28, 2026 at 04:13:42PM -0500, Justin Tobler wrote:
On 26/07/24 05:48AM, Patrick Steinhardt wrote:quoted
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