Skip to content

Commit 0aba1a9

Browse files
Cheskaqiqigitster
authored andcommitted
t1092: add tests for git diff-files
Before integrating the 'git diff-files' builtin with the sparse index feature, add tests to t1092-sparse-checkout-compatibility.sh to ensure it currently works with sparse-checkout and will still work with sparse index after that integration. When adding tests against a sparse-checkout definition, we test two modes: all changes are within the sparse-checkout cone and some changes are outside the sparse-checkout cone. In order to have staged changes outside of the sparse-checkout cone, make a directory called 'folder1' and copy `a` into 'folder1/a'. 'folder1/a' is identical to `a` in the base commit. These make 'folder1/a' in the index, while leaving it outside of the sparse-checkout definition. Change content inside 'folder1/a' in order to test 'folder1/a' being present on-disk with modifications. Signed-off-by: Shuqi Liang <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 7580f92 commit 0aba1a9

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

t/t1092-sparse-checkout-compatibility.sh

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2108,4 +2108,43 @@ test_expect_success 'sparse-index is not expanded: write-tree' '
21082108
ensure_not_expanded write-tree
21092109
'
21102110

2111+
test_expect_success 'diff-files with pathspec inside sparse definition' '
2112+
init_repos &&
2113+
2114+
write_script edit-contents <<-\EOF &&
2115+
echo text >>"$1"
2116+
EOF
2117+
2118+
run_on_all ../edit-contents deep/a &&
2119+
2120+
test_all_match git diff-files &&
2121+
2122+
test_all_match git diff-files -- deep/a &&
2123+
2124+
# test wildcard
2125+
test_all_match git diff-files -- "deep/*"
2126+
'
2127+
2128+
test_expect_success 'diff-files with pathspec outside sparse definition' '
2129+
init_repos &&
2130+
2131+
test_sparse_match git diff-files -- folder2/a &&
2132+
2133+
write_script edit-contents <<-\EOF &&
2134+
echo text >>"$1"
2135+
EOF
2136+
2137+
# The directory "folder1" is outside the cone of interest
2138+
# and will not exist in the sparse checkout repositories.
2139+
# Create it as needed, add file "folder1/a" there with
2140+
# contents that is different from the staged version.
2141+
run_on_all mkdir -p folder1 &&
2142+
run_on_all cp a folder1/a &&
2143+
2144+
run_on_all ../edit-contents folder1/a &&
2145+
test_all_match git diff-files &&
2146+
test_all_match git diff-files -- folder1/a &&
2147+
test_all_match git diff-files -- "folder*/a"
2148+
'
2149+
21112150
test_done

0 commit comments

Comments
 (0)