@@ -2180,4 +2180,46 @@ test_expect_success 'sparse index is not expanded: diff-files' '
2180
2180
ensure_not_expanded diff-files -- "deep/*"
2181
2181
'
2182
2182
2183
+ test_expect_success ' diff-tree' '
2184
+ init_repos &&
2185
+
2186
+ # Test change inside sparse cone
2187
+ tree1=$(git -C sparse-index rev-parse HEAD^{tree}) &&
2188
+ tree2=$(git -C sparse-index rev-parse update-deep^{tree}) &&
2189
+ test_all_match git diff-tree $tree1 $tree2 &&
2190
+ test_all_match git diff-tree $tree1 $tree2 -- deep/a &&
2191
+ test_all_match git diff-tree HEAD update-deep &&
2192
+ test_all_match git diff-tree HEAD update-deep -- deep/a &&
2193
+
2194
+ # Test change outside sparse cone
2195
+ tree3=$(git -C sparse-index rev-parse update-folder1^{tree}) &&
2196
+ test_all_match git diff-tree $tree1 $tree3 &&
2197
+ test_all_match git diff-tree $tree1 $tree3 -- folder1/a &&
2198
+ test_all_match git diff-tree HEAD update-folder1 &&
2199
+ test_all_match git diff-tree HEAD update-folder1 -- folder1/a &&
2200
+
2201
+ # Check that SKIP_WORKTREE files are not materialized
2202
+ test_path_is_missing sparse-checkout/folder1/a &&
2203
+ test_path_is_missing sparse-index/folder1/a &&
2204
+ test_path_is_missing sparse-checkout/folder2/a &&
2205
+ test_path_is_missing sparse-index/folder2/a
2206
+ '
2207
+
2208
+ test_expect_success ' sparse-index is not expanded: diff-tree' '
2209
+ init_repos &&
2210
+
2211
+ tree1=$(git -C sparse-index rev-parse HEAD^{tree}) &&
2212
+ tree2=$(git -C sparse-index rev-parse update-deep^{tree}) &&
2213
+ tree3=$(git -C sparse-index rev-parse update-folder1^{tree}) &&
2214
+
2215
+ ensure_not_expanded diff-tree $tree1 $tree2 &&
2216
+ ensure_not_expanded diff-tree $tree1 $tree2 -- deep/a &&
2217
+ ensure_not_expanded diff-tree HEAD update-deep &&
2218
+ ensure_not_expanded diff-tree HEAD update-deep -- deep/a &&
2219
+ ensure_not_expanded diff-tree $tree1 $tree3 &&
2220
+ ensure_not_expanded diff-tree $tree1 $tree3 -- folder1/a &&
2221
+ ensure_not_expanded diff-tree HEAD update-folder1 &&
2222
+ ensure_not_expanded diff-tree HEAD update-folder1 -- folder1/a
2223
+ '
2224
+
2183
2225
test_done
0 commit comments