| #!/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 --file=test2/.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 |