t / t1302-repo-version.shon commit Merge git://repo.or.cz/git-gui (731ab1f)
   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        cd test && git apply --stat ../test.patch &&
  37        cd ../test2 && git apply --stat ../test.patch)'
  38
  39test_expect_success 'gitdir required mode on normal repos' '
  40        (git apply --check --index test.patch &&
  41        cd test && git apply --check --index ../test.patch)'
  42
  43test_expect_success 'gitdir required mode on unsupported repo' '
  44        (cd test2 && test_must_fail git apply --check --index ../test.patch)
  45'
  46
  47test_done