Merge branch 'mg/work-tree-tests' into maint
[git] / t / t5525-fetch-tagopt.sh
1 #!/bin/sh
2
3 test_description='tagopt variable affects "git fetch" and is overridden by commandline.'
4
5 . ./test-lib.sh
6
7 setup_clone () {
8         git clone --mirror . $1 &&
9         git remote add remote_$1 $1 &&
10         (cd $1 &&
11         git tag tag_$1 &&
12         git branch branch_$1)
13 }
14
15 test_expect_success setup '
16         test_commit test &&
17         setup_clone one &&
18         git config remote.remote_one.tagopt --no-tags &&
19         setup_clone two &&
20         git config remote.remote_two.tagopt --tags
21         '
22
23 test_expect_success "fetch with tagopt=--no-tags does not get tag" '
24         git fetch remote_one &&
25         test_must_fail git show-ref tag_one &&
26         git show-ref remote_one/branch_one
27         '
28
29 test_expect_success "fetch --tags with tagopt=--no-tags gets tag" '
30         (
31                 cd one &&
32                 git branch second_branch_one
33         ) &&
34         git fetch --tags remote_one &&
35         git show-ref tag_one &&
36         git show-ref remote_one/second_branch_one
37         '
38
39 test_expect_success "fetch --no-tags with tagopt=--tags does not get tag" '
40         git fetch --no-tags remote_two &&
41         test_must_fail git show-ref tag_two &&
42         git show-ref remote_two/branch_two
43         '
44
45 test_expect_success "fetch with tagopt=--tags gets tag" '
46         (
47                 cd two &&
48                 git branch second_branch_two
49         ) &&
50         git fetch remote_two &&
51         git show-ref tag_two &&
52         git show-ref remote_two/second_branch_two
53         '
54 test_done