
Currently 'git add' is the only command which dies when launched from an unpopulated submodule (the place-holder directory for a submodule which hasn't been checked out). This is triggered implicitly by passing the PATHSPEC_STRIP_SUBMODULE_SLASH_EXPENSIVE flag to 'parse_pathspec()'. Instead make this desire more explicit by creating a function 'die_in_unpopulated_submodule()' which dies if the provided 'prefix' has a leading path component which matches a submodule in the the index. Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
33 lines
752 B
Bash
Executable File
33 lines
752 B
Bash
Executable File
#!/bin/sh
|
|
|
|
test_description='test case exclude pathspec'
|
|
|
|
. ./test-lib.sh
|
|
|
|
test_expect_success 'setup a submodule' '
|
|
test_create_repo pretzel &&
|
|
: >pretzel/a &&
|
|
git -C pretzel add a &&
|
|
git -C pretzel commit -m "add a file" -- a &&
|
|
git submodule add ./pretzel sub &&
|
|
git commit -a -m "add submodule" &&
|
|
git submodule deinit --all
|
|
'
|
|
|
|
cat <<EOF >expect
|
|
fatal: Pathspec 'sub/a' is in submodule 'sub'
|
|
EOF
|
|
|
|
test_expect_success 'error message for path inside submodule' '
|
|
echo a >sub/a &&
|
|
test_must_fail git add sub/a 2>actual &&
|
|
test_cmp expect actual
|
|
'
|
|
|
|
test_expect_success 'error message for path inside submodule from within submodule' '
|
|
test_must_fail git -C sub add . 2>actual &&
|
|
test_i18ngrep "in unpopulated submodule" actual
|
|
'
|
|
|
|
test_done
|