From: Patrick Steinhardt <ps@pks.im>
To: Karthik Nayak <karthik.188@gmail.com>
Cc: git@vger.kernel.org,
Kristoffer Haugsbakk <kristofferhaugsbakk@fastmail.com>,
Junio C Hamano <gitster@pobox.com>
Subject: Re: [PATCH v2 4/8] repository: stop initializing the object database in `repo_set_gitdir()`
Date: Thu, 4 Jun 2026 08:08:38 +0200 [thread overview]
Message-ID: <aiEWZo7Y-UXK4N3x@pks.im> (raw)
In-Reply-To: <CAOLa=ZQ5u+J-f=xS7RDym0cwt+=R2dzMFo5P34cp-CBbza7NRg@mail.gmail.com>
On Wed, Jun 03, 2026 at 05:49:50AM -0700, Karthik Nayak wrote:
> Patrick Steinhardt <ps@pks.im> writes:
> > diff --git a/repository.c b/repository.c
> > index 58a13f7c4f..2c2395105f 100644
> > --- a/repository.c
> > +++ b/repository.c
> > @@ -181,12 +181,6 @@ void repo_set_gitdir(struct repository *repo,
> > free(old_gitdir);
> >
> > repo_set_commondir(repo, o->commondir);
> > -
> > - if (!repo->objects)
> > - repo->objects = odb_new(repo, o->object_dir, o->alternate_db);
> > - else if (!o->skip_initializing_odb)
> > - BUG("cannot reinitialize an already-initialized object directory");
> > -
>
> This always confuses me, so we were creating the odb even if
> `o->skip_initializing_odb` was set to true, if `repo->objects` didn't
> exist. Weird.
Agreed, it was weird. It was my first iteration towards centralizing
`odb_new()`: before we had the above logic we were basically recreating
the ODB multiple times, which was even more weird. At least things are
getting somewhat sensible with this patch now.
Patrick
next prev parent reply other threads:[~2026-06-04 6:08 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-21 7:42 [PATCH 0/8] setup: centralize object database creation Patrick Steinhardt
2026-05-21 7:42 ` [PATCH 1/8] t0001: plug test gaps for git-init(1) with GIT_OBJECT_DIRECTORY Patrick Steinhardt
2026-05-21 16:49 ` Junio C Hamano
2026-05-21 17:51 ` Kristoffer Haugsbakk
2026-05-22 6:06 ` Patrick Steinhardt
2026-05-22 9:05 ` Kristoffer Haugsbakk
2026-05-21 7:42 ` [PATCH 2/8] setup: drop `setup_git_env()` Patrick Steinhardt
2026-05-21 7:42 ` [PATCH 3/8] setup: deduplicate logic to apply repository format Patrick Steinhardt
2026-05-21 7:42 ` [PATCH 4/8] repository: stop initializing the object database in `repo_set_gitdir()` Patrick Steinhardt
2026-05-21 7:42 ` [PATCH 5/8] setup: stop creating the object database in `setup_git_env()` Patrick Steinhardt
2026-05-21 7:42 ` [PATCH 6/8] setup: stop initializing object database without repository Patrick Steinhardt
2026-05-21 7:42 ` [PATCH 7/8] repository: stop reading loose object map twice on repo init Patrick Steinhardt
2026-05-21 7:42 ` [PATCH 8/8] setup: construct object database in `apply_repository_format()` Patrick Steinhardt
2026-05-21 17:59 ` Junio C Hamano
2026-05-22 6:03 ` Patrick Steinhardt
2026-05-22 0:32 ` [PATCH 0/8] setup: centralize object database creation Junio C Hamano
2026-05-22 6:03 ` Patrick Steinhardt
2026-05-26 5:56 ` [PATCH v2 " Patrick Steinhardt
2026-05-26 5:56 ` [PATCH v2 1/8] t0001: plug test gaps for git-init(1) with GIT_OBJECT_DIRECTORY Patrick Steinhardt
2026-06-03 12:22 ` Karthik Nayak
2026-05-26 5:56 ` [PATCH v2 2/8] setup: drop `setup_git_env()` Patrick Steinhardt
2026-05-26 5:56 ` [PATCH v2 3/8] setup: deduplicate logic to apply repository format Patrick Steinhardt
2026-06-03 12:43 ` Karthik Nayak
2026-06-04 6:08 ` Patrick Steinhardt
2026-05-26 5:56 ` [PATCH v2 4/8] repository: stop initializing the object database in `repo_set_gitdir()` Patrick Steinhardt
2026-06-03 12:49 ` Karthik Nayak
2026-06-04 6:08 ` Patrick Steinhardt [this message]
2026-05-26 5:57 ` [PATCH v2 5/8] setup: stop creating the object database in `setup_git_env()` Patrick Steinhardt
2026-06-03 12:57 ` Karthik Nayak
2026-05-26 5:57 ` [PATCH v2 6/8] setup: stop initializing object database without repository Patrick Steinhardt
2026-05-26 5:57 ` [PATCH v2 7/8] repository: stop reading loose object map twice on repo init Patrick Steinhardt
2026-05-26 5:57 ` [PATCH v2 8/8] setup: construct object database in `apply_repository_format()` Patrick Steinhardt
2026-06-03 13:04 ` [PATCH v2 0/8] setup: centralize object database creation Karthik Nayak
2026-06-04 6:08 ` Patrick Steinhardt
2026-06-04 7:46 ` [PATCH v3 " Patrick Steinhardt
2026-06-04 7:46 ` [PATCH v3 1/8] t0001: plug test gaps for git-init(1) with GIT_OBJECT_DIRECTORY Patrick Steinhardt
2026-06-04 7:46 ` [PATCH v3 2/8] setup: drop `setup_git_env()` Patrick Steinhardt
2026-06-04 7:46 ` [PATCH v3 3/8] setup: deduplicate logic to apply repository format Patrick Steinhardt
2026-06-04 7:46 ` [PATCH v3 4/8] repository: stop initializing the object database in `repo_set_gitdir()` Patrick Steinhardt
2026-06-04 7:46 ` [PATCH v3 5/8] setup: stop creating the object database in `setup_git_env()` Patrick Steinhardt
2026-06-04 7:46 ` [PATCH v3 6/8] setup: stop initializing object database without repository Patrick Steinhardt
2026-06-04 7:46 ` [PATCH v3 7/8] repository: stop reading loose object map twice on repo init Patrick Steinhardt
2026-06-04 7:46 ` [PATCH v3 8/8] setup: construct object database in `apply_repository_format()` 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=aiEWZo7Y-UXK4N3x@pks.im \
--to=ps@pks.im \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=karthik.188@gmail.com \
--cc=kristofferhaugsbakk@fastmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox