diff options
author | Junio C Hamano <gitster@pobox.com> | 2009-04-06 00:42:52 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-04-06 00:42:52 -0700 |
commit | 03a39a91842cf745e5fc27dbd6485aad44d839a4 (patch) | |
tree | d4536e303954fc52c189fc3140c46810e9832766 /t/t1301-shared-repo.sh | |
parent | ccc852c37751c7bc8f81bfb71e6722291270bca5 (diff) | |
parent | 1b89eaa4bef44ef84f2af611d5db8727e3be266c (diff) | |
download | git-03a39a91842cf745e5fc27dbd6485aad44d839a4.tar.gz |
Merge branch 'jc/shared-literally'
* jc/shared-literally:
t1301: loosen test for forced modes
set_shared_perm(): sometimes we know what the final mode bits should look like
move_temp_to_file(): do not forget to chmod() in "Coda hack" codepath
Move chmod(foo, 0444) into move_temp_to_file()
"core.sharedrepository = 0mode" should set, not loosen
Diffstat (limited to 't/t1301-shared-repo.sh')
-rwxr-xr-x | t/t1301-shared-repo.sh | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/t/t1301-shared-repo.sh b/t/t1301-shared-repo.sh index dc4485409d..750fbb32e8 100755 --- a/t/t1301-shared-repo.sh +++ b/t/t1301-shared-repo.sh @@ -126,4 +126,41 @@ test_expect_success POSIXPERM 'git reflog expire honors core.sharedRepository' ' esac ' +test_expect_success 'forced modes' ' + mkdir -p templates/hooks && + echo update-server-info >templates/hooks/post-update && + chmod +x templates/hooks/post-update && + echo : >random-file && + mkdir new && + ( + cd new && + umask 002 && + git init --shared=0660 --template=../templates && + >frotz && + git add frotz && + git commit -a -m initial && + git repack + ) && + find new/.git -print | + xargs ls -ld >actual && + + # Everything must be unaccessible to others + test -z "$(sed -n -e "/^.......---/d" actual)" && + + # All directories must have either 2770 or 770 + test -z "$(sed -n -e "/^drwxrw[sx]---/d" -e "/^d/p" actual)" && + + # post-update hook must be 0770 + test -z "$(sed -n -e "/post-update/{ + /^-rwxrwx---/d + p + }" actual)" && + + # All files inside objects must be 0440 + test -z "$(sed -n -e "/objects\//{ + /^d/d + /^-r--r-----/d + }" actual)" +' + test_done |