t1092: update a write-tree test
* 'on all' in the title of the test 'write-tree on all' was unclear; remove it. * Add a baseline 'test_all_match git write-tree' before making any changes to the index, providing a reference point for the 'write-tree' prior to any modifications. * Add a comparison of the output of 'git status --porcelain=v2' to test the working tree after 'write-tree' exits. * Ensure SKIP_WORKTREE files weren't materialized on disk by using "test_path_is_missing". Signed-off-by: Shuqi Liang <cheskaqiqi@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Shuqi Liang committed
May 8, 2023 at 16:21 UTC
6e210175c786247722bafca4103508421fa7dd30
1 file changed
+14
-4
t/t1092-sparse-checkout-compatibility.sh
+14
-4
@@ -2080,22 +2080,32 @@ test_expect_success 'grep sparse directory within submodules' '
2080
test_cmp actual expect
2081
'
2082
2083
-test_expect_success 'write-tree on all' '
2083
+test_expect_success 'write-tree' '
2084
init_repos &&
2085
2086
+ test_all_match git write-tree &&
2087
+
2088
write_script edit-contents <<-\EOF &&
2089
echo text >>"$1"
2090
EOF
2091
2092
+ # make a change inside the sparse cone
2093
run_on_all ../edit-contents deep/a &&
2091
- run_on_all git update-index deep/a &&
2094
+ test_all_match git update-index deep/a &&
2095
test_all_match git write-tree &&
2096
+ test_all_match git status --porcelain=v2 &&
2097
2098
+ # make a change outside the sparse cone
2099
run_on_all mkdir -p folder1 &&
2100
run_on_all cp a folder1/a &&
2101
run_on_all ../edit-contents folder1/a &&
2097
- run_on_all git update-index folder1/a &&
2098
- test_all_match git write-tree
2102
+ test_all_match git update-index folder1/a &&
2103
+ test_all_match git write-tree &&
2104
+ test_all_match git status --porcelain=v2 &&
2105
+
2106
+ # check that SKIP_WORKTREE files are not materialized
2107
+ test_path_is_missing sparse-checkout/folder2/a &&
2108
+ test_path_is_missing sparse-index/folder2/a
2109
'
2110
2111
test_expect_success 'sparse-index is not expanded: write-tree' '