Git development
 help / color / mirror / Atom feed
From: Patrick Steinhardt <ps@pks.im>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org, Karthik Nayak <karthik.188@gmail.com>
Subject: Re: [PATCH 00/11] Fix inconsistent ref storage format terminology
Date: Mon, 7 Sep 2026 12:00:29 +0200	[thread overview]
Message-ID: <ap6LPf0Ks1xTTp4z@pks.im> (raw)
In-Reply-To: <xmqq8q5h3plt.fsf@gitster.g>

On Fri, Sep 04, 2026 at 10:15:10AM -0700, Junio C Hamano wrote:
> Patrick Steinhardt <ps@pks.im> writes:
> 
> > Hi,
> >
> > back when we gained support for reftables we of course introduced the
> > ability to control the reference storage format that is used by newly
> > created repositories. This infrastructure has grown over time, and
> > unfortunately without a lot of consistency:
> >
> >   - The command line parameter to specify the ref storage format is
> >     called "--ref-format=", while the corresponding repository extension
> >     is called "refStorage".
> >
> >   - In most cases we refer to the "ref storage format" in our docs, so
> >     calling it "--ref-format=" is inconsistent with them.
> >
> >   - It is possible to override the ref storage format via an environment
> >     variable that is called "GIT_REFERENCE_BACKEND", which is not even
> >     remotely consistent with anything else.
> >
> >   - There is also an "object format", but that format does not control
> >     how we store objects but rather whether we use SHA1 or SHA256.
> >
> > So in summary, it's a huge mess.
> 
> Unless you are unifying them all into a single ref-storage-format, I
> do not see much practical difference between ref-storage and
> ref-format.  They are both with insufficient clarity and details.

Well, the important difference is that we don't have conflicting
concerns of "--ref-format=" and "--object-format=" anymore, where the
former cares about the storage format and the latter cares about how the
objects themselves look.

> ref-format fails to convey "format" of what aspect of ref it is
> about (among "storage", "name", and others), ref-storage fails to
> convey what aspect of ref storage it is talking about (among
> "format", "medium", and others).

In any case, I'm happy to call this "ref-storage-format" instead. I
don't care too much about the naming, I really only want to fix the
scope conflict we have with the above two flags, and be consistent.
Resolving that scope conflict gives us a path forward for introducing
the object storage format extension and its accompanying flags.

So with your suggestion, it would be:

  - "--ref-storage-format=" and "--object-storage-format=" control the
    storage format used by Git.

  - "--object-format=" would continue to control the hash used for
    objects. This is still a tiny bit messy, as it could've been called
    "--object-hash=" if you ask me. But on the other, maybe we at one
    point in the future we will introduce an actual new representation
    for objects? If so, it gives us a bit more flexibility.

Will send a new version along these lines. Thanks!

