]>
Commit | Line | Data |
---|---|---|
adfe5d04 JK |
1 | #!/bin/sh |
2 | ||
3 | test_description='test <branch>@{push} syntax' | |
4 | . ./test-lib.sh | |
5 | ||
6 | resolve () { | |
7 | echo "$2" >expect && | |
8 | git rev-parse --symbolic-full-name "$1" >actual && | |
9 | test_cmp expect actual | |
10 | } | |
11 | ||
12 | test_expect_success 'setup' ' | |
13 | git init --bare parent.git && | |
14 | git init --bare other.git && | |
15 | git remote add origin parent.git && | |
16 | git remote add other other.git && | |
17 | test_commit base && | |
18 | git push origin HEAD && | |
19 | git branch --set-upstream-to=origin/master master && | |
20 | git branch --track topic origin/master && | |
21 | git push origin topic && | |
22 | git push other topic | |
23 | ' | |
24 | ||
25 | test_expect_success '@{push} with default=nothing' ' | |
26 | test_config push.default nothing && | |
244ea1b5 ÆAB |
27 | test_must_fail git rev-parse master@{push} && |
28 | test_must_fail git rev-parse master@{PUSH} && | |
29 | test_must_fail git rev-parse master@{PuSH} | |
adfe5d04 JK |
30 | ' |
31 | ||
32 | test_expect_success '@{push} with default=simple' ' | |
33 | test_config push.default simple && | |
244ea1b5 ÆAB |
34 | resolve master@{push} refs/remotes/origin/master && |
35 | resolve master@{PUSH} refs/remotes/origin/master && | |
36 | resolve master@{pUSh} refs/remotes/origin/master | |
adfe5d04 JK |
37 | ' |
38 | ||
39 | test_expect_success 'triangular @{push} fails with default=simple' ' | |
40 | test_config push.default simple && | |
41 | test_must_fail git rev-parse topic@{push} | |
42 | ' | |
43 | ||
44 | test_expect_success '@{push} with default=current' ' | |
45 | test_config push.default current && | |
46 | resolve topic@{push} refs/remotes/origin/topic | |
47 | ' | |
48 | ||
49 | test_expect_success '@{push} with default=matching' ' | |
50 | test_config push.default matching && | |
51 | resolve topic@{push} refs/remotes/origin/topic | |
52 | ' | |
53 | ||
54 | test_expect_success '@{push} with pushremote defined' ' | |
55 | test_config push.default current && | |
56 | test_config branch.topic.pushremote other && | |
57 | resolve topic@{push} refs/remotes/other/topic | |
58 | ' | |
59 | ||
60 | test_expect_success '@{push} with push refspecs' ' | |
61 | test_config push.default nothing && | |
62 | test_config remote.origin.push refs/heads/*:refs/heads/magic/* && | |
63 | git push && | |
64 | resolve topic@{push} refs/remotes/origin/magic/topic | |
65 | ' | |
66 | ||
b10731f4 KM |
67 | test_expect_success 'resolving @{push} fails with a detached HEAD' ' |
68 | git checkout HEAD^0 && | |
69 | test_when_finished "git checkout -" && | |
70 | test_must_fail git rev-parse @{push} | |
71 | ' | |
72 | ||
adfe5d04 | 73 | test_done |