 c5a84e92a2
			
		
	
	c5a84e92a2
	
	
	
		
			
			Previously, fetch's "--tags" option was considered equivalent to
specifying the refspec "refs/tags/*:refs/tags/*" on the command line;
in particular, it caused the remote.<name>.refspec configuration to be
ignored.
But it is not very useful to fetch tags without also fetching other
references, whereas it *is* quite useful to be able to fetch tags *in
addition to* other references.  So change the semantics of this option
to do the latter.
If a user wants to fetch *only* tags, then it is still possible to
specifying an explicit refspec:
    git fetch <remote> 'refs/tags/*:refs/tags/*'
Please note that the documentation prior to 1.8.0.3 was ambiguous
about this aspect of "fetch --tags" behavior.  Commit
    f0cb2f137c 2012-12-14 fetch --tags: clarify documentation
made the documentation match the old behavior.  This commit changes
the documentation to match the new behavior.
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
	
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/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
 |