mirror of
https://github.com/git/git.git
synced 2024-11-05 00:37:55 +01:00
8fe5aeddcb
This test is from 2007, which is late enough for the style to be recognizably modern but still a while ago. Freshen it up to follow new best practices: - guard setup commands with test_expect_setup, so errors at that stage can be caught; - use <<\EOF in preference to <<EOF, to save reviewers the trouble of looking for variable interpolations; - use test_cmp instead of test "$foo" = "$bar", for better output with -v on failure; - indent commands in subshells and let them span multiple lines; - combine the two "gitdir required mode" tests that do not make as much sense alone. Cc: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
70 lines
1.3 KiB
Bash
Executable file
70 lines
1.3 KiB
Bash
Executable file
#!/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
|