gitolite/t/rule-seq.t

88 lines
1.9 KiB
Perl
Executable File

#!/usr/bin/perl
use strict;
use warnings;
# this is hardcoded; change it if needed
use lib "src/lib";
use Gitolite::Test;
# rule sequence
# ----------------------------------------------------------------------
# this is the specific example in commit 32056e0 of g2
try "plan 27";
try "DEF POK = !/DENIED/; !/failed to push/";
confreset; confadd '
@private-owners = u1 u2
@experienced-private-owners = u3 u4
repo CREATOR/.*
C = @private-owners @experienced-private-owners
RWD = CREATOR
RW = WRITERS
R = READERS
- = @private-owners
RW+D = CREATOR
';
try "ADMIN_PUSH set1; !/FATAL/" or die text();
try "
cd ..
glt clone u1 file:///u1/r1
/Initialized empty Git repository in .*/u1/r1.git//
cd r1
tc h-395
glt push u1 origin master
git checkout -b br1
tc m-367
tc i-747
# u1 create branch
glt push u1 origin br1
/\\* \\[new branch\\] br1 -> br1/
POK; /br1 -> br1/
# u1 rewind branch
git reset --hard HEAD^
tc e-633
glt push u1 origin +br1
/\\+ refs/heads/br1 u1/r1 u1 DENIED by refs//
/error: hook declined to update refs/heads/br1/
reject
# u1 delete branch
glt push u1 origin :br1
/\\[deleted\\] br1/
cd ..
rm -rf r1
glt clone u3 file:///u3/r1
/Initialized empty Git repository in .*/u3/r1.git//
cd r1
tc p-274
glt push u3 origin master
git checkout -b br1
tc s-613
tc k-988
# u3 create branch
glt push u3 origin br1
/\\* \\[new branch\\] br1 -> br1/
POK; /br1 -> br1/
# u3 rewind branch
git reset --hard HEAD^
tc n-919
glt push u3 origin +br1
/To file:///u3/r1/
/\\+ .......\\.\\.\\........ br1 -> br1 \\(forced update\\)/
# u3 delete branch
glt push u3 origin :br1
/\\[deleted\\] br1/
";