Subject: Re: [PATCH 6/6] breaking-changes: switch default branch to main

From: Patrick Steinhardt <[email-masked]>
Date: Wed, 3 Sep 2025 06:44:46 +0200

On Tue, Sep 02, 2025 at 04:13:27PM +0100, Phillip Wood wrote:
> On 02/09/2025 12:36, Patrick Steinhardt wrote:
> > On Wed, Aug 27, 2025 at 04:24:50PM +0100, Phillip Wood wrote:
> > > From: Phillip Wood <[email-masked]>
> > > 
> > > The advice printed when init.defaultBranch is not set is
> > > updated to say that the default will change to "main" in Git
> > > 3.0. Building with WITH_BREAKING_CHANGES enabled removes the advice,
> > > changes the default branch name is "main" and removes support for
> > 
> > s/is/to/
> > 
> > > GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME. The code in guess_remote_head()
> > 
> > As Junio already mentioned, I don't really think it's necessary to drop
> > `GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME`, making much of this commit
> > series obsolete.
> 
> I'm happy to drop those patches if there is a consensus that
> GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME is still useful after we've switched
> the branch name. I'm still not quite sure what it is useful for though.
> Removing it makes it clear that the tests are relying on the builtin default
> branch name that users see rather than some special name used only for
> tests.

We may eventually want to remove the whole infra. But I just don't think
it's necessary as part of the Git 3.0 deprecation and that we can rather
do it as a follow-up once Git 3.0 is out of the door.

IIRC, the initial idea behind this variable was to adapt tests to not
even care what the default initial branch name is in the first place.
Tests should be agnostic of that name and use e.g. git-symbolic-ref(1)
to figure out what HEAD points to. So maybe we should follow through
with that idea and start refactoring tests into this direction so that
they never set or read the variable in the first place.

Could very well be that I misremember though.

Patrick