| #!/bin/sh | 
 | # | 
 | # Copyright (c) 2007 Nguyễn Thái Ngọc Duy | 
 | # | 
 |  | 
 | test_description='Test repository version check' | 
 |  | 
 | . ./test-lib.sh | 
 |  | 
 | test_expect_success 'setup' ' | 
 | 	cat >test.patch <<-\EOF && | 
 | 	diff --git a/test.txt b/test.txt | 
 | 	new file mode 100644 | 
 | 	--- /dev/null | 
 | 	+++ b/test.txt | 
 | 	@@ -0,0 +1 @@ | 
 | 	+123 | 
 | 	EOF | 
 |  | 
 | 	test_create_repo "test" && | 
 | 	test_create_repo "test2" && | 
 | 	GIT_CONFIG=test2/.git/config git config core.repositoryformatversion 99 | 
 | ' | 
 |  | 
 | test_expect_success 'gitdir selection on normal repos' ' | 
 | 	echo 0 >expect && | 
 | 	git config core.repositoryformatversion >actual && | 
 | 	( | 
 | 		cd test && | 
 | 		git config core.repositoryformatversion >../actual2 | 
 | 	) && | 
 | 	test_cmp expect actual && | 
 | 	test_cmp expect actual2 | 
 | ' | 
 |  | 
 | test_expect_success 'gitdir selection on unsupported repo' ' | 
 | 	# Make sure it would stop at test2, not trash | 
 | 	echo 99 >expect && | 
 | 	( | 
 | 		cd test2 && | 
 | 		git config core.repositoryformatversion >../actual | 
 | 	) && | 
 | 	test_cmp expect actual | 
 | ' | 
 |  | 
 | test_expect_success 'gitdir not required mode' ' | 
 | 	git apply --stat test.patch && | 
 | 	( | 
 | 		cd test && | 
 | 		git apply --stat ../test.patch | 
 | 	) && | 
 | 	( | 
 | 		cd test2 && | 
 | 		git apply --stat ../test.patch | 
 | 	) | 
 | ' | 
 |  | 
 | test_expect_success 'gitdir required mode' ' | 
 | 	git apply --check --index test.patch && | 
 | 	( | 
 | 		cd test && | 
 | 		git apply --check --index ../test.patch | 
 | 	) && | 
 | 	( | 
 | 		cd test2 && | 
 | 		test_must_fail git apply --check --index ../test.patch | 
 | 	) | 
 | ' | 
 |  | 
 | test_done |