60 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
| #!/bin/sh
 | |
| 
 | |
| test_description='checkout handling of ambiguous (branch/tag) refs'
 | |
| . ./test-lib.sh
 | |
| 
 | |
| test_expect_success 'setup ambiguous refs' '
 | |
| 	test_commit branch file &&
 | |
| 	git branch ambiguity &&
 | |
| 	git branch vagueness &&
 | |
| 	test_commit tag file &&
 | |
| 	git tag ambiguity &&
 | |
| 	git tag vagueness HEAD:file &&
 | |
| 	test_commit other file
 | |
| '
 | |
| 
 | |
| test_expect_success 'checkout ambiguous ref succeeds' '
 | |
| 	git checkout ambiguity >stdout 2>stderr
 | |
| '
 | |
| 
 | |
| test_expect_success 'checkout produces ambiguity warning' '
 | |
| 	grep "warning.*ambiguous" stderr
 | |
| '
 | |
| 
 | |
| test_expect_success 'checkout chooses branch over tag' '
 | |
| 	echo refs/heads/ambiguity >expect &&
 | |
| 	git symbolic-ref HEAD >actual &&
 | |
| 	test_cmp expect actual &&
 | |
| 	echo branch >expect &&
 | |
| 	test_cmp expect file
 | |
| '
 | |
| 
 | |
| test_expect_success 'checkout reports switch to branch' '
 | |
| 	test_i18ngrep "Switched to branch" stderr &&
 | |
| 	test_i18ngrep ! "^HEAD is now at" stderr
 | |
| '
 | |
| 
 | |
| test_expect_success 'checkout vague ref succeeds' '
 | |
| 	git checkout vagueness >stdout 2>stderr &&
 | |
| 	test_set_prereq VAGUENESS_SUCCESS
 | |
| '
 | |
| 
 | |
| test_expect_success VAGUENESS_SUCCESS 'checkout produces ambiguity warning' '
 | |
| 	grep "warning.*ambiguous" stderr
 | |
| '
 | |
| 
 | |
| test_expect_success VAGUENESS_SUCCESS 'checkout chooses branch over tag' '
 | |
| 	echo refs/heads/vagueness >expect &&
 | |
| 	git symbolic-ref HEAD >actual &&
 | |
| 	test_cmp expect actual &&
 | |
| 	echo branch >expect &&
 | |
| 	test_cmp expect file
 | |
| '
 | |
| 
 | |
| test_expect_success VAGUENESS_SUCCESS 'checkout reports switch to branch' '
 | |
| 	test_i18ngrep "Switched to branch" stderr &&
 | |
| 	test_i18ngrep ! "^HEAD is now at" stderr
 | |
| '
 | |
| 
 | |
| test_done
 |