summaryrefslogtreecommitdiff
path: root/t/t1302-repo-version.sh
blob: 8d305b43725f8cf60e7ee802df1923feb98eeae5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/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 && test_must_fail git apply --check --index ../test.patch)
'

test_done