@ -1377,7 +1377,7 @@ test_expect_success 'index.sparse disabled inline uses full index' '
@@ -1377,7 +1377,7 @@ test_expect_success 'index.sparse disabled inline uses full index' '
! test_region index ensure_full_index trace2.txt
'
ensure_not_expanded () {
run_sparse_index_trace2 () {
rm -f trace2.txt &&
if test -z "$WITHOUT_UNTRACKED_TXT"
then
@ -1397,7 +1397,16 @@ ensure_not_expanded () {
@@ -1397,7 +1397,16 @@ ensure_not_expanded () {
git -C sparse-index "$@" \
>sparse-index-out \
2>sparse-index-error || return 1
fi &&
fi
}
ensure_expanded () {
run_sparse_index_trace2 "$@" &&
test_region index ensure_full_index trace2.txt
}
ensure_not_expanded () {
run_sparse_index_trace2 "$@" &&
test_region ! index ensure_full_index trace2.txt
}
@ -2108,4 +2117,57 @@ test_expect_success 'sparse-index is not expanded: write-tree' '
@@ -2108,4 +2117,57 @@ test_expect_success 'sparse-index is not expanded: write-tree' '
ensure_not_expanded write-tree
'
test_expect_success 'diff-files with pathspec inside sparse definition' '
init_repos &&
write_script edit-contents <<-\EOF &&
echo text >>"$1"
EOF
run_on_all ../edit-contents deep/a &&
test_all_match git diff-files &&
test_all_match git diff-files -- deep/a &&
# test wildcard
test_all_match git diff-files -- "deep/*"
'
test_expect_success 'diff-files with pathspec outside sparse definition' '
init_repos &&
test_sparse_match git diff-files -- folder2/a &&
write_script edit-contents <<-\EOF &&
echo text >>"$1"
EOF
# The directory "folder1" is outside the cone of interest
# and will not exist in the sparse checkout repositories.
# Create it as needed, add file "folder1/a" there with
# contents that is different from the staged version.
run_on_all mkdir -p folder1 &&
run_on_all cp a folder1/a &&
run_on_all ../edit-contents folder1/a &&
test_all_match git diff-files &&
test_all_match git diff-files -- folder1/a &&
test_all_match git diff-files -- "folder*/a"
'
test_expect_success 'sparse index is not expanded: diff-files' '
init_repos &&
write_script edit-contents <<-\EOF &&
echo text >>"$1"
EOF
run_on_all ../edit-contents deep/a &&
ensure_not_expanded diff-files &&
ensure_not_expanded diff-files -- deep/a &&
ensure_not_expanded diff-files -- "deep/*"
'
test_done