Squashed 'third_party/git/' content from commit cb71568594
git-subtree-dir: third_party/git git-subtree-split: cb715685942260375e1eb8153b0768a376e4ece7
This commit is contained in:
commit
1b593e1ea4
3629 changed files with 1139935 additions and 0 deletions
75
t/t2013-checkout-submodule.sh
Executable file
75
t/t2013-checkout-submodule.sh
Executable file
|
|
@ -0,0 +1,75 @@
|
|||
#!/bin/sh
|
||||
|
||||
test_description='checkout can handle submodules'
|
||||
|
||||
. ./test-lib.sh
|
||||
. "$TEST_DIRECTORY"/lib-submodule-update.sh
|
||||
|
||||
test_expect_success 'setup' '
|
||||
mkdir submodule &&
|
||||
(cd submodule &&
|
||||
git init &&
|
||||
test_commit first) &&
|
||||
git add submodule &&
|
||||
test_tick &&
|
||||
git commit -m superproject &&
|
||||
(cd submodule &&
|
||||
test_commit second) &&
|
||||
git add submodule &&
|
||||
test_tick &&
|
||||
git commit -m updated.superproject
|
||||
'
|
||||
|
||||
test_expect_success '"reset <submodule>" updates the index' '
|
||||
git update-index --refresh &&
|
||||
git diff-files --quiet &&
|
||||
git diff-index --quiet --cached HEAD &&
|
||||
git reset HEAD^ submodule &&
|
||||
test_must_fail git diff-files --quiet &&
|
||||
git reset submodule &&
|
||||
git diff-files --quiet
|
||||
'
|
||||
|
||||
test_expect_success '"checkout <submodule>" updates the index only' '
|
||||
git update-index --refresh &&
|
||||
git diff-files --quiet &&
|
||||
git diff-index --quiet --cached HEAD &&
|
||||
git checkout HEAD^ submodule &&
|
||||
test_must_fail git diff-files --quiet &&
|
||||
git checkout HEAD submodule &&
|
||||
git diff-files --quiet
|
||||
'
|
||||
|
||||
test_expect_success '"checkout <submodule>" honors diff.ignoreSubmodules' '
|
||||
git config diff.ignoreSubmodules dirty &&
|
||||
echo x> submodule/untracked &&
|
||||
git checkout HEAD >actual 2>&1 &&
|
||||
test_must_be_empty actual
|
||||
'
|
||||
|
||||
test_expect_success '"checkout <submodule>" honors submodule.*.ignore from .gitmodules' '
|
||||
git config diff.ignoreSubmodules none &&
|
||||
git config -f .gitmodules submodule.submodule.path submodule &&
|
||||
git config -f .gitmodules submodule.submodule.ignore untracked &&
|
||||
git checkout HEAD >actual 2>&1 &&
|
||||
test_must_be_empty actual
|
||||
'
|
||||
|
||||
test_expect_success '"checkout <submodule>" honors submodule.*.ignore from .git/config' '
|
||||
git config -f .gitmodules submodule.submodule.ignore none &&
|
||||
git config submodule.submodule.path submodule &&
|
||||
git config submodule.submodule.ignore all &&
|
||||
git checkout HEAD >actual 2>&1 &&
|
||||
test_must_be_empty actual
|
||||
'
|
||||
|
||||
KNOWN_FAILURE_DIRECTORY_SUBMODULE_CONFLICTS=1
|
||||
test_submodule_switch_recursing_with_args "checkout"
|
||||
|
||||
test_submodule_forced_switch_recursing_with_args "checkout -f"
|
||||
|
||||
test_submodule_switch "git checkout"
|
||||
|
||||
test_submodule_forced_switch "git checkout -f"
|
||||
|
||||
test_done
|
||||
Loading…
Add table
Add a link
Reference in a new issue