| #!/bin/sh |
| |
| test_description='git add --all' |
| |
| TEST_PASSES_SANITIZE_LEAK=true |
| . ./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 && |
| test_must_be_empty actual |
| ' |
| |
| test_done |