2a10ddc5703b05672146bc6d03bb2972eceb64c6
[git-central.git] / tests / t2900-update-lock-check.sh
1 #!/bin/sh
2
3 test_description='server update lock check'
4
5 . ./test-lib.sh
6
7 test_expect_success 'setup' '
8         echo "setup" >a &&
9         git add a &&
10         git commit -m "setup" &&
11         git clone ./. server &&
12         rm -fr server/.git/hooks &&
13         git remote add origin ./server &&
14         git config branch.master.remote origin &&
15         git config branch.master.merge refs/heads/master &&
16         git fetch
17 '
18
19 install_update_hook 'update-lock-check'
20
21 test_expect_success 'locked branch is rejected' '
22         echo master >> server/.git/locked &&
23
24         echo "$test_name" >a &&
25         git commit -a -m "changed" &&
26         ! git push 2>push.err &&
27         cat push.err | grep "Branch master is locked"
28 '
29
30 test_expect_success 'locked branch is rejected with multiple branches set' '
31         echo foo >> server/.git/locked &&
32         echo bar >> server/.git/locked &&
33
34         echo "$test_name" >a &&
35         git commit -a -m "changed" &&
36         ! git push 2>push.err &&
37         cat push.err | grep "Branch master is locked"
38 '
39
40 test_expect_success 'preserved branch cannot be deleted' '
41         echo > server/.git/locked &&
42         echo master > server/.git/preserved &&
43
44         ! git push origin :master 2>push.err &&
45         cat push.err | grep "Branch master cannot be deleted"
46 '
47
48 test_done
49