]>
Commit | Line | Data |
---|---|---|
ef79b1f8 NTND |
1 | #!/bin/sh |
2 | ||
3 | test_description='test case exclude pathspec' | |
4 | ||
5 | . ./test-lib.sh | |
6 | ||
7 | test_expect_success 'setup' ' | |
8 | for p in file sub/file sub/sub/file sub/file2 sub/sub/sub/file sub2/file; do | |
9 | if echo $p | grep /; then | |
7b8c0b53 | 10 | mkdir -p $(dirname $p) |
ef79b1f8 NTND |
11 | fi && |
12 | : >$p && | |
13 | git add $p && | |
14 | git commit -m $p | |
15 | done && | |
16 | git log --oneline --format=%s >actual && | |
17 | cat <<EOF >expect && | |
18 | sub2/file | |
19 | sub/sub/sub/file | |
20 | sub/file2 | |
21 | sub/sub/file | |
22 | sub/file | |
23 | file | |
24 | EOF | |
25 | test_cmp expect actual | |
26 | ' | |
27 | ||
93dbefb3 | 28 | test_expect_success 'exclude only pathspec uses default implicit pathspec' ' |
859b7f1d LT |
29 | git log --oneline --format=%s -- . ":(exclude)sub" >expect && |
30 | git log --oneline --format=%s -- ":(exclude)sub" >actual && | |
31 | test_cmp expect actual | |
ef79b1f8 NTND |
32 | ' |
33 | ||
34 | test_expect_success 't_e_i() exclude sub' ' | |
60687de5 | 35 | git log --oneline --format=%s -- . ":(exclude)sub" >actual && |
ef79b1f8 NTND |
36 | cat <<EOF >expect && |
37 | sub2/file | |
38 | file | |
39 | EOF | |
40 | test_cmp expect actual | |
41 | ' | |
42 | ||
43 | test_expect_success 't_e_i() exclude sub/sub/file' ' | |
60687de5 | 44 | git log --oneline --format=%s -- . ":(exclude)sub/sub/file" >actual && |
ef79b1f8 NTND |
45 | cat <<EOF >expect && |
46 | sub2/file | |
47 | sub/sub/sub/file | |
48 | sub/file2 | |
49 | sub/file | |
50 | file | |
51 | EOF | |
52 | test_cmp expect actual | |
53 | ' | |
54 | ||
55 | test_expect_success 't_e_i() exclude sub using mnemonic' ' | |
60687de5 | 56 | git log --oneline --format=%s -- . ":!sub" >actual && |
ef79b1f8 NTND |
57 | cat <<EOF >expect && |
58 | sub2/file | |
59 | file | |
60 | EOF | |
61 | test_cmp expect actual | |
62 | ' | |
63 | ||
64 | test_expect_success 't_e_i() exclude :(icase)SUB' ' | |
60687de5 | 65 | git log --oneline --format=%s -- . ":(exclude,icase)SUB" >actual && |
ef79b1f8 NTND |
66 | cat <<EOF >expect && |
67 | sub2/file | |
68 | file | |
69 | EOF | |
70 | test_cmp expect actual | |
71 | ' | |
72 | ||
73 | test_expect_success 't_e_i() exclude sub2 from sub' ' | |
74 | ( | |
75 | cd sub && | |
60687de5 | 76 | git log --oneline --format=%s -- :/ ":/!sub2" >actual && |
ef79b1f8 NTND |
77 | cat <<EOF >expect && |
78 | sub/sub/sub/file | |
79 | sub/file2 | |
80 | sub/sub/file | |
81 | sub/file | |
82 | file | |
83 | EOF | |
84 | test_cmp expect actual | |
85 | ) | |
86 | ' | |
87 | ||
88 | test_expect_success 't_e_i() exclude sub/*file' ' | |
60687de5 | 89 | git log --oneline --format=%s -- . ":(exclude)sub/*file" >actual && |
ef79b1f8 NTND |
90 | cat <<EOF >expect && |
91 | sub2/file | |
92 | sub/file2 | |
93 | file | |
94 | EOF | |
95 | test_cmp expect actual | |
96 | ' | |
97 | ||
98 | test_expect_success 't_e_i() exclude :(glob)sub/*/file' ' | |
60687de5 | 99 | git log --oneline --format=%s -- . ":(exclude,glob)sub/*/file" >actual && |
ef79b1f8 NTND |
100 | cat <<EOF >expect && |
101 | sub2/file | |
102 | sub/sub/sub/file | |
103 | sub/file2 | |
104 | sub/file | |
105 | file | |
106 | EOF | |
107 | test_cmp expect actual | |
108 | ' | |
109 | ||
110 | test_expect_success 'm_p_d() exclude sub' ' | |
60687de5 | 111 | git ls-files -- . ":(exclude)sub" >actual && |
ef79b1f8 NTND |
112 | cat <<EOF >expect && |
113 | file | |
114 | sub2/file | |
115 | EOF | |
116 | test_cmp expect actual | |
117 | ' | |
118 | ||
119 | test_expect_success 'm_p_d() exclude sub/sub/file' ' | |
60687de5 | 120 | git ls-files -- . ":(exclude)sub/sub/file" >actual && |
ef79b1f8 NTND |
121 | cat <<EOF >expect && |
122 | file | |
123 | sub/file | |
124 | sub/file2 | |
125 | sub/sub/sub/file | |
126 | sub2/file | |
127 | EOF | |
128 | test_cmp expect actual | |
129 | ' | |
130 | ||
131 | test_expect_success 'm_p_d() exclude sub using mnemonic' ' | |
60687de5 | 132 | git ls-files -- . ":!sub" >actual && |
ef79b1f8 NTND |
133 | cat <<EOF >expect && |
134 | file | |
135 | sub2/file | |
136 | EOF | |
137 | test_cmp expect actual | |
138 | ' | |
139 | ||
140 | test_expect_success 'm_p_d() exclude :(icase)SUB' ' | |
60687de5 | 141 | git ls-files -- . ":(exclude,icase)SUB" >actual && |
ef79b1f8 NTND |
142 | cat <<EOF >expect && |
143 | file | |
144 | sub2/file | |
145 | EOF | |
146 | test_cmp expect actual | |
147 | ' | |
148 | ||
149 | test_expect_success 'm_p_d() exclude sub2 from sub' ' | |
150 | ( | |
151 | cd sub && | |
60687de5 | 152 | git ls-files -- :/ ":/!sub2" >actual && |
ef79b1f8 NTND |
153 | cat <<EOF >expect && |
154 | ../file | |
155 | file | |
156 | file2 | |
157 | sub/file | |
158 | sub/sub/file | |
159 | EOF | |
160 | test_cmp expect actual | |
161 | ) | |
162 | ' | |
163 | ||
164 | test_expect_success 'm_p_d() exclude sub/*file' ' | |
60687de5 | 165 | git ls-files -- . ":(exclude)sub/*file" >actual && |
ef79b1f8 NTND |
166 | cat <<EOF >expect && |
167 | file | |
168 | sub/file2 | |
169 | sub2/file | |
170 | EOF | |
171 | test_cmp expect actual | |
172 | ' | |
173 | ||
174 | test_expect_success 'm_p_d() exclude :(glob)sub/*/file' ' | |
60687de5 | 175 | git ls-files -- . ":(exclude,glob)sub/*/file" >actual && |
ef79b1f8 NTND |
176 | cat <<EOF >expect && |
177 | file | |
178 | sub/file | |
179 | sub/file2 | |
180 | sub/sub/sub/file | |
181 | sub2/file | |
182 | EOF | |
183 | test_cmp expect actual | |
184 | ' | |
185 | ||
93dbefb3 MR |
186 | test_expect_success 'multiple exclusions' ' |
187 | git ls-files -- ":^*/file2" ":^sub2" >actual && | |
188 | cat <<-\EOF >expect && | |
189 | file | |
190 | sub/file | |
191 | sub/sub/file | |
192 | sub/sub/sub/file | |
193 | EOF | |
194 | test_cmp expect actual | |
195 | ' | |
196 | ||
ef79b1f8 | 197 | test_done |