88 lines
1.9 KiB
Perl
88 lines
1.9 KiB
Perl
|
#!/usr/bin/perl
|
||
|
use strict;
|
||
|
use warnings;
|
||
|
|
||
|
# this is hardcoded; change it if needed
|
||
|
use lib "src";
|
||
|
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/
|
||
|
";
|