| #!/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 |