 6789275d37
			
		
	
	6789275d37
	
	
	
		
			
			They are equivalents and the former still exists, so as long as the
only change this commit makes are to rewrite test_i18ngrep to
test_grep, there won't be any new bug, even if there still are
callers of test_i18ngrep remaining in the tree, or when merged to
other topics that add new uses of test_i18ngrep.
This patch was produced more or less with
    git grep -l -e 'test_i18ngrep ' 't/t[0-9][0-9][0-9][0-9]-*.sh' |
    xargs perl -p -i -e 's/test_i18ngrep /test_grep /'
and a good way to sanity check the result yourself is to run the
above in a checkout of c4603c1c (test framework: further deprecate
test_i18ngrep, 2023-10-31) and compare the resulting working tree
contents with the result of applying this patch to the same commit.
You'll see that test_i18ngrep in a few t/lib-*.sh files corrected,
in addition to the manual reproduction.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
	
		
			
				
	
	
		
			70 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| test_description='checkout and pathspecs/refspecs ambiguities'
 | |
| 
 | |
| GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
 | |
| export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
 | |
| 
 | |
| TEST_PASSES_SANITIZE_LEAK=true
 | |
| . ./test-lib.sh
 | |
| 
 | |
| test_expect_success 'setup' '
 | |
| 	echo hello >world &&
 | |
| 	echo hello >all &&
 | |
| 	git add all world &&
 | |
| 	git commit -m initial &&
 | |
| 	git branch world
 | |
| '
 | |
| 
 | |
| test_expect_success 'reference must be a tree' '
 | |
| 	test_must_fail git checkout $(git hash-object ./all) --
 | |
| '
 | |
| 
 | |
| test_expect_success 'branch switching' '
 | |
| 	test "refs/heads/main" = "$(git symbolic-ref HEAD)" &&
 | |
| 	git checkout world -- &&
 | |
| 	test "refs/heads/world" = "$(git symbolic-ref HEAD)"
 | |
| '
 | |
| 
 | |
| test_expect_success 'checkout world from the index' '
 | |
| 	echo bye > world &&
 | |
| 	git checkout -- world &&
 | |
| 	git diff --exit-code --quiet
 | |
| '
 | |
| 
 | |
| test_expect_success 'non ambiguous call' '
 | |
| 	git checkout all
 | |
| '
 | |
| 
 | |
| test_expect_success 'allow the most common case' '
 | |
| 	git checkout world &&
 | |
| 	test "refs/heads/world" = "$(git symbolic-ref HEAD)"
 | |
| '
 | |
| 
 | |
| test_expect_success 'check ambiguity' '
 | |
| 	test_must_fail git checkout world all
 | |
| '
 | |
| 
 | |
| test_expect_success 'check ambiguity in subdir' '
 | |
| 	mkdir sub &&
 | |
| 	# not ambiguous because sub/world does not exist
 | |
| 	git -C sub checkout world ../all &&
 | |
| 	echo hello >sub/world &&
 | |
| 	# ambiguous because sub/world does exist
 | |
| 	test_must_fail git -C sub checkout world ../all
 | |
| '
 | |
| 
 | |
| test_expect_success 'disambiguate checking out from a tree-ish' '
 | |
| 	echo bye > world &&
 | |
| 	git checkout world -- world &&
 | |
| 	git diff --exit-code --quiet
 | |
| '
 | |
| 
 | |
| test_expect_success 'accurate error message with more than one ref' '
 | |
| 	test_must_fail git checkout HEAD main -- 2>actual &&
 | |
| 	test_grep 2 actual &&
 | |
| 	test_grep "one reference expected, 2 given" actual
 | |
| '
 | |
| 
 | |
| test_done
 |