0da27997c2e67c906cef819d06acabbd6c91c2a5
   1#!/bin/sh
   2#
   3# Copyright (c) 2007 Nguyễn Thái Ngọc Duy
   4#
   5
   6test_description='Test repository version check'
   7
   8. ./test-lib.sh
   9
  10cat >test.patch <<EOF
  11diff --git a/test.txt b/test.txt
  12new file mode 100644
  13--- /dev/null
  14+++ b/test.txt
  15@@ -0,0 +1 @@
  16+123
  17EOF
  18
  19test_create_repo "test"
  20test_create_repo "test2"
  21
  22GIT_CONFIG=test2/.git/config git config core.repositoryformatversion 99 || exit 1
  23
  24test_expect_success 'gitdir selection on normal repos' '
  25        (test "$(git config core.repositoryformatversion)" = 0 &&
  26        cd test &&
  27        test "$(git config core.repositoryformatversion)" = 0)'
  28
  29# Make sure it would stop at test2, not trash
  30test_expect_success 'gitdir selection on unsupported repo' '
  31        (cd test2 &&
  32        test "$(git config core.repositoryformatversion)" = 99)'
  33
  34test_expect_success 'gitdir not required mode' '
  35        git apply --stat test.patch &&
  36        (
  37                cd test &&
  38                git apply --stat ../test.patch
  39        ) &&
  40        (
  41                cd test2 &&
  42                git apply --stat ../test.patch
  43        )
  44'
  45
  46test_expect_success 'gitdir required mode on normal repos' '
  47        (git apply --check --index test.patch &&
  48        cd test && git apply --check --index ../test.patch)'
  49
  50test_expect_success 'gitdir required mode on unsupported repo' '
  51        (cd test2 && test_must_fail git apply --check --index ../test.patch)
  52'
  53
  54test_done