#!/bin/sh test_description='tagopt variable affects "git fetch" and is overridden by commandline.' . ./test-lib.sh setup_clone () { git clone --mirror . $1 && git remote add remote_$1 $1 && (cd $1 && git tag tag_$1 && git branch branch_$1) } test_expect_success setup ' test_commit test && setup_clone one && git config remote.remote_one.tagopt --no-tags && setup_clone two && git config remote.remote_two.tagopt --tags ' test_expect_success "fetch with tagopt=--no-tags does not get tag" ' git fetch remote_one && test_must_fail git show-ref tag_one && git show-ref remote_one/branch_one ' test_expect_success "fetch --tags with tagopt=--no-tags gets tag" ' ( cd one && git branch second_branch_one ) && git fetch --tags remote_one && git show-ref tag_one && git show-ref remote_one/second_branch_one ' test_expect_success "fetch --no-tags with tagopt=--tags does not get tag" ' git fetch --no-tags remote_two && test_must_fail git show-ref tag_two && git show-ref remote_two/branch_two ' test_expect_success "fetch with tagopt=--tags gets tag" ' ( cd two && git branch second_branch_two ) && git fetch remote_two && git show-ref tag_two && git show-ref remote_two/second_branch_two ' test_done