aboutsummaryrefslogtreecommitdiff
blob: 6321d7d418ee6e07d0936c575fa6e4397374cb14 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# vim: syn=sh:
# this is the specific example in commit 32056e0
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 "
        @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
    " | ugc
    name "nothing set yet"
    expect_push_ok "master -> master"

    cd ~/td
    runlocal git clone u1:u1/r1
    expect "Initialized empty Git repository in $TEST_BASE_FULL/u1/r1.git/"
    cd r1
    mdc r1file1
    runlocal git push origin master
    runlocal git checkout -b br1
    mdc r1file2
    mdc r1file3

    name "u1 create branch"
    runlocal git push origin br1
    expect "\* \[new branch\]      br1 -> br1"
    expect_push_ok "br1 -> br1"

    name "u1 rewind branch"
    runlocal git reset --hard HEAD^
    mdc r1file4
    runlocal git push origin +br1
    expect "remote: + refs/heads/br1 u1/r1 u1 DENIED by refs/"
    expect "remote: error: hook declined to update refs/heads/br1"

    name "u1 delete branch"
    runlocal git push origin :br1
    expect "\[deleted\]         br1"

    cd ~/td
    rm -rf r1
    runlocal git clone u3:u3/r1
    expect "Initialized empty Git repository in $TEST_BASE_FULL/u3/r1.git/"
    cd r1
    mdc r1file1
    runlocal git push origin master
    runlocal git checkout -b br1
    mdc r1file2
    mdc r1file3

    name "u3 create branch"
    runlocal git push origin br1
    expect "\* \[new branch\]      br1 -> br1"
    expect_push_ok "br1 -> br1"

    name "u3 rewind branch"
    runlocal git reset --hard HEAD^
    mdc r1file4
    runlocal git push origin +br1
    expect "To u3:u3/r1"
    expect "+ .......\.\.\........ br1 -> br1 (forced update)"

    name "u3 delete branch"
    runlocal git push origin :br1
    expect "\[deleted\]         br1"

    name "INTERNAL"

done