All of lore.kernel.org
 help / color / mirror / Atom feed
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 --]

  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 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.