]>
Commit | Line | Data |
---|---|---|
84054f79 JK |
1 | #!/bin/sh |
2 | ||
3 | test_description='tests for git clone -c key=value' | |
4 | . ./test-lib.sh | |
5 | ||
6 | test_expect_success 'clone -c sets config in cloned repo' ' | |
7 | rm -rf child && | |
8 | git clone -c core.foo=bar . child && | |
9 | echo bar >expect && | |
10 | git --git-dir=child/.git config core.foo >actual && | |
11 | test_cmp expect actual | |
12 | ' | |
13 | ||
14 | test_expect_success 'clone -c can set multi-keys' ' | |
15 | rm -rf child && | |
16 | git clone -c core.foo=bar -c core.foo=baz . child && | |
17 | { echo bar; echo baz; } >expect && | |
18 | git --git-dir=child/.git config --get-all core.foo >actual && | |
19 | test_cmp expect actual | |
20 | ' | |
21 | ||
db4eca1f JN |
22 | test_expect_success 'clone -c can set multi-keys, including some empty' ' |
23 | rm -rf child && | |
24 | git clone -c credential.helper= -c credential.helper=hi . child && | |
25 | printf "%s\n" "" hi >expect && | |
26 | git --git-dir=child/.git config --get-all credential.helper >actual && | |
27 | test_cmp expect actual | |
28 | ' | |
29 | ||
84054f79 JK |
30 | test_expect_success 'clone -c without a value is boolean true' ' |
31 | rm -rf child && | |
32 | git clone -c core.foo . child && | |
33 | echo true >expect && | |
34 | git --git-dir=child/.git config --bool core.foo >actual && | |
35 | test_cmp expect actual | |
36 | ' | |
37 | ||
38 | test_expect_success 'clone -c config is available during clone' ' | |
39 | echo content >file && | |
40 | git add file && | |
41 | git commit -m one && | |
42 | rm -rf child && | |
43 | git clone -c core.autocrlf . child && | |
44 | printf "content\\r\\n" >expect && | |
45 | test_cmp expect child/file | |
46 | ' | |
47 | ||
f30afdab JS |
48 | # Tests for the hidden file attribute on windows |
49 | is_hidden () { | |
50 | # Use the output of `attrib`, ignore the absolute path | |
51 | case "$(attrib "$1")" in *H*?:*) return 0;; esac | |
52 | return 1 | |
53 | } | |
54 | ||
55 | test_expect_success MINGW 'clone -c core.hideDotFiles' ' | |
56 | test_commit attributes .gitattributes "" && | |
57 | rm -rf child && | |
58 | git clone -c core.hideDotFiles=false . child && | |
59 | ! is_hidden child/.gitattributes && | |
60 | rm -rf child && | |
61 | git clone -c core.hideDotFiles=dotGitOnly . child && | |
62 | ! is_hidden child/.gitattributes && | |
63 | rm -rf child && | |
64 | git clone -c core.hideDotFiles=true . child && | |
65 | is_hidden child/.gitattributes | |
66 | ' | |
67 | ||
84054f79 | 68 | test_done |