fetch: add test to make sure we stay backwards compatible
The current implementation of submodules supports on-demand fetch if there is no .gitmodules entry for a submodule. Let's add a test to document this behavior. Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
d35688db19
commit
01ce12252c
@ -478,7 +478,47 @@ test_expect_success "don't fetch submodule when newly recorded commits are alrea
|
|||||||
git fetch >../actual.out 2>../actual.err
|
git fetch >../actual.out 2>../actual.err
|
||||||
) &&
|
) &&
|
||||||
! test -s actual.out &&
|
! test -s actual.out &&
|
||||||
test_i18ncmp expect.err actual.err
|
test_i18ncmp expect.err actual.err &&
|
||||||
|
(
|
||||||
|
cd submodule &&
|
||||||
|
git checkout -q master
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success "'fetch.recurseSubmodules=on-demand' works also without .gitmodule entry" '
|
||||||
|
(
|
||||||
|
cd downstream &&
|
||||||
|
git fetch --recurse-submodules
|
||||||
|
) &&
|
||||||
|
add_upstream_commit &&
|
||||||
|
head1=$(git rev-parse --short HEAD) &&
|
||||||
|
git add submodule &&
|
||||||
|
git rm .gitmodules &&
|
||||||
|
git commit -m "new submodule without .gitmodules" &&
|
||||||
|
printf "" >expect.out &&
|
||||||
|
head2=$(git rev-parse --short HEAD) &&
|
||||||
|
echo "From $pwd/." >expect.err.2 &&
|
||||||
|
echo " $head1..$head2 master -> origin/master" >>expect.err.2 &&
|
||||||
|
head -3 expect.err >>expect.err.2 &&
|
||||||
|
(
|
||||||
|
cd downstream &&
|
||||||
|
rm .gitmodules &&
|
||||||
|
git config fetch.recurseSubmodules on-demand &&
|
||||||
|
# fake submodule configuration to avoid skipping submodule handling
|
||||||
|
git config -f .gitmodules submodule.fake.path fake &&
|
||||||
|
git config -f .gitmodules submodule.fake.url fakeurl &&
|
||||||
|
git add .gitmodules &&
|
||||||
|
git config --unset submodule.submodule.url &&
|
||||||
|
git fetch >../actual.out 2>../actual.err &&
|
||||||
|
# cleanup
|
||||||
|
git config --unset fetch.recurseSubmodules &&
|
||||||
|
git reset --hard
|
||||||
|
) &&
|
||||||
|
test_i18ncmp expect.out actual.out &&
|
||||||
|
test_i18ncmp expect.err.2 actual.err &&
|
||||||
|
git checkout HEAD^ -- .gitmodules &&
|
||||||
|
git add .gitmodules &&
|
||||||
|
git commit -m "new submodule restored .gitmodules"
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'fetching submodules respects parallel settings' '
|
test_expect_success 'fetching submodules respects parallel settings' '
|
||||||
|
Loading…
Reference in New Issue
Block a user