| #!/bin/sh | |
| test_description='detect unwritable repository and fail correctly' | |
| . ./test-lib.sh | |
| test_expect_success setup ' | |
| >file && | |
| git add file && | |
| test_tick && | |
| git commit -m initial && | |
| echo >file && | |
| git add file | |
| ' | |
| test_expect_success POSIXPERM 'write-tree should notice unwritable repository' ' | |
| ( | |
| chmod a-w .git/objects .git/objects/?? && | |
| test_must_fail git write-tree | |
| ) | |
| status=$? | |
| chmod 775 .git/objects .git/objects/?? | |
| (exit $status) | |
| ' | |
| test_expect_success POSIXPERM 'commit should notice unwritable repository' ' | |
| ( | |
| chmod a-w .git/objects .git/objects/?? && | |
| test_must_fail git commit -m second | |
| ) | |
| status=$? | |
| chmod 775 .git/objects .git/objects/?? | |
| (exit $status) | |
| ' | |
| test_expect_success POSIXPERM 'update-index should notice unwritable repository' ' | |
| ( | |
| echo 6O >file && | |
| chmod a-w .git/objects .git/objects/?? && | |
| test_must_fail git update-index file | |
| ) | |
| status=$? | |
| chmod 775 .git/objects .git/objects/?? | |
| (exit $status) | |
| ' | |
| test_expect_success POSIXPERM 'add should notice unwritable repository' ' | |
| ( | |
| echo b >file && | |
| chmod a-w .git/objects .git/objects/?? && | |
| test_must_fail git add file | |
| ) | |
| status=$? | |
| chmod 775 .git/objects .git/objects/?? | |
| (exit $status) | |
| ' | |
| test_done |