Merge branch 'sb/submodule-update-initial-runs-custom-script'
[gitweb.git] / t / t7412-submodule-absorbgitdirs.sh
index 1c47780e2bf1bccaef7176e1440946331ecaac6e..e2bbb449b6a175c6dbb9f43b08f2fa7061d5d9f5 100755 (executable)
@@ -64,6 +64,33 @@ test_expect_success 'absorb the git dir in a nested submodule' '
        test_cmp expect.2 actual.2
 '
 
+test_expect_success 're-setup nested submodule' '
+       # un-absorb the direct submodule, to test if the nested submodule
+       # is still correct (needs a rewrite of the gitfile only)
+       rm -rf sub1/.git &&
+       mv .git/modules/sub1 sub1/.git &&
+       GIT_WORK_TREE=. git -C sub1 config --unset core.worktree &&
+       # fixup the nested submodule
+       echo "gitdir: ../.git/modules/nested" >sub1/nested/.git &&
+       GIT_WORK_TREE=../../../nested git -C sub1/.git/modules/nested config \
+               core.worktree "../../../nested" &&
+       # make sure this re-setup is correct
+       git status --ignore-submodules=none
+'
+
+test_expect_success 'absorb the git dir in a nested submodule' '
+       git status >expect.1 &&
+       git -C sub1/nested rev-parse HEAD >expect.2 &&
+       git submodule absorbgitdirs &&
+       test -f sub1/.git &&
+       test -f sub1/nested/.git &&
+       test -d .git/modules/sub1/modules/nested &&
+       git status >actual.1 &&
+       git -C sub1/nested rev-parse HEAD >actual.2 &&
+       test_cmp expect.1 actual.1 &&
+       test_cmp expect.2 actual.2
+'
+
 test_expect_success 'setup a gitlink with missing .gitmodules entry' '
        git init sub2 &&
        test_commit -C sub2 first &&