All of lore.kernel.org
 help / color / mirror / Atom feed
From: Patrick Steinhardt <ps@pks.im>
To: Toon Claes <toon@iotcl.com>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>,
	Justin Tobler <jltobler@gmail.com>
Subject: Re: [PATCH v2 3/5] setup: defer object database creation
Date: Wed, 5 Aug 2026 09:27:59 +0200	[thread overview]
Message-ID: <anLl8Cy6Bkv5XA7-@pks.im> (raw)
In-Reply-To: <87bjbh67sl.fsf@emacs.iotcl.com>

On Tue, Aug 04, 2026 at 08:48:42PM +0200, Toon Claes wrote:
> Patrick Steinhardt <ps@pks.im> writes:
> 
> > 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.
> >
> > Signed-off-by: Patrick Steinhardt <ps@pks.im>
> > ---
> >  setup.c | 35 +++++++++++++++++++++++++++--------
> >  setup.h |  9 +++++++++
> >  2 files changed, 36 insertions(+), 8 deletions(-)
> >
> > diff --git a/setup.c b/setup.c
> > index 825572f5f1..a7b1b9eaef 100644
> > --- a/setup.c
> > +++ b/setup.c
> > @@ -1760,6 +1760,13 @@ enum discovery_result discover_git_directory_reason(struct strbuf *commondir,
> >  	return result;
> >  }
> >  
> > +static void get_object_directories(char **object_directory,
> > +				   char **alternate_object_directories)
> > +{
> > +	*object_directory = xstrdup_or_null(getenv(DB_ENVIRONMENT));
> > +	*alternate_object_directories = xstrdup_or_null(getenv(ALTERNATE_DB_ENVIRONMENT));
> > +}
> 
> Would it make sense to wrap these in a APPLY_REPOSITORY_FORMAT_HONOR_ENV
> guard?
> 
> I mean, below we call this function *only* when flags has that bit set.
> But the return values of that function are used at the bottom of
> apply_repository_format(), that's a bit awkard.
> 
> So can I suggest the following patch instead? That would remove the
> weird double pointer passing around, which feels a bit unneeded.

You're right, this is somewhat awkward. I have a different proposal
though: instead of creating a separate function, we can move handling of
environment variables into `odb_new()` itself. This also paves the way
for moving handling of these environment variables into the backend,
which is something I want to do soonish [1].

Patrick

