3 test_description
='test refspec written by clone-command'
6 test_expect_success
'setup' '
7 # Make two branches, "master" and "side"
12 git commit -a -m two &&
15 git commit -a -m three &&
16 git checkout -b side &&
18 git commit -a -m four &&
19 git checkout master &&
22 git clone . dir_all &&
24 # default --single that follows HEAD=master
25 git clone --single-branch . dir_master &&
27 # default --single that follows HEAD=side
29 git clone --single-branch . dir_side &&
31 # explicit --single that follows side
32 git checkout master &&
33 git clone --single-branch --branch side . dir_side2 &&
35 # default --single with --mirror
36 git clone --single-branch --mirror . dir_mirror &&
38 # default --single with --branch and --mirror
39 git clone --single-branch --mirror --branch side . dir_mirror_side &&
41 # --single that does not know what branch to follow
43 git clone --single-branch . dir_detached &&
45 # explicit --single with tag
46 git clone --single-branch --branch two . dir_tag &&
48 # advance both "master" and "side" branches
51 git commit -a -m five &&
52 git checkout master &&
54 git commit -a -m six &&
57 git tag -d two && git tag two
60 test_expect_success
'by default all branches will be kept updated' '
62 cd dir_all && git fetch &&
63 git for-each-ref refs/remotes/origin |
65 -e "s|/remotes/origin/|/heads/|" >../actual
67 # follow both master and side
68 git for-each-ref refs/heads >expect &&
69 test_cmp expect actual
72 test_expect_success
'by default no tags will be kept updated' '
74 cd dir_all && git fetch &&
75 git for-each-ref refs/tags >../actual
77 git for-each-ref refs/tags >expect &&
78 test_must_fail test_cmp expect actual
81 test_expect_success
'--single-branch while HEAD pointing at master' '
83 cd dir_master && git fetch &&
84 git for-each-ref refs/remotes/origin |
86 -e "s|/remotes/origin/|/heads/|" >../actual
89 git for-each-ref refs/heads/master >expect &&
90 test_cmp expect actual
93 test_expect_success
'--single-branch while HEAD pointing at side' '
95 cd dir_side && git fetch &&
96 git for-each-ref refs/remotes/origin |
98 -e "s|/remotes/origin/|/heads/|" >../actual
101 git for-each-ref refs/heads/side >expect &&
102 test_cmp expect actual
105 test_expect_success
'--single-branch with explicit --branch side' '
107 cd dir_side2 && git fetch &&
108 git for-each-ref refs/remotes/origin |
110 -e "s|/remotes/origin/|/heads/|" >../actual
113 git for-each-ref refs/heads/side >expect &&
114 test_cmp expect actual
117 test_expect_success
'--single-branch with explicit --branch with tag fetches updated tag' '
119 cd dir_tag && git fetch &&
120 git for-each-ref refs/tags >../actual
122 git for-each-ref refs/tags >expect &&
123 test_cmp expect actual
126 test_expect_success
'--single-branch with --mirror' '
128 cd dir_mirror && git fetch &&
129 git for-each-ref refs > ../actual
131 git for-each-ref refs >expect &&
132 test_cmp expect actual
135 test_expect_success
'--single-branch with explicit --branch and --mirror' '
137 cd dir_mirror_side && git fetch &&
138 git for-each-ref refs > ../actual
140 git for-each-ref refs >expect &&
141 test_cmp expect actual
144 test_expect_success
'--single-branch with detached' '
146 cd dir_detached && git fetch &&
147 git for-each-ref refs/remotes/origin |
149 -e "s|/remotes/origin/|/heads/|" >../actual
153 test_cmp expect actual