Patrick

  reply	other threads:[~2026-09-07 10:00 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-04 10:36 [PATCH 00/11] Fix inconsistent ref storage format terminology Patrick Steinhardt
2026-09-04 10:36 ` [PATCH 01/11] builtin/init: rename "--ref-format=" to "--ref-storage=" Patrick Steinhardt
2026-09-04 13:05   ` Karthik Nayak
2026-09-07 10:00     ` Patrick Steinhardt
2026-09-04 10:36 ` [PATCH 02/11] builtin/clone: " Patrick Steinhardt
2026-09-04 10:36 ` [PATCH 03/11] builtin/refs: " Patrick Steinhardt
2026-09-04 10:36 ` [PATCH 04/11] builtin/submodule: " Patrick Steinhardt
2026-09-04 10:36 ` [PATCH 05/11] builtin/rev-parse: rename "--show-ref-format" to "--show-ref-storage" Patrick Steinhardt
2026-09-04 10:36 ` [PATCH 06/11] help: rename "default-ref-format" to "default-ref-storage" Patrick Steinhardt
2026-09-04 10:36 ` [PATCH 07/11] refs: expose function to parse reference URIs Patrick Steinhardt
2026-09-04 13:12   ` Karthik Nayak
2026-09-04 10:36 ` [PATCH 08/11] setup: refactor how we configure the ref storage format Patrick Steinhardt
2026-09-04 10:36 ` [PATCH 09/11] setup: rename ref storage format environment variables Patrick Steinhardt
2026-09-04 13:20   ` Karthik Nayak
2026-09-07 10:00     ` Patrick Steinhardt
2026-09-04 10:36 ` [PATCH 10/11] setup: rename "init.defaultRefFormat" to "init.defaultRefStorage" Patrick Steinhardt
2026-09-04 10:36 ` [PATCH 11/11] setup: allow "git init --ref-storage=" to specify a payload Patrick Steinhardt
2026-09-04 13:23 ` [PATCH 00/11] Fix inconsistent ref storage format terminology Karthik Nayak
2026-09-04 17:15 ` Junio C Hamano
2026-09-07 10:00   ` Patrick Steinhardt [this message]
2026-09-07 11:18 ` [PATCH v2 " Patrick Steinhardt
2026-09-07 11:18   ` [PATCH v2 01/11] builtin/init: rename "--ref-format=" to "--ref-storage-format=" Patrick Steinhardt
2026-09-08  9:01     ` Kaartic Sivaraam
2026-09-09  7:00       ` Patrick Steinhardt
2026-09-09  9:14         ` Kaartic Sivaraam
2026-09-07 11:18   ` [PATCH v2 02/11] builtin/clone: " Patrick Steinhardt
2026-09-08  9:21     ` Kaartic Sivaraam
2026-09-09  7:03       ` Patrick Steinhardt
2026-09-07 11:18   ` [PATCH v2 03/11] builtin/refs: " Patrick Steinhardt
2026-09-08 10:55     ` Kaartic Sivaraam
2026-09-09  7:03       ` Patrick Steinhardt
2026-09-07 11:18   ` [PATCH v2 04/11] builtin/submodule: " Patrick Steinhardt
2026-09-07 11:18   ` [PATCH v2 05/11] builtin/rev-parse: rename "--show-ref-format" to "--show-ref-storage-format" Patrick Steinhardt
2026-09-07 11:18   ` [PATCH v2 06/11] help: rename "default-ref-format" to "default-ref-storage-format" Patrick Steinhardt
2026-09-07 11:18   ` [PATCH v2 07/11] refs: expose function to parse reference URIs Patrick Steinhardt
2026-09-08 13:47     ` Kaartic Sivaraam
2026-09-09  7:03       ` Patrick Steinhardt
2026-09-07 11:18   ` [PATCH v2 08/11] setup: refactor how we configure the ref storage format Patrick Steinhardt
2026-09-09  8:00     ` Kaartic Sivaraam
2026-09-09  9:23       ` Patrick Steinhardt
2026-09-07 11:18   ` [PATCH v2 09/11] setup: rename ref storage format environment variables Patrick Steinhardt
2026-09-09  8:10     ` Kaartic Sivaraam
2026-09-09  9:23       ` Patrick Steinhardt
2026-09-07 11:18   ` [PATCH v2 10/11] setup: rename "init.defaultRefFormat" to "init.defaultRefStorageFormat" Patrick Steinhardt
2026-09-07 11:18   ` [PATCH v2 11/11] setup: allow "git init --ref-storage-format=" to specify a payload Patrick Steinhardt
2026-09-09  8:54     ` Kaartic Sivaraam
2026-09-09  9:23       ` Patrick Steinhardt
2026-09-09 11:12 ` [PATCH v3 00/13] Fix inconsistent ref storage format terminology Patrick Steinhardt
2026-09-09 11:12   ` [PATCH v3 01/13] parse-options: allow for hidden aliases Patrick Steinhardt
2026-09-09 11:12   ` [PATCH v3 02/13] builtin/init: rename "--ref-format=" to "--ref-storage-format=" Patrick Steinhardt
2026-09-09 11:12   ` [PATCH v3 03/13] builtin/clone: " Patrick Steinhardt
2026-09-09 11:12   ` [PATCH v3 04/13] builtin/refs: " Patrick Steinhardt
2026-09-09 11:12   ` [PATCH v3 05/13] builtin/submodule: " Patrick Steinhardt
2026-09-09 11:12   ` [PATCH v3 06/13] builtin/rev-parse: rename "--show-ref-format" to "--show-ref-storage-format" Patrick Steinhardt
2026-09-09 11:12   ` [PATCH v3 07/13] help: rename "default-ref-format" to "default-ref-storage-format" Patrick Steinhardt
2026-09-09 11:12   ` [PATCH v3 08/13] refs: expose function to parse reference URIs Patrick Steinhardt
2026-09-09 11:12   ` [PATCH v3 09/13] setup: refactor how we configure the ref storage format Patrick Steinhardt
2026-09-09 11:12   ` [PATCH v3 10/13] setup: rename ref storage format environment variables Patrick Steinhardt
2026-09-09 11:12   ` [PATCH v3 11/13] t: rename GIT_TEST_DEFAULT_REF_FORMAT Patrick Steinhardt
2026-09-09 11:12   ` [PATCH v3 12/13] setup: rename "init.defaultRefFormat" to "init.defaultRefStorageFormat" Patrick Steinhardt
2026-09-09 11:12   ` [PATCH v3 13/13] setup: allow "--ref-storage-format=" to specify a payload 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=ap6LPf0Ks1xTTp4z@pks.im \
    --to=ps@pks.im \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=karthik.188@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