Subject: Re: [PATCH 1/6] t0018: switch default branch name to main

From: Phillip Wood <[email-masked]>
Date: Thu, 28 Aug 2025 15:00:08 +0100

Hi Junio

On 27/08/2025 18:21, Junio C Hamano wrote:
> Phillip Wood <[email-masked]> writes:
> 
>> From: Phillip Wood <[email-masked]>
>>
>> These tests use "trunk" as the default branch name but the exact
>> name of the branch is incidental to testing if the advice message
>> includes it. ...
> 
> Would't we be better prepared for a future where advice messages may
> start including the current branch name, though, if we made sure we
> are on the branch whose name is known?

The advice message does include the current branch name, that's why the 
test needs to be updated when we change that name from "trunk" to 
"main". The sentence above is trying to say that it does not matter what 
that name is, we just need to check it appears in the advice message. I 
could see an argument for the tests not depending on git's default 
branch name if it changed frequently but realistically we're unlikely to 
change in again in the near future. If we did use a different name in 
the tests it is just as likely to cause objections and need to be 
changed as git's default name so I'm not sure it gains us much.
>> ... Git 3.0 will change the default branch name to "main"
>> and remove support for GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME so change
> 
> Will it?  I would have expected and hoped that this support won't be
> ripped out.  The political atomosphere to decide if a name is
> "correct" will change over time.  When somebody comes up with a
> reason to burn 'main', just like everybody moved out of 'master' a
> few years ago, wouldn't we be better off to keep this mechanism?
> 
> If we truly believe that we have chosen the forever-perfect name
> that nobody would ever bring up renaming again, we can rip the
> support out.  But I am not that optimistic.

If it's another 20 years until we change the default branch is it really 
worth supporting this variable until then? I find setting it in tests is 
mostly pointless boilerplate. When the variable was introduced in 
704fed9ea22 (tests: start moving to a different default main branch 
name, 2020-10-23) it was described as "This `GIT_TEST_*` variable is 
meant purely for the transitional period while the entire test suite is 
converted to use `main` as the initial branch name by default." so I was 
hoping we could remove it.
>> these test to use "main" instead of "topic".
> 
> You meant "trunk" here.

Will fix

Thanks

Phillip
>> Signed-off-by: Phillip Wood <[email-masked]>
>> ---
>>   t/t0018-advice.sh | 8 ++++----
>>   1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/t/t0018-advice.sh b/t/t0018-advice.sh
>> index f68e08d0b14..c695ade4be8 100755
>> --- a/t/t0018-advice.sh
>> +++ b/t/t0018-advice.sh
>> @@ -2,7 +2,7 @@
>>   
>>   test_description='Test advise_if_enabled functionality'
>>   
>> -GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=trunk
>> +GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
>>   export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
>>   
>>   . ./test-lib.sh
>> @@ -33,7 +33,7 @@ test_expect_success 'advice should not be printed when config variable is set to
>>   
>>   test_expect_success 'advice should not be printed when --no-advice is used' '
>>   	q_to_tab >expect <<-\EOF &&
>> -	On branch trunk
>> +	On branch main
>>   
>>   	No commits yet
>>   
>> @@ -55,7 +55,7 @@ test_expect_success 'advice should not be printed when --no-advice is used' '
>>   
>>   test_expect_success 'advice should not be printed when GIT_ADVICE is set to false' '
>>   	q_to_tab >expect <<-\EOF &&
>> -	On branch trunk
>> +	On branch main
>>   
>>   	No commits yet
>>   
>> @@ -77,7 +77,7 @@ test_expect_success 'advice should not be printed when GIT_ADVICE is set to fals
>>   
>>   test_expect_success 'advice should be printed when GIT_ADVICE is set to true' '
>>   	q_to_tab >expect <<-\EOF &&
>> -	On branch trunk
>> +	On branch main
>>   
>>   	No commits yet