mirror of
https://github.com/git/git.git
synced 2024-11-05 00:37:55 +01:00
9459aa77a0
This pushes check_repository_format() (actually _gently() version) to setup_git_directory_gently() in order to prevent from using unsupported repositories. New setup_git_directory_gently()'s behaviour is stop searching for a valid gitdir and return as if there is no gitdir if a unsupported repository is found. Warning will be thrown in these cases. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
46 lines
1.2 KiB
Bash
Executable file
46 lines
1.2 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
|
|
|
|
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_failure 'gitdir required mode on unsupported repo' '
|
|
(cd test2 && git apply --check --index ../test.patch)'
|
|
|
|
test_done
|