git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFC/PATCH] WIP: add deprecation & experimental process/interface

From
Jeff King <peff@peff.net>
Date
May 29, 2017, 14:38 UTC
Message-ID
<20170529143832.65hjawks74co6tqe@sigill.intra.peff.net>
In-Reply-To
<CACBZZX5SbYo5fVPtK6LW1FF96nR5591RHHC-5wdjW-fmg1R0EQ@mail.gmail.com>
On Mon, May 29, 2017 at 01:20:02PM +0200, Ævar Arnfjörð Bjarmason wrote:
Show 16 quoted lines
> >>  * Add a new config variable `core.version`. E.g. `core.version =
> >>    2.14.0` With this the user can specify that they'd like
> >>    new/experimental features introduced in that version (and below),
> >>    as well as immediately getting new deprecations added in that
> >>    version as errors.
> >
> > We have extensions.* for this purpose (or close to this purpose). I
> 
> From reading repository-version.txt it seems unrelated to what I'd
> like to do. I.e. there you'd like to introduce a hard breakage and
> it's already documented that if you encounter some extensions.* keys
> you don't understand you *must not* proceed.
> 
> Whereas for this you'd like to e.g. turn on some experimental feature
> in 2.16, but if you're running a 2.14 git you'd like it to just ignore
> that config key it doesn't know about instead of git breaking.

Right. repostoryformatversion (and extensions) is about the on-disk format of a repo. If I understand correctly, this is about the user specifying their preferred behaviors. Which is totally orthogonal.

The former must be set in the repo-level .git/config, and would generally be set by Git itself when it writes a repo using that feature (e.g., upcoming ref backends). But this new thing would likely be set in the ~/.gitconfig explicitly by the user, when they want to change the behavior profile.

For that reason, I'd suggest using a name that is a little different from "core.version", since it's easily missed up with "core.repositoryformatversion". But that's a minor detail.

-Peff
Previous: Ævar Arnfjörð BjarmasonNext: Junio C Hamano
Message 7 of 8 in “WIP: add deprecation & experimental process/interface”
  1. WIP: add deprecation & experimental process/interfaceÆvar Arnfjörð Bjarmason, May 27, 2017
  2. Junio C HamanoMay 28, 2017
  3. Junio C HamanoMay 29, 2017
  4. Ævar Arnfjörð BjarmasonMay 29, 2017
  5. Duy NguyenMay 29, 2017
  6. Ævar Arnfjörð BjarmasonMay 29, 2017
  7. Jeff KingMay 29, 2017
  8. Junio C HamanoMay 30, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.