1#!/bin/sh
2
3test_description='detect unwritable repository and fail correctly'
4
5. ./test-lib.sh
6
7test_expect_success setup '
8
9 >file &&
10 git add file &&
11 git commit -m initial &&
12 echo >file &&
13 git add file
14
15'
16
17test_expect_success 'write-tree should notice unwritable repository' '
18
19 (
20 chmod a-w .git/objects
21 test_must_fail git write-tree
22 )
23 status=$?
24 chmod 775 .git/objects
25 (exit $status)
26
27'
28
29test_expect_success 'commit should notice unwritable repository' '
30
31 (
32 chmod a-w .git/objects
33 test_must_fail git commit -m second
34 )
35 status=$?
36 chmod 775 .git/objects
37 (exit $status)
38
39'
40
41test_expect_success 'update-index should notice unwritable repository' '
42
43 (
44 echo a >file &&
45 chmod a-w .git/objects
46 test_must_fail git update-index file
47 )
48 status=$?
49 chmod 775 .git/objects
50 (exit $status)
51
52'
53
54test_expect_success 'add should notice unwritable repository' '
55
56 (
57 echo b >file &&
58 chmod a-w .git/objects
59 test_must_fail git add file
60 )
61 status=$?
62 chmod 775 .git/objects
63 (exit $status)
64
65'
66
67test_done