|  | #!/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,SANITY 'write-tree should notice unwritable repository' ' | 
|  | test_when_finished "chmod 775 .git/objects .git/objects/??" && | 
|  | chmod a-w .git/objects .git/objects/?? && | 
|  | test_must_fail git write-tree | 
|  | ' | 
|  |  | 
|  | test_expect_success POSIXPERM,SANITY 'commit should notice unwritable repository' ' | 
|  | test_when_finished "chmod 775 .git/objects .git/objects/??" && | 
|  | chmod a-w .git/objects .git/objects/?? && | 
|  | test_must_fail git commit -m second | 
|  | ' | 
|  |  | 
|  | test_expect_success POSIXPERM,SANITY 'update-index should notice unwritable repository' ' | 
|  | test_when_finished "chmod 775 .git/objects .git/objects/??" && | 
|  | echo 6O >file && | 
|  | chmod a-w .git/objects .git/objects/?? && | 
|  | test_must_fail git update-index file | 
|  | ' | 
|  |  | 
|  | test_expect_success POSIXPERM,SANITY 'add should notice unwritable repository' ' | 
|  | test_when_finished "chmod 775 .git/objects .git/objects/??" && | 
|  | echo b >file && | 
|  | chmod a-w .git/objects .git/objects/?? && | 
|  | test_must_fail git add file | 
|  | ' | 
|  |  | 
|  | test_done |