]>
git.ipfire.org Git - thirdparty/git.git/blob - t/t5612-clone-refspec.sh
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 &&
23 git clone . dir_all &&
25 # default clone --no-tags
26 git clone --no-tags . dir_all_no_tags &&
28 # default --single that follows HEAD=master
29 git clone --single-branch . dir_master &&
31 # default --single that follows HEAD=master with no tags
32 git clone --single-branch --no-tags . dir_master_no_tags &&
34 # default --single that follows HEAD=side
36 git clone --single-branch . dir_side &&
38 # explicit --single that follows side
39 git checkout master &&
40 git clone --single-branch --branch side . dir_side2 &&
42 # default --single with --mirror
43 git clone --single-branch --mirror . dir_mirror &&
45 # default --single with --branch and --mirror
46 git clone --single-branch --mirror --branch side . dir_mirror_side &&
48 # --single that does not know what branch to follow
50 git clone --single-branch . dir_detached &&
52 # explicit --single with tag
53 git clone --single-branch --branch two . dir_tag &&
55 # explicit --single with tag and --no-tags
56 git clone --single-branch --no-tags --branch two . dir_tag_no_tags &&
58 # advance both "master" and "side" branches
61 git commit -a -m five &&
62 git checkout master &&
64 git commit -a -m six &&
67 git tag -d two && git tag two
70 test_expect_success
'by default all branches will be kept updated' '
74 git for-each-ref refs/remotes/origin >refs &&
76 -e "s|/remotes/origin/|/heads/|" refs >../actual
78 # follow both master and side
79 git for-each-ref refs/heads >expect &&
80 test_cmp expect actual
83 test_expect_success
'by default no tags will be kept updated' '
87 git for-each-ref refs/tags >../actual
89 git for-each-ref refs/tags >expect &&
90 ! test_cmp expect actual &&
91 test_line_count = 2 actual
94 test_expect_success
'clone with --no-tags' '
97 grep tagOpt .git/config &&
99 git for-each-ref refs/tags >../actual
101 test_must_be_empty actual
104 test_expect_success
'--single-branch while HEAD pointing at master' '
108 git for-each-ref refs/remotes/origin >refs &&
110 -e "s|/remotes/origin/|/heads/|" refs >../actual
113 git for-each-ref refs/heads/master >expect &&
114 # get & check latest tags
115 test_cmp expect actual &&
118 git fetch --tags --force &&
119 git for-each-ref refs/tags >../actual
121 git for-each-ref refs/tags >expect &&
122 test_cmp expect actual &&
123 test_line_count = 2 actual
126 test_expect_success
'--single-branch while HEAD pointing at master and --no-tags' '
128 cd dir_master_no_tags &&
130 git for-each-ref refs/remotes/origin >refs &&
132 -e "s|/remotes/origin/|/heads/|" refs >../actual
135 git for-each-ref refs/heads/master >expect &&
136 test_cmp expect actual &&
139 cd dir_master_no_tags &&
141 git for-each-ref refs/tags >../actual
143 test_must_be_empty actual &&
144 test_line_count = 0 actual &&
145 # get tags with --tags overrides tagOpt
147 cd dir_master_no_tags &&
149 git for-each-ref refs/tags >../actual
151 git for-each-ref refs/tags >expect &&
152 test_cmp expect actual &&
153 test_line_count = 2 actual
156 test_expect_success
'--single-branch while HEAD pointing at side' '
160 git for-each-ref refs/remotes/origin >refs &&
162 -e "s|/remotes/origin/|/heads/|" refs >../actual
165 git for-each-ref refs/heads/side >expect &&
166 test_cmp expect actual
169 test_expect_success
'--single-branch with explicit --branch side' '
173 git for-each-ref refs/remotes/origin >refs &&
175 -e "s|/remotes/origin/|/heads/|" refs >../actual
178 git for-each-ref refs/heads/side >expect &&
179 test_cmp expect actual
182 test_expect_success
'--single-branch with explicit --branch with tag fetches updated tag' '
186 git for-each-ref refs/tags >../actual
188 git for-each-ref refs/tags >expect &&
189 test_cmp expect actual
192 test_expect_success
'--single-branch with explicit --branch with tag fetches updated tag despite --no-tags' '
194 cd dir_tag_no_tags &&
196 git for-each-ref refs/tags >../actual
198 git for-each-ref refs/tags/two >expect &&
199 test_cmp expect actual &&
200 test_line_count = 1 actual
203 test_expect_success
'--single-branch with --mirror' '
207 git for-each-ref refs > ../actual
209 git for-each-ref refs >expect &&
210 test_cmp expect actual
213 test_expect_success
'--single-branch with explicit --branch and --mirror' '
215 cd dir_mirror_side &&
217 git for-each-ref refs > ../actual
219 git for-each-ref refs >expect &&
220 test_cmp expect actual
223 test_expect_success
'--single-branch with detached' '
227 git for-each-ref refs/remotes/origin >refs &&
229 -e "s|/remotes/origin/|/heads/|" refs >../actual
232 test_must_be_empty actual