[1]: https://lore.kernel.org/git/amLgMqkqxR8mKIbT@pks.im/

  reply	other threads:[~2026-08-05  7:28 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-24  3:48 [PATCH 0/5] odb: make creation of object database pluggable Patrick Steinhardt
2026-07-24  3:48 ` [PATCH 1/5] loose: load loose object map for the correct source Patrick Steinhardt
2026-07-24 17:26   ` Junio C Hamano
2026-07-28 20:14   ` Justin Tobler
2026-07-30 12:47     ` Toon Claes
2026-08-04  7:21       ` Patrick Steinhardt
2026-07-24  3:48 ` [PATCH 2/5] setup: detangle loading of loose object maps Patrick Steinhardt
2026-07-24 18:41   ` Junio C Hamano
2026-08-04  7:21     ` Patrick Steinhardt
2026-07-28 20:32   ` Justin Tobler
2026-07-30 14:27     ` Toon Claes
2026-08-04  7:21     ` Patrick Steinhardt
2026-07-24  3:48 ` [PATCH 3/5] setup: defer object database creation Patrick Steinhardt
2026-07-24 18:50   ` Junio C Hamano
2026-08-04  7:21     ` Patrick Steinhardt
2026-07-28 21:13   ` Justin Tobler
2026-08-04  7:21     ` Patrick Steinhardt
2026-08-04  7:28       ` Patrick Steinhardt
2026-07-24  3:48 ` [PATCH 4/5] odb/source: introduce function to map source type to name Patrick Steinhardt
2026-07-26 20:34   ` Junio C Hamano
2026-08-04  7:21     ` Patrick Steinhardt
2026-07-24  3:48 ` [PATCH 5/5] odb: make creation of on-disk structures pluggable Patrick Steinhardt
2026-07-26 20:42   ` Junio C Hamano
2026-08-04  7:21     ` Patrick Steinhardt
2026-07-28 21:23   ` Justin Tobler
2026-08-04  8:29 ` [PATCH v2 0/5] odb: make creation of object database pluggable Patrick Steinhardt
2026-08-04  8:29   ` [PATCH v2 1/5] loose: load loose object map for the correct source Patrick Steinhardt
2026-08-04  8:29   ` [PATCH v2 2/5] setup: detangle loading of loose object maps Patrick Steinhardt
2026-08-04  8:29   ` [PATCH v2 3/5] setup: defer object database creation Patrick Steinhardt
2026-08-04 18:48     ` Toon Claes
2026-08-05  7:27       ` Patrick Steinhardt [this message]
2026-08-04  8:29   ` [PATCH v2 4/5] odb/source: introduce function to map source type to name Patrick Steinhardt
2026-08-04  8:29   ` [PATCH v2 5/5] odb: make creation of on-disk structures pluggable Patrick Steinhardt
2026-08-04 16:36   ` [PATCH v2 0/5] odb: make creation of object database pluggable Justin Tobler
2026-08-05  9:28 ` [PATCH v3 0/6] " Patrick Steinhardt
2026-08-05  9:28   ` [PATCH v3 1/6] loose: load loose object map for the correct source Patrick Steinhardt
2026-08-05  9:28   ` [PATCH v3 2/6] setup: detangle loading of loose object maps Patrick Steinhardt
2026-08-05  9:28   ` [PATCH v3 3/6] setup: handle ODB-related environment variables in `odb_new()` Patrick Steinhardt
2026-08-05 13:29     ` Toon Claes
2026-08-06  6:04       ` Patrick Steinhardt
2026-08-05  9:28   ` [PATCH v3 4/6] setup: defer object database creation Patrick Steinhardt
2026-08-05 14:21     ` Toon Claes
2026-08-06  6:02       ` Patrick Steinhardt
2026-08-05  9:28   ` [PATCH v3 5/6] odb/source: introduce function to map source type to name Patrick Steinhardt
2026-08-05  9:28   ` [PATCH v3 6/6] odb: make creation of on-disk structures pluggable Patrick Steinhardt
2026-08-05 15:57     ` Toon Claes
2026-08-06  7:50 ` [PATCH v4 0/6] odb: make creation of object database pluggable Patrick Steinhardt
2026-08-06  7:50   ` [PATCH v4 1/6] loose: load loose object map for the correct source Patrick Steinhardt
2026-08-06  7:51   ` [PATCH v4 2/6] setup: detangle loading of loose object maps Patrick Steinhardt
2026-08-06  7:51   ` [PATCH v4 3/6] setup: handle ODB-related environment variables in `odb_new()` Patrick Steinhardt
2026-08-06  7:51   ` [PATCH v4 4/6] setup: defer object database creation Patrick Steinhardt
2026-08-06 14:23     ` Toon Claes
2026-08-06 14:54       ` Patrick Steinhardt
2026-08-06 17:39         ` Junio C Hamano
2026-08-06  7:51   ` [PATCH v4 5/6] odb/source: introduce function to map source type to name Patrick Steinhardt
2026-08-06  7:51   ` [PATCH v4 6/6] odb: make creation of on-disk structures pluggable Patrick Steinhardt
2026-08-06 14:26   ` [PATCH v4 0/6] odb: make creation of object database pluggable Toon Claes
2026-08-07  3:34 ` [PATCH v5 " Patrick Steinhardt
2026-08-07  3:34   ` [PATCH v5 1/6] loose: load loose object map for the correct source Patrick Steinhardt
2026-08-07  3:34   ` [PATCH v5 2/6] setup: detangle loading of loose object maps Patrick Steinhardt
2026-08-07  3:34   ` [PATCH v5 3/6] setup: handle ODB-related environment variables in `odb_new()` Patrick Steinhardt
2026-08-07  3:34   ` [PATCH v5 4/6] setup: defer object database creation Patrick Steinhardt
2026-08-07  4:28     ` Junio C Hamano
2026-08-07  7:16       ` Toon Claes
2026-08-07  3:34   ` [PATCH v5 5/6] odb/source: introduce function to map source type to name Patrick Steinhardt
2026-08-07  3:34   ` [PATCH v5 6/6] odb: make creation of on-disk structures pluggable Patrick Steinhardt
2026-08-07  7:17   ` [PATCH v5 0/6] odb: make creation of object database pluggable Toon Claes
2026-08-07  9:10     ` Patrick Steinhardt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=anLl8Cy6Bkv5XA7-@pks.im \
    --to=ps@pks.im \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jltobler@gmail.com \
    --cc=toon@iotcl.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.