Subject: Re: When should we release Git 3.0?

From: "brian m. carlson" <[email-masked]>
Date: Thu, 2 Oct 2025 22:33:59 +0000

On 2025-10-01 at 07:13:12, Luca Milanesio wrote:
> > I personally do not want the interoperability work to be a blocker.  I
> > haven't really heard other commitments of contributors who want to work
> > on it and I don't really want to have to run full tilt trying to get it
> > out.  However, some other people may feel differently, in which I case I
> > encourage their participation in the project.
> 
> Sure, happy to participate.

Fantastic.  If you're interested, you can get the current state of the
project from the `sha256-interop` branch at
https://github.com/bk2204/git.git.  This is frequently rebased, but
mostly to squash down patches or add new features.  It is based on v7 of
Patrick Steinhardt's Rust series and will effectively require
`WITH_RUST=1` to function.

One really valuable thing that you could work on if you like is a tool
to do in-place migration of repositories to add a compatibility
algorithm, so SHA-1 repositories would have SHA-256 compatibility added
on top.  That might look like this:

* Recursively convert submodules, if any.
* Build a loose object map for any submodule commits that exist in the
  history.
* Repack all the loose objects into a pack (including using a cruft pack
  if necessary).
* Regenerate the indexes for the pack using pack index v3.

This might be a good subcommand for something like a `git hash`
command, maybe `git hash convert`.  We'd probably want to anticipate
maybe in the future having a mode that converts the main algorithm, too,
although that need not be implemented now.

You should be able to test this end-to-end with Git's repository, since
it has submodules.
-- 
brian m. carlson (they/them)
Toronto, Ontario, CA