From: Patrick Steinhardt <ps@pks.im>
To: Karthik Nayak <karthik.188@gmail.com>
Cc: git@vger.kernel.org, Toon Claes <toon@iotcl.com>,
Junio C Hamano <gitster@pobox.com>,
Justin Tobler <jltobler@gmail.com>
Subject: Re: [PATCH v5 0/9] odb: write alternates at creation time
Date: Fri, 11 Sep 2026 07:15:16 +0200 [thread overview]
Message-ID: <aqOOZB0wQ8FNGVE6@pks.im> (raw)
In-Reply-To: <CAOLa=ZRYsJL_0sKnfHD0PJO+5c+BKSMiuN20PeQHKJin82TJDw@mail.gmail.com>
On Thu, Sep 10, 2026 at 12:53:21PM -0700, Karthik Nayak wrote:
> Patrick Steinhardt <ps@pks.im> writes:
>
> > Hi,
> >
> > writing alternates into the object database currently happens via
> > `odb_source_write_alternate()`. But while that creates the ability to
> > create alternates at arbitrary points of a source's lifetime, we don't
> > use that functionality in the first place. Instead, we only ever write
> > alternates when creating a new repository.
> >
> > This design is suboptimal due to a couple of reasons:
> >
> > - It requires us to have a `write_alternates()` callback, which is
> > overblown as we never even write alternates to an object database
> > after it has been created.
> >
> > - We're about to make alternates an implementation detail of the
> > object database's backend in a future patch series, so alternate
> > implementations may not even support them.
> >
> > - The backend has more flexibility with how exactly alternates are
> > configured when it itself is in full control over their setup at the
> > time where it creates the object database itself.
> >
> > This patch series thus refactors how we handle alternates so that we
> > don't write them ad-hoc anymore. Instead, the series introduces a new
> > option for `odb_source_create_on_disk()` that makes it handle those
> > alternates at creation time.
> >
> > This is part of the bigger goal of moving handling of alternates into
> > the "files" backend.
> >
> > This series is built on top of 2c3adbb2c4 (The 18th batch, 2026-08-24)
> > with ps/odb-eagerly-load-alternates at 0076dc9f81 (odb: drop
> > `alternates_db` field, 2026-08-17) merged into it.
> >
> > Changes in v5:
> > - Rename `add_one_alternate` and `add_one_alternate_data` to
> > `collect_one_alternate` and `collect_alternates_data` to clarify
> > their intent a bit.
> > - Drop extra parameter in `collect_alternates()`.
> > - Clarify why we compute `commondir` even though it's unused.
> > - Link to v4: https://patch.msgid.link/20260909-pks-odb-write-alternates-at-creation-time-v4-0-d8a78ffc32e4@pks.im
> >
>
> Looks like you missed my comment/question in
> CAOLa=ZQaPstiQmXm9=TyWPUxL6X2=Lcqeg6y2XeXzSJDpq-GBA@mail.gmail.com, but
> otherwise looks good :)
Oh, indeed, I somehow overlooked that mail. Replied to it now, but I
don't think it requires further changes. Thanks!
Patrick
next prev parent reply other threads:[~2026-09-11 5:15 UTC|newest]
Thread overview: 85+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-25 14:11 [PATCH 0/8] odb: write alternates at creation time Patrick Steinhardt
2026-08-25 14:11 ` [PATCH 1/8] builtin/clone: defer setup of the object database Patrick Steinhardt
2026-08-25 14:11 ` [PATCH 2/8] builtin/clone: move around `setup_reference()` Patrick Steinhardt
2026-08-25 14:11 ` [PATCH 3/8] builtin/clone: refactor handling of "--reference{,-if-able}" Patrick Steinhardt
2026-08-28 14:52 ` Toon Claes
2026-08-25 14:11 ` [PATCH 4/8] builtin/clone: move setup of alternates for shared local clones Patrick Steinhardt
2026-08-28 14:52 ` Toon Claes
2026-08-25 14:11 ` [PATCH 5/8] builtin/clone: move setup of alternates for non-shared " Patrick Steinhardt
2026-08-28 14:52 ` Toon Claes
2026-08-31 8:13 ` Patrick Steinhardt
2026-08-25 14:11 ` [PATCH 6/8] odb/source: support writing alternates when creating the database Patrick Steinhardt
2026-08-28 14:53 ` Toon Claes
2026-08-31 8:14 ` Patrick Steinhardt
2026-08-28 19:13 ` Junio C Hamano
2026-08-31 8:14 ` Patrick Steinhardt
2026-08-25 14:11 ` [PATCH 7/8] builtin/clone: write alternates via `odb_create_on_disk()` Patrick Steinhardt
2026-08-25 14:11 ` [PATCH 8/8] odb/source: remove the ability to write alternates Patrick Steinhardt
2026-08-28 14:53 ` Toon Claes
2026-08-31 8:14 ` Patrick Steinhardt
2026-08-31 10:02 ` [PATCH v2 0/8] odb: write alternates at creation time Patrick Steinhardt
2026-08-31 10:02 ` [PATCH v2 1/8] builtin/clone: defer setup of the object database Patrick Steinhardt
2026-09-06 16:42 ` Justin Tobler
2026-09-07 7:23 ` Patrick Steinhardt
2026-08-31 10:02 ` [PATCH v2 2/8] builtin/clone: move around `setup_reference()` Patrick Steinhardt
2026-08-31 10:02 ` [PATCH v2 3/8] builtin/clone: refactor handling of "--reference{,-if-able}" Patrick Steinhardt
2026-08-31 10:02 ` [PATCH v2 4/8] builtin/clone: move setup of alternates for shared local clones Patrick Steinhardt
2026-08-31 10:02 ` [PATCH v2 5/8] builtin/clone: move setup of alternates for non-shared " Patrick Steinhardt
2026-08-31 10:02 ` [PATCH v2 6/8] odb/source: support writing alternates when creating the database Patrick Steinhardt
2026-09-06 17:02 ` Justin Tobler
2026-09-07 7:23 ` Patrick Steinhardt
2026-08-31 10:02 ` [PATCH v2 7/8] builtin/clone: write alternates via `odb_create_on_disk()` Patrick Steinhardt
2026-09-06 17:07 ` Justin Tobler
2026-08-31 10:02 ` [PATCH v2 8/8] odb/source: remove the ability to write alternates Patrick Steinhardt
2026-09-01 6:09 ` [PATCH v2 0/8] odb: write alternates at creation time Toon Claes
2026-09-07 8:25 ` [PATCH v3 0/9] " Patrick Steinhardt
2026-09-07 8:25 ` [PATCH v3 1/9] setup: split up concerns of `init_db()` Patrick Steinhardt
2026-09-08 22:12 ` Justin Tobler
2026-09-09 5:48 ` Patrick Steinhardt
2026-09-07 8:25 ` [PATCH v3 2/9] builtin/clone: defer setup of the object database Patrick Steinhardt
2026-09-08 22:20 ` Justin Tobler
2026-09-09 5:48 ` Patrick Steinhardt
2026-09-07 8:25 ` [PATCH v3 3/9] builtin/clone: move around `setup_reference()` Patrick Steinhardt
2026-09-07 8:25 ` [PATCH v3 4/9] builtin/clone: refactor handling of "--reference{,-if-able}" Patrick Steinhardt
2026-09-07 8:25 ` [PATCH v3 5/9] builtin/clone: move setup of alternates for shared local clones Patrick Steinhardt
2026-09-08 22:43 ` Justin Tobler
2026-09-08 22:48 ` Justin Tobler
2026-09-07 8:25 ` [PATCH v3 6/9] builtin/clone: move setup of alternates for non-shared " Patrick Steinhardt
2026-09-07 8:25 ` [PATCH v3 7/9] odb/source: support writing alternates when creating the database Patrick Steinhardt
2026-09-07 8:25 ` [PATCH v3 8/9] builtin/clone: write alternates via `odb_create_on_disk()` Patrick Steinhardt
2026-09-07 8:25 ` [PATCH v3 9/9] odb/source: remove the ability to write alternates Patrick Steinhardt
2026-09-09 5:48 ` [PATCH v4 0/9] odb: write alternates at creation time Patrick Steinhardt
2026-09-09 5:48 ` [PATCH v4 1/9] setup: split up concerns of `init_db()` Patrick Steinhardt
2026-09-10 9:24 ` Karthik Nayak
2026-09-09 5:48 ` [PATCH v4 2/9] builtin/clone: defer setup of the object database Patrick Steinhardt
2026-09-10 9:28 ` Karthik Nayak
2026-09-09 5:48 ` [PATCH v4 3/9] builtin/clone: move around `setup_reference()` Patrick Steinhardt
2026-09-10 9:29 ` Karthik Nayak
2026-09-09 5:48 ` [PATCH v4 4/9] builtin/clone: refactor handling of "--reference{,-if-able}" Patrick Steinhardt
2026-09-10 9:37 ` Karthik Nayak
2026-09-10 14:26 ` Patrick Steinhardt
2026-09-09 5:48 ` [PATCH v4 5/9] builtin/clone: move setup of alternates for shared local clones Patrick Steinhardt
2026-09-10 10:52 ` Karthik Nayak
2026-09-10 10:54 ` Karthik Nayak
2026-09-10 14:26 ` Patrick Steinhardt
2026-09-09 5:48 ` [PATCH v4 6/9] builtin/clone: move setup of alternates for non-shared " Patrick Steinhardt
2026-09-10 11:00 ` Karthik Nayak
2026-09-09 5:48 ` [PATCH v4 7/9] odb/source: support writing alternates when creating the database Patrick Steinhardt
2026-09-10 11:10 ` Karthik Nayak
2026-09-11 5:15 ` Patrick Steinhardt
2026-09-09 5:48 ` [PATCH v4 8/9] builtin/clone: write alternates via `odb_create_on_disk()` Patrick Steinhardt
2026-09-09 5:48 ` [PATCH v4 9/9] odb/source: remove the ability to write alternates Patrick Steinhardt
2026-09-09 18:30 ` [PATCH v4 0/9] odb: write alternates at creation time Justin Tobler
2026-09-10 15:09 ` [PATCH v5 " Patrick Steinhardt
2026-09-10 15:09 ` [PATCH v5 1/9] setup: split up concerns of `init_db()` Patrick Steinhardt
2026-09-10 15:09 ` [PATCH v5 2/9] builtin/clone: defer setup of the object database Patrick Steinhardt
2026-09-10 15:09 ` [PATCH v5 3/9] builtin/clone: move around `setup_reference()` Patrick Steinhardt
2026-09-10 15:09 ` [PATCH v5 4/9] builtin/clone: refactor handling of "--reference{,-if-able}" Patrick Steinhardt
2026-09-10 15:09 ` [PATCH v5 5/9] builtin/clone: move setup of alternates for shared local clones Patrick Steinhardt
2026-09-10 15:09 ` [PATCH v5 6/9] builtin/clone: move setup of alternates for non-shared " Patrick Steinhardt
2026-09-10 15:09 ` [PATCH v5 7/9] odb/source: support writing alternates when creating the database Patrick Steinhardt
2026-09-10 15:09 ` [PATCH v5 8/9] builtin/clone: write alternates via `odb_create_on_disk()` Patrick Steinhardt
2026-09-10 15:09 ` [PATCH v5 9/9] odb/source: remove the ability to write alternates Patrick Steinhardt
2026-09-10 19:53 ` [PATCH v5 0/9] odb: write alternates at creation time Karthik Nayak
2026-09-11 5:15 ` Patrick Steinhardt [this message]
2026-09-14 10:22 ` Karthik Nayak
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=aqOOZB0wQ8FNGVE6@pks.im \
--to=ps@pks.im \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jltobler@gmail.com \
--cc=karthik.188@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).