1#!/bin/sh
   2#
   3# Copyright (c) 2007 Nguyễn Thái Ngọc Duy
   4#
   5test_description='Test repository version check'
   7. ./test-lib.sh
   9cat >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
  18test_create_repo "test"
  20test_create_repo "test2"
  21GIT_CONFIG=test2/.git/config git config core.repositoryformatversion 99 || exit 1
  23test_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# 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)'
  33test_expect_success 'gitdir not required mode' '
  35        (git apply --stat test.patch &&
  36        cd test && git apply --stat ../test.patch &&
  37        cd ../test2 && git apply --stat ../test.patch)'
  38test_expect_success 'gitdir required mode on normal repos' '
  40        (git apply --check --index test.patch &&
  41        cd test && git apply --check --index ../test.patch)'
  42test_expect_success 'gitdir required mode on unsupported repo' '
  44        (cd test2 && ! git apply --check --index ../test.patch)
  45'
  46test_done