t2202-add-addremove.sh
#!/bin/sh
test_description='git add --all'
. ./test-lib.sh
test_expect_success setup '
(
echo .gitignore
echo will-remove
) >expect &&
(
echo actual
echo expect
echo ignored
) >.gitignore &&
git --literal-pathspecs add --all &&
>will-remove &&
git add --all &&
test_tick &&
git commit -m initial &&
git ls-files >actual &&
test_cmp expect actual
'
test_expect_success 'git add --all' '
(
echo .gitignore
echo not-ignored
echo "M .gitignore"
echo "A not-ignored"
echo "D will-remove"
) >expect &&
>ignored &&
>not-ignored &&
echo modification >>.gitignore &&
rm -f will-remove &&
git add --all &&
git update-index --refresh &&
git ls-files >actual &&
git diff-index --name-status --cached HEAD >>actual &&
test_cmp expect actual
'
test_expect_success 'Just "git add" is a no-op' '
git reset --hard &&
echo >will-remove &&
>will-not-be-added &&
git add &&
git diff-index --name-status --cached HEAD >actual &&
>expect &&
test_cmp expect actual
'
test_done