From: "brian m. carlson" <sandals@crustytoothpaste.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: Patrick Steinhardt <ps@pks.im>,
git@vger.kernel.org, Karthik Nayak <karthik.188@gmail.com>,
K Jayatheerth <jayatheerthkulkarni2005@gmail.com>,
ryenus@gmail.com
Subject: Re: [PATCH 1/2] BreakingChanges: announce switch to "reftable" format
Date: Wed, 2 Jul 2025 21:21:25 +0000 [thread overview]
Message-ID: <aGWi1bZMlbKCgB74@fruit.crustytoothpaste.net> (raw)
In-Reply-To: <xmqqbjq2ed9e.fsf@gitster.g>
[-- Attachment #1: Type: text/plain, Size: 3479 bytes --]
On 2025-07-02 at 17:03:25, Junio C Hamano wrote:
> Patrick Steinhardt <ps@pks.im> writes:
>
> > diff --git a/Documentation/BreakingChanges.adoc b/Documentation/BreakingChanges.adoc
> > index c6bd94986c5..c96b5319cdd 100644
> > --- a/Documentation/BreakingChanges.adoc
> > +++ b/Documentation/BreakingChanges.adoc
> > @@ -118,6 +118,45 @@ Cf. <2f5de416-04ba-c23d-1e0b-83bb655829a7@zombino.com>,
> > <20170223155046.e7nxivfwqqoprsqj@LykOS.localdomain>,
> > <CA+EOSBncr=4a4d8n9xS4FNehyebpmX8JiUwCsXD47EQDE+DiUQ@mail.gmail.com>.
> >
> > +* The default storage format for references in newly created repositories will
> > + be changed from "files" to "reftable". The "reftable" format provides
> > + multiple advantages over the "files" format:
> > ++
> > + ** It is impossible to store two references that only differ in casing on
> > ...
> > + ** Writing many references at once is slow with the "files" backend because
> > + every reference is created as a separate file. The "reftable" backend
> > + significantly outperforms the "files" backend by multiple orders of
> > + magnitude.
>
> These list benefits of using "reftable". Can we also add one point
> that stresses why we want to make it the default? Something like
> "Having to do X once per user to make them opt-in is too cumbersome"
> is probably good enough.
Maybe an additional line about "most people pick the default option and,
given the information above, we think that users will have a better
experience with reftable as the default" (especially, in my view, users
on case-insensitive file systems).
> > +A prerequisite for this change is that the ecosystem is ready to support the
> > +"reftable" format. Most importantly, alternative implementations of Git like
> > +JGit, libgit2 and Gitoxide need to support it.
>
> ... in order for them to access the same repository.
>
> How common is it to use a single repository from these multiple
> implementations these days, I have to wonder?
Pretty common. I know Rust's Cargo package manager uses libgit2 and I'm
sure there are other development tools that do so. At a previous
employer, we had a linting tool that used libgit2 and we used
command-line Git for normal operations. I don't work with Java on a
regular basis, but I expect that similar kinds of things happen there,
especially in Java-based IDEs.
> > diff --git a/t/t0001-init.sh b/t/t0001-init.sh
> > index f11a40811f2..e0f27484192 100755
> > --- a/t/t0001-init.sh
> > +++ b/t/t0001-init.sh
> > @@ -658,6 +658,22 @@ test_expect_success 'init warns about invalid init.defaultRefFormat' '
> > test_cmp expected actual
> > '
> >
> > +test_expect_success 'default ref format' '
> > + test_when_finished "rm -rf refformat" &&
> > + (
> > + sane_unset GIT_DEFAULT_REF_FORMAT &&
> > + git init refformat
> > + ) &&
> > + if test_have_prereq WITH_BREAKING_CHANGES
> > + then
> > + echo reftable >expect
> > + else
> > + echo files >expect
> > + fi &&
> > + git -C refformat rev-parse --show-ref-format >actual &&
> > + test_cmp expect actual
> > +'
I might just make a recommendation here for a `default-ref-format` key
(or some similar name) to `git version --build-options` as well. That
will get put in bug reports and troubleshooting output and will help
people figure out what might be going wrong if there are any problems.
--
brian m. carlson (they/them)
Toronto, Ontario, CA
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 262 bytes --]
next prev parent reply other threads:[~2025-07-02 21:21 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-02 10:14 [PATCH 0/2] Add reftable by default as a breaking change Patrick Steinhardt
2025-07-02 10:14 ` [PATCH 1/2] BreakingChanges: announce switch to "reftable" format Patrick Steinhardt
2025-07-02 17:03 ` Junio C Hamano
2025-07-02 21:21 ` brian m. carlson [this message]
2025-07-03 4:43 ` Patrick Steinhardt
2025-07-03 4:43 ` Patrick Steinhardt
2025-07-02 17:17 ` Justin Tobler
2025-07-03 5:00 ` Patrick Steinhardt
2025-07-02 10:14 ` [PATCH 2/2] setup: use "reftable" format when experimental features are enabled Patrick Steinhardt
2025-07-03 6:15 ` [PATCH v2 0/2] Add reftable by default as a breaking change Patrick Steinhardt
2025-07-03 6:15 ` [PATCH v2 1/2] BreakingChanges: announce switch to "reftable" format Patrick Steinhardt
2025-07-03 10:54 ` Karthik Nayak
2025-07-03 11:42 ` Patrick Steinhardt
2025-07-03 12:24 ` Karthik Nayak
2025-07-03 13:08 ` Patrick Steinhardt
2025-07-03 6:15 ` [PATCH v2 2/2] setup: use "reftable" format when experimental features are enabled Patrick Steinhardt
2025-07-07 5:37 ` [PATCH v2 0/2] Add reftable by default as a breaking change Junio C Hamano
2025-07-04 9:42 ` [PATCH v3 " Patrick Steinhardt
2025-07-04 9:42 ` [PATCH v3 1/2] BreakingChanges: announce switch to "reftable" format Patrick Steinhardt
2025-07-04 9:42 ` [PATCH v3 2/2] setup: use "reftable" format when experimental features are enabled Patrick Steinhardt
2025-07-04 13:14 ` [PATCH v3 0/2] Add reftable by default as a breaking change 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=aGWi1bZMlbKCgB74@fruit.crustytoothpaste.net \
--to=sandals@crustytoothpaste.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jayatheerthkulkarni2005@gmail.com \
--cc=karthik.188@gmail.com \
--cc=ps@pks.im \
--cc=ryenus@gmail.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).