diff options
Diffstat (limited to 'third_party/git/t/t1301-shared-repo.sh')
-rwxr-xr-x | third_party/git/t/t1301-shared-repo.sh | 212 |
1 files changed, 0 insertions, 212 deletions
diff --git a/third_party/git/t/t1301-shared-repo.sh b/third_party/git/t/t1301-shared-repo.sh deleted file mode 100755 index 2dc853d1be5f..000000000000 --- a/third_party/git/t/t1301-shared-repo.sh +++ /dev/null @@ -1,212 +0,0 @@ -#!/bin/sh -# -# Copyright (c) 2007 Johannes Schindelin -# - -test_description='Test shared repository initialization' - -. ./test-lib.sh - -# Remove a default ACL from the test dir if possible. -setfacl -k . 2>/dev/null - -# User must have read permissions to the repo -> failure on --shared=0400 -test_expect_success 'shared = 0400 (faulty permission u-w)' ' - test_when_finished "rm -rf sub" && - mkdir sub && ( - cd sub && - test_must_fail git init --shared=0400 - ) -' - -for u in 002 022 -do - test_expect_success POSIXPERM "shared=1 does not clear bits preset by umask $u" ' - mkdir sub && ( - cd sub && - umask $u && - git init --shared=1 && - test 1 = "$(git config core.sharedrepository)" - ) && - actual=$(ls -l sub/.git/HEAD) && - case "$actual" in - -rw-rw-r--*) - : happy - ;; - *) - echo Oops, .git/HEAD is not 0664 but $actual - false - ;; - esac - ' - rm -rf sub -done - -test_expect_success 'shared=all' ' - mkdir sub && - cd sub && - git init --shared=all && - test 2 = $(git config core.sharedrepository) -' - -test_expect_success POSIXPERM 'update-server-info honors core.sharedRepository' ' - : > a1 && - git add a1 && - test_tick && - git commit -m a1 && - umask 0277 && - git update-server-info && - actual="$(ls -l .git/info/refs)" && - case "$actual" in - -r--r--r--*) - : happy - ;; - *) - echo Oops, .git/info/refs is not 0444 - false - ;; - esac -' - -for u in 0660:rw-rw---- \ - 0640:rw-r----- \ - 0600:rw------- \ - 0666:rw-rw-rw- \ - 0664:rw-rw-r-- -do - x=$(expr "$u" : ".*:\([rw-]*\)") && - y=$(echo "$x" | sed -e "s/w/-/g") && - u=$(expr "$u" : "\([0-7]*\)") && - git config core.sharedrepository "$u" && - umask 0277 && - - test_expect_success POSIXPERM "shared = $u ($y) ro" ' - - rm -f .git/info/refs && - git update-server-info && - actual="$(test_modebits .git/info/refs)" && - verbose test "x$actual" = "x-$y" - - ' - - umask 077 && - test_expect_success POSIXPERM "shared = $u ($x) rw" ' - - rm -f .git/info/refs && - git update-server-info && - actual="$(test_modebits .git/info/refs)" && - verbose test "x$actual" = "x-$x" - - ' - -done - -test_expect_success POSIXPERM 'info/refs respects umask in unshared repo' ' - rm -f .git/info/refs && - test_unconfig core.sharedrepository && - umask 002 && - git update-server-info && - echo "-rw-rw-r--" >expect && - test_modebits .git/info/refs >actual && - test_cmp expect actual -' - -test_expect_success POSIXPERM 'git reflog expire honors core.sharedRepository' ' - umask 077 && - git config core.sharedRepository group && - git reflog expire --all && - actual="$(ls -l .git/logs/refs/heads/master)" && - case "$actual" in - -rw-rw-*) - : happy - ;; - *) - echo Ooops, .git/logs/refs/heads/master is not 0662 [$actual] - false - ;; - esac -' - -test_expect_success POSIXPERM '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 - ) && - # List repository files meant to be protected; note that - # COMMIT_EDITMSG does not matter---0mode is not about a - # repository with a work tree. - find new/.git -type f -name COMMIT_EDITMSG -prune -o -print | - xargs ls -ld >actual && - - # Everything must be unaccessible to others - test -z "$(sed -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 accessible by us - test -z "$(sed -n -e "/objects\//{ - /^d/d - /^-r.-r.----/d - p - }" actual)" -' - -test_expect_success POSIXPERM 'remote init does not use config from cwd' ' - git config core.sharedrepository 0666 && - umask 0022 && - git init --bare child.git && - echo "-rw-r--r--" >expect && - test_modebits child.git/config >actual && - test_cmp expect actual -' - -test_expect_success POSIXPERM 're-init respects core.sharedrepository (local)' ' - git config core.sharedrepository 0666 && - umask 0022 && - echo whatever >templates/foo && - git init --template=templates && - echo "-rw-rw-rw-" >expect && - test_modebits .git/foo >actual && - test_cmp expect actual -' - -test_expect_success POSIXPERM 're-init respects core.sharedrepository (remote)' ' - rm -rf child.git && - umask 0022 && - git init --bare --shared=0666 child.git && - test_path_is_missing child.git/foo && - git init --bare --template=templates child.git && - echo "-rw-rw-rw-" >expect && - test_modebits child.git/foo >actual && - test_cmp expect actual -' - -test_expect_success POSIXPERM 'template can set core.sharedrepository' ' - rm -rf child.git && - umask 0022 && - git config core.sharedrepository 0666 && - cp .git/config templates/config && - git init --bare --template=templates child.git && - echo "-rw-rw-rw-" >expect && - test_modebits child.git/HEAD >actual && - test_cmp expect actual -' - -test_done |