|  | #!/bin/sh | 
|  | # | 
|  | # Copyright (c) 2007 Nguyễn Thái Ngọc Duy | 
|  | # | 
|  |  | 
|  | test_description='Test repository version check' | 
|  |  | 
|  | . ./test-lib.sh | 
|  |  | 
|  | 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 || exit 1 | 
|  |  | 
|  | test_expect_success 'gitdir selection on normal repos' ' | 
|  | (test "$(git config core.repositoryformatversion)" = 0 && | 
|  | cd test && | 
|  | test "$(git config core.repositoryformatversion)" = 0)' | 
|  |  | 
|  | # Make sure it would stop at test2, not trash | 
|  | test_expect_success 'gitdir selection on unsupported repo' ' | 
|  | (cd test2 && | 
|  | test "$(git config core.repositoryformatversion)" = 99)' | 
|  |  | 
|  | 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 on normal repos' ' | 
|  | (git apply --check --index test.patch && | 
|  | cd test && git apply --check --index ../test.patch)' | 
|  |  | 
|  | test_expect_success 'gitdir required mode on unsupported repo' ' | 
|  | (cd test2 && ! git apply --check --index ../test.patch) | 
|  | ' | 
|  |  | 
|  | test_done |