Subject: Re: [PATCH v3] submodule: fetch missing objects from default remote

From: Junio C Hamano <[email-masked]>
Date: Fri, 23 Jan 2026 18:18:25 -0800

Junio C Hamano <[email-masked]> writes:

> Nasser Grainawi <[email-masked]> writes:
>
>> diff --git a/t/t5572-pull-submodule.sh b/t/t5572-pull-submodule.sh
>> index 45f384dd32..faafe31409 100755
>> --- a/t/t5572-pull-submodule.sh
>> +++ b/t/t5572-pull-submodule.sh
>> @@ -257,7 +257,26 @@ test_expect_success 'fetch submodule remote of different name from superproject'
>>  	git -C a-submodule reset --hard HEAD^^ &&
>>  
>>  	git -C child pull --no-recurse-submodules &&
>> -	git -C child submodule update
>> +	git -C child submodule update &&
>> +	test_path_is_file child/a-submodule/moreecho.t
>> +'
>> +
>> +test_expect_success 'fetch submodule remote of different non-origin name from superproject' '
>> +	git -C child/a-submodule remote rename origin o2 &&
>> +
>> +	# Create commit that is unreachable from current master branch
>> +	git -C a-submodule checkout -b newmain2 master^ &&
>
> This test assumes that the first branch created by default is
> 'master', which will break in one of the CI jobs:
>
>   https://github.com/git/git/actions/runs/21304166518/job/61328461844#step:9:1942

For now, I've queued two fix-up patches on top of the posted patch
to avoid CI breakages when the topic is merged to 'seen'.  One is to
rename t7425-submodule-get-default-remote.sh to t7426-submodule-get-default-remote.sh
(both filename and the reference to it in t/meson.build), and the
other one is the following.

----- >8 -----
Subject: [PATCH] SQUASH??? fixup

The test as posted breaks when run with

    $ make WITH_BREAKING_CHANGES=YesPlease test

as the added part assumes that the default branch name is "master".

This band-aid is sufficient for the purpose of the maintainer to get
the CI passing, but the real solution should probably be done better
in such a way that the latter step does not have to rely on the
creation of "anchorpoint" in the previous step.  I'll leave it to
the contributor of the topic.
---
 t/t5572-pull-submodule.sh | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/t/t5572-pull-submodule.sh b/t/t5572-pull-submodule.sh
index faafe31409..dfc07d050b 100755
--- a/t/t5572-pull-submodule.sh
+++ b/t/t5572-pull-submodule.sh
@@ -246,7 +246,8 @@ test_expect_success 'fetch submodule remote of different name from superproject'
 	git -C child submodule update --init &&
 
 	# Needs to create unreachable commit from current master branch.
-	git -C a-submodule checkout -b newmain HEAD^ &&
+	git -C a-submodule tag anchorpoint HEAD &&
+	git -C a-submodule checkout -b newmain anchorpoint^ &&
 	test_commit -C a-submodule echo &&
 	test_commit -C a-submodule moreecho &&
 	subc=$(git -C a-submodule rev-parse --short HEAD) &&
@@ -265,7 +266,7 @@ test_expect_success 'fetch submodule remote of different non-origin name from su
 	git -C child/a-submodule remote rename origin o2 &&
 
 	# Create commit that is unreachable from current master branch
-	git -C a-submodule checkout -b newmain2 master^ &&
+	git -C a-submodule checkout -b newmain2 anchorpoint^ &&
 	test_commit -C a-submodule echo_o2 &&
 	test_commit -C a-submodule moreecho_o2 &&
 	subc=$(git -C a-submodule rev-parse --short HEAD) &&
-- 
2.53.0-rc1-193-g609e9a7b29