Subject: Re: [PATCH v5 7/9] BreakingChanges: announce Rust becoming mandatory

From: SZEDER Gábor <[email-masked]>
Date: Mon, 22 Sep 2025 21:34:15 +0200

On Thu, Sep 18, 2025 at 01:19:19AM +0000, brian m. carlson wrote:
> On 2025-09-17 at 22:09:10, SZEDER Gábor wrote:
> > Providing an LTS release for those platforms that can't jump on the
> > Rust bandwagon is great, but...
> > 
> > Git 3.0 will switch the default hash algorithm for newly initialized
> > repositories to SHA-256, which, presumably, will also encourage SHA-1
> > -> SHA-256 migrations in existing repositories.  Alas, it appears that
> > the SHA-1/SHA-256 interop feature will only be available in Rust.
> > 
> > How will this affect those platforms without Rust?  What will and
> > won't work on such platforms?
> 
> On Git 3.0, nothing will work without Rust because it will be mandatory.

Well, "What will and won't work with respect to hash transition" was
what I meant but, alas, didn't convey.

> However, people who want to perform the conversion can do that by
> booting a Linux VM[0] and converting the repository there, then pushing
> it somewhere.  The only inconvenience is that you'll have to have a flag
> day for working with the repository on older Git: you won't be able to
> dynamically pull from or push to a repository with a different main
> algorithm than you.
> 
> One of my first patches is that setting extensions.compatObjectFormat
> without Rust will simply die and say that's not supported.  If that
> config value is unset, then Git up to 3.0 will simply function as
> normal, so full single-hash compatibility is assured.  We already have
> that: SHA-256 repositories work just fine with SHA-256 remotes and SHA-1
> repositories work just fine with SHA-1 remotes, but they're currently
> not interoperable.

Thanks for the explanation.  I think this would indeed be a worthwhile
addition to the commit message, or perhaps even to the BreakingChanges
document.

> > I think it should be called out explicitly in the justification that
> > whatever limitations this imposes on those platforms with respect to
> > hash function transition, the project has duly considered that and is
> > OK with it.
> 
> I am fine with this and I don't think this is a problem.

Not sure I can agree with that, though.

> I realize the decision to incorporate Rust was made recently,

Indeed it was.