Merge git://git.kernel.org/pub/scm/gitk/gitk
[gitweb.git] / t / t1300-repo-config.sh
index 1c43cc333d00827dd6f2b8e6aa605b3390ac6a45..42eac2a7cb0c8404b09a669c9526606eb89ab80e 100755 (executable)
@@ -325,6 +325,9 @@ EOF
 
 test_expect_success 'new variable inserts into proper section' 'cmp .git/config expect'
 
+test_expect_success 'alternative GIT_CONFIG (non-existing file should fail)' \
+       'git config --file non-existing-config -l; test $? != 0'
+
 cat > other-config << EOF
 [ein]
        bahn = strasse
@@ -338,6 +341,9 @@ GIT_CONFIG=other-config git config -l > output
 
 test_expect_success 'alternative GIT_CONFIG' 'cmp output expect'
 
+test_expect_success 'alternative GIT_CONFIG (--file)' \
+       'git config --file other-config -l > output && cmp output expect'
+
 GIT_CONFIG=other-config git config anwohner.park ausweis
 
 cat > expect << EOF
@@ -442,6 +448,23 @@ test_expect_success numbers '
        test z1048576 = "z$m"
 '
 
+cat > expect <<EOF
+fatal: bad config value for 'aninvalid.unit' in .git/config
+EOF
+
+test_expect_success 'invalid unit' '
+
+       git config aninvalid.unit "1auto" &&
+       s=$(git config aninvalid.unit) &&
+       test "z1auto" = "z$s" &&
+       if git config --int --get aninvalid.unit 2>actual
+       then
+               echo config should have failed
+               false
+       fi &&
+       cmp actual expect
+'
+
 cat > expect << EOF
 true
 false
@@ -585,14 +608,29 @@ Qsection.sub=section.val4
 Qsection.sub=section.val5Q
 EOF
 
-git config --null --list | tr '[\000]' 'Q' > result
+git config --null --list | tr '\000' 'Q' > result
 echo >>result
 
 test_expect_success '--null --list' 'cmp result expect'
 
-git config --null --get-regexp 'val[0-9]' | tr '[\000]' 'Q' > result
+git config --null --get-regexp 'val[0-9]' | tr '\000' 'Q' > result
 echo >>result
 
 test_expect_success '--null --get-regexp' 'cmp result expect'
 
+test_expect_success 'symlinked configuration' '
+
+       ln -s notyet myconfig &&
+       GIT_CONFIG=myconfig git config test.frotz nitfol &&
+       test -h myconfig &&
+       test -f notyet &&
+       test "z$(GIT_CONFIG=notyet git config test.frotz)" = znitfol &&
+       GIT_CONFIG=myconfig git config test.xyzzy rezrov &&
+       test -h myconfig &&
+       test -f notyet &&
+       test "z$(GIT_CONFIG=notyet git config test.frotz)" = znitfol &&
+       test "z$(GIT_CONFIG=notyet git config test.xyzzy)" = zrezrov
+
+'
+
 test_done