Thread (44 messages) flat view 44 messages, 4 authors, 9h ago

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help