Browse Source
Tomasz Fortuna reported that "git commit" does not error out properly when it cannot write tree objects out. "git write-tree" shares the same issue, as the failure to notice the error is deep in the logic to write tree objects out recursively. Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
Junio C Hamano
17 years ago
2 changed files with 72 additions and 2 deletions
@ -0,0 +1,67 @@
@@ -0,0 +1,67 @@
|
||||
#!/bin/sh |
||||
|
||||
test_description='detect unwritable repository and fail correctly' |
||||
|
||||
. ./test-lib.sh |
||||
|
||||
test_expect_success setup ' |
||||
|
||||
>file && |
||||
git add file && |
||||
git commit -m initial && |
||||
echo >file && |
||||
git add file |
||||
|
||||
' |
||||
|
||||
test_expect_success 'write-tree should notice unwritable repository' ' |
||||
|
||||
( |
||||
chmod a-w .git/objects |
||||
test_must_fail git write-tree |
||||
) |
||||
status=$? |
||||
chmod 775 .git/objects |
||||
(exit $status) |
||||
|
||||
' |
||||
|
||||
test_expect_success 'commit should notice unwritable repository' ' |
||||
|
||||
( |
||||
chmod a-w .git/objects |
||||
test_must_fail git commit -m second |
||||
) |
||||
status=$? |
||||
chmod 775 .git/objects |
||||
(exit $status) |
||||
|
||||
' |
||||
|
||||
test_expect_success 'update-index should notice unwritable repository' ' |
||||
|
||||
( |
||||
echo a >file && |
||||
chmod a-w .git/objects |
||||
test_must_fail git update-index file |
||||
) |
||||
status=$? |
||||
chmod 775 .git/objects |
||||
(exit $status) |
||||
|
||||
' |
||||
|
||||
test_expect_success 'add should notice unwritable repository' ' |
||||
|
||||
( |
||||
echo b >file && |
||||
chmod a-w .git/objects |
||||
test_must_fail git add file |
||||
) |
||||
status=$? |
||||
chmod 775 .git/objects |
||||
(exit $status) |
||||
|
||||
' |
||||
|
||||
test_done |
Loading…
Reference in new issue