t1092: add tests for git-rm
Add tests for `git-rm`, make sure it behaves as expected when <pathspec> is both inside or outside of sparse-checkout definition. Helped-by: Victoria Dye <vdye@github.com> Helped-by: Derrick Stolee <derrickstolee@github.com> Signed-off-by: Shaoxuan Yuan <shaoxuan.yuan02@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
3f61790678
commit
ba808251aa
@ -1878,4 +1878,61 @@ test_expect_success 'mv directory from out-of-cone to in-cone' '
|
||||
grep -e "H deep/0/1" actual
|
||||
'
|
||||
|
||||
test_expect_success 'rm pathspec inside sparse definition' '
|
||||
init_repos &&
|
||||
|
||||
test_all_match git rm deep/a &&
|
||||
test_all_match git status --porcelain=v2 &&
|
||||
|
||||
# test wildcard
|
||||
run_on_all git reset --hard &&
|
||||
test_all_match git rm deep/* &&
|
||||
test_all_match git status --porcelain=v2 &&
|
||||
|
||||
# test recursive rm
|
||||
run_on_all git reset --hard &&
|
||||
test_all_match git rm -r deep &&
|
||||
test_all_match git status --porcelain=v2
|
||||
'
|
||||
|
||||
test_expect_failure 'rm pathspec outside sparse definition' '
|
||||
init_repos &&
|
||||
|
||||
for file in folder1/a folder1/0/1
|
||||
do
|
||||
test_sparse_match test_must_fail git rm $file &&
|
||||
test_sparse_match test_must_fail git rm --cached $file &&
|
||||
test_sparse_match git rm --sparse $file &&
|
||||
test_sparse_match git status --porcelain=v2
|
||||
done &&
|
||||
|
||||
cat >folder1-full <<-EOF &&
|
||||
rm ${SQ}folder1/0/0/0${SQ}
|
||||
rm ${SQ}folder1/0/1${SQ}
|
||||
rm ${SQ}folder1/a${SQ}
|
||||
EOF
|
||||
|
||||
cat >folder1-sparse <<-EOF &&
|
||||
rm ${SQ}folder1/${SQ}
|
||||
EOF
|
||||
|
||||
# test wildcard
|
||||
run_on_sparse git reset --hard &&
|
||||
run_on_sparse git sparse-checkout reapply &&
|
||||
test_sparse_match test_must_fail git rm folder1/* &&
|
||||
run_on_sparse git rm --sparse folder1/* &&
|
||||
test_cmp folder1-full sparse-checkout-out &&
|
||||
test_cmp folder1-sparse sparse-index-out &&
|
||||
test_sparse_match git status --porcelain=v2 &&
|
||||
|
||||
# test recursive rm
|
||||
run_on_sparse git reset --hard &&
|
||||
run_on_sparse git sparse-checkout reapply &&
|
||||
test_sparse_match test_must_fail git rm --sparse folder1 &&
|
||||
run_on_sparse git rm --sparse -r folder1 &&
|
||||
test_cmp folder1-full sparse-checkout-out &&
|
||||
test_cmp folder1-sparse sparse-index-out &&
|
||||
test_sparse_match git status --porcelain=v2
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user