# vim: syn=sh: for bc in 0 1 do cd $TESTDIR $TESTDIR/rollback || die "rollback failed" editrc GL_WILDREPOS 1 editrc GL_BIG_CONFIG $bc # ---------- name "INTERNAL" echo " @staff = u1 u2 u3 @gfoo = foo/CREATOR/.+ repo @gfoo C = u1 RW+ = CREATOR RW = WRITERS - = @staff " | ugc cd ~/td runlocal git clone u1:foo/u1/bar expect "Initialized empty Git repository in $TEST_BASE_FULL/foo/u1/bar.git/" cd bar mdc u1file1 runlocal git push origin master expect "To u1:foo/u1/bar" expect "\[new branch\] master -> master" echo RW u2 | runlocal ssh u1 setperms foo/u1/bar runlocal ssh u1 getperms foo/u1/bar expect "WRITERS u2" name "expand" runlocal ssh u2 expand expect "R W .(u1).foo/u1/bar" name "push" cd ~/td runlocal git clone u2:foo/u1/bar u2bar expect "Cloning into 'u2bar'..." cd u2bar mdc u2file1 runlocal git push expect "master -> master" notexpect "DENIED" notexpect "failed to push" name "INTERNAL" cd $TESTDIR $TESTDIR/rollback || die "rollback failed" editrc GL_WILDREPOS 1 editrc GL_BIG_CONFIG $bc # ---------- name "INTERNAL" echo " @staff = u1 u2 u3 @gfoo = foo/CREATOR/.+ repo @gfoo C = u1 RW+ = CREATOR - = @staff RW = WRITERS " | ugc -r cd ~/td runlocal git clone u1:foo/u1/bar expect "Cloning into 'bar'..." cd bar mdc u1file1 runlocal git push origin master expect "To u1:foo/u1/bar" expect "\[new branch\] master -> master" echo RW u2 | runlocal ssh u1 setperms foo/u1/bar runlocal ssh u1 getperms foo/u1/bar expect "WRITERS u2" name "expand" runlocal ssh u2 expand expect " R W .(u1).foo/u1/bar" name "push" cd ~/td runlocal git clone u2:foo/u1/bar u2bar expect "Cloning into 'u2bar'..." cd u2bar mdc u2file1 runlocal git push expect "remote: W refs/heads/master foo/u1/bar u2 DENIED by refs/.\*" name INTERNAL done