Merge branch 'maint'
[gitweb.git] / t / t5526-fetch-submodules.sh
index 71e2a66f3baa9c5db6b72ab38e66637c8bae1c1e..a5f458533fd071c13550a72bf251e2e10c109637 100755 (executable)
@@ -81,6 +81,56 @@ test_expect_success "fetch alone only fetches superproject" '
        ! test -s actual.err
 '
 
+test_expect_success "fetch --no-recurse-submodules only fetches superproject" '
+       (
+               cd downstream &&
+               git fetch --no-recurse-submodules >../actual.out 2>../actual.err
+       ) &&
+       ! test -s actual.out &&
+       ! test -s actual.err
+'
+
+test_expect_success "using fetchRecurseSubmodules=true in .gitmodules recurses into submodules" '
+       (
+               cd downstream &&
+               git config -f .gitmodules submodule.submodule.fetchRecurseSubmodules true &&
+               git fetch >../actual.out 2>../actual.err
+       ) &&
+       test_cmp expect.out actual.out &&
+       test_cmp expect.err actual.err
+'
+
+test_expect_success "--no-recurse-submodules overrides .gitmodules config" '
+       add_upstream_commit &&
+       (
+               cd downstream &&
+               git fetch --no-recurse-submodules >../actual.out 2>../actual.err
+       ) &&
+       ! test -s actual.out &&
+       ! test -s actual.err
+'
+
+test_expect_success "using fetchRecurseSubmodules=false in .git/config overrides setting in .gitmodules" '
+       (
+               cd downstream &&
+               git config submodule.submodule.fetchRecurseSubmodules false &&
+               git fetch >../actual.out 2>../actual.err
+       ) &&
+       ! test -s actual.out &&
+       ! test -s actual.err
+'
+
+test_expect_success "--recurse-submodules overrides fetchRecurseSubmodules setting from .git/config" '
+       (
+               cd downstream &&
+               git fetch --recurse-submodules >../actual.out 2>../actual.err &&
+               git config --unset -f .gitmodules submodule.submodule.fetchRecurseSubmodules &&
+               git config --unset submodule.submodule.fetchRecurseSubmodules
+       ) &&
+       test_cmp expect.out actual.out &&
+       test_cmp expect.err actual.err
+'
+
 test_expect_success "--quiet propagates to submodules" '
        (
                cd downstream &&