]> git.ipfire.org Git - thirdparty/git.git/blame - t/t7061-wtstatus-ignore.sh
The third batch
[thirdparty/git.git] / t / t7061-wtstatus-ignore.sh
CommitLineData
eb8c5b87
AP
1#!/bin/sh
2
3test_description='git-status ignored files'
4
5. ./test-lib.sh
6
7cat >expected <<\EOF
8?? .gitignore
9?? actual
10?? expected
11?? untracked/
0a81d4a5 12!! untracked/ignored
eb8c5b87
AP
13EOF
14
fb898888 15test_expect_success 'status untracked directory with --ignored' '
eb8c5b87
AP
16 echo "ignored" >.gitignore &&
17 mkdir untracked &&
18 : >untracked/ignored &&
19 : >untracked/uncommitted &&
20 git status --porcelain --ignored >actual &&
21 test_cmp expected actual
22'
23
fb898888 24test_expect_success 'same with gitignore starting with BOM' '
245e1c19
CMN
25 printf "\357\273\277ignored\n" >.gitignore &&
26 mkdir -p untracked &&
27 : >untracked/ignored &&
28 : >untracked/uncommitted &&
29 git status --porcelain --ignored >actual &&
30 test_cmp expected actual
31'
32
cada7308
33test_expect_success 'status untracked files --ignored with pathspec (no match)' '
34 git status --porcelain --ignored -- untracked/i >actual &&
35 test_must_be_empty actual &&
36 git status --porcelain --ignored -- untracked/u >actual &&
37 test_must_be_empty actual
38'
39
40test_expect_success 'status untracked files --ignored with pathspec (literal match)' '
41 git status --porcelain --ignored -- untracked/ignored >actual &&
42 echo "!! untracked/ignored" >expected &&
43 test_cmp expected actual &&
44 git status --porcelain --ignored -- untracked/uncommitted >actual &&
45 echo "?? untracked/uncommitted" >expected &&
46 test_cmp expected actual
47'
48
49test_expect_success 'status untracked files --ignored with pathspec (glob match)' '
50 git status --porcelain --ignored -- untracked/i\* >actual &&
51 echo "!! untracked/ignored" >expected &&
52 test_cmp expected actual &&
53 git status --porcelain --ignored -- untracked/u\* >actual &&
54 echo "?? untracked/uncommitted" >expected &&
55 test_cmp expected actual
56'
57
eb8c5b87
AP
58cat >expected <<\EOF
59?? .gitignore
60?? actual
61?? expected
62?? untracked/uncommitted
63!! untracked/ignored
64EOF
65
66test_expect_success 'status untracked directory with --ignored -u' '
67 git status --porcelain --ignored -u >actual &&
68 test_cmp expected actual
69'
be8a84c5 70cat >expected <<\EOF
a2b13367 71?? untracked/
be8a84c5
KB
72!! untracked/ignored
73EOF
74
777b4203 75test_expect_success 'status of untracked directory with --ignored works with or without prefix' '
a2b13367
EN
76 git status --porcelain --ignored >tmp &&
77 grep untracked/ tmp >actual &&
78 rm tmp &&
79 test_cmp expected actual &&
80
be8a84c5
KB
81 git status --porcelain --ignored untracked/ >actual &&
82 test_cmp expected actual
83'
84
85cat >expected <<\EOF
86?? untracked/uncommitted
87!! untracked/ignored
88EOF
89
90test_expect_success 'status prefixed untracked sub-directory with --ignored -u' '
91 git status --porcelain --ignored -u untracked/ >actual &&
92 test_cmp expected actual
93'
eb8c5b87
AP
94
95cat >expected <<\EOF
96?? .gitignore
97?? actual
98?? expected
99!! ignored/
100EOF
101
102test_expect_success 'status ignored directory with --ignore' '
103 rm -rf untracked &&
104 mkdir ignored &&
105 : >ignored/uncommitted &&
106 git status --porcelain --ignored >actual &&
107 test_cmp expected actual
108'
109
110cat >expected <<\EOF
111?? .gitignore
112?? actual
113?? expected
114!! ignored/uncommitted
115EOF
116
117test_expect_success 'status ignored directory with --ignore -u' '
118 git status --porcelain --ignored -u >actual &&
119 test_cmp expected actual
120'
121
122cat >expected <<\EOF
123?? .gitignore
124?? actual
125?? expected
eb8c5b87
AP
126EOF
127
c94ab010 128test_expect_success 'status empty untracked directory with --ignore' '
eb8c5b87
AP
129 rm -rf ignored &&
130 mkdir untracked-ignored &&
131 mkdir untracked-ignored/test &&
c94ab010
KB
132 git status --porcelain --ignored >actual &&
133 test_cmp expected actual
134'
135
136cat >expected <<\EOF
137?? .gitignore
138?? actual
139?? expected
140EOF
141
142test_expect_success 'status empty untracked directory with --ignore -u' '
143 git status --porcelain --ignored -u >actual &&
144 test_cmp expected actual
145'
146
147cat >expected <<\EOF
148?? .gitignore
149?? actual
150?? expected
151!! untracked-ignored/
152EOF
153
154test_expect_success 'status untracked directory with ignored files with --ignore' '
eb8c5b87
AP
155 : >untracked-ignored/ignored &&
156 : >untracked-ignored/test/ignored &&
157 git status --porcelain --ignored >actual &&
158 test_cmp expected actual
159'
160
161cat >expected <<\EOF
162?? .gitignore
163?? actual
164?? expected
165!! untracked-ignored/ignored
166!! untracked-ignored/test/ignored
167EOF
168
169test_expect_success 'status untracked directory with ignored files with --ignore -u' '
170 git status --porcelain --ignored -u >actual &&
171 test_cmp expected actual
172'
173
174cat >expected <<\EOF
175?? .gitignore
176?? actual
177?? expected
178EOF
179
180test_expect_success 'status ignored tracked directory with --ignore' '
181 rm -rf untracked-ignored &&
182 mkdir tracked &&
183 : >tracked/committed &&
184 git add tracked/committed &&
185 git commit -m. &&
186 echo "tracked" >.gitignore &&
187 git status --porcelain --ignored >actual &&
188 test_cmp expected actual
189'
190
191cat >expected <<\EOF
192?? .gitignore
193?? actual
194?? expected
195EOF
196
197test_expect_success 'status ignored tracked directory with --ignore -u' '
198 git status --porcelain --ignored -u >actual &&
199 test_cmp expected actual
200'
201
0104c9e7
KB
202cat >expected <<\EOF
203?? .gitignore
204?? actual
205?? expected
206EOF
207
208test_expect_success 'status ignored tracked directory and ignored file with --ignore' '
209 echo "committed" >>.gitignore &&
210 git status --porcelain --ignored >actual &&
211 test_cmp expected actual
212'
213
214cat >expected <<\EOF
215?? .gitignore
216?? actual
217?? expected
218EOF
219
220test_expect_success 'status ignored tracked directory and ignored file with --ignore -u' '
221 git status --porcelain --ignored -u >actual &&
222 test_cmp expected actual
223'
224
eb8c5b87
AP
225cat >expected <<\EOF
226?? .gitignore
227?? actual
228?? expected
5bd8e2d8 229!! tracked/uncommitted
eb8c5b87
AP
230EOF
231
232test_expect_success 'status ignored tracked directory and uncommitted file with --ignore' '
0104c9e7 233 echo "tracked" >.gitignore &&
eb8c5b87
AP
234 : >tracked/uncommitted &&
235 git status --porcelain --ignored >actual &&
236 test_cmp expected actual
237'
238
239cat >expected <<\EOF
240?? .gitignore
241?? actual
242?? expected
243!! tracked/uncommitted
244EOF
245
246test_expect_success 'status ignored tracked directory and uncommitted file with --ignore -u' '
247 git status --porcelain --ignored -u >actual &&
248 test_cmp expected actual
249'
250
560bb7a7
KB
251cat >expected <<\EOF
252?? .gitignore
253?? actual
254?? expected
5bd8e2d8 255!! tracked/ignored/
560bb7a7
KB
256EOF
257
258test_expect_success 'status ignored tracked directory with uncommitted file in untracked subdir with --ignore' '
259 rm -rf tracked/uncommitted &&
260 mkdir tracked/ignored &&
261 : >tracked/ignored/uncommitted &&
262 git status --porcelain --ignored >actual &&
263 test_cmp expected actual
264'
265
266cat >expected <<\EOF
267?? .gitignore
268?? actual
269?? expected
270!! tracked/ignored/uncommitted
271EOF
272
273test_expect_success 'status ignored tracked directory with uncommitted file in untracked subdir with --ignore -u' '
274 git status --porcelain --ignored -u >actual &&
275 test_cmp expected actual
276'
277
289ff559
KB
278cat >expected <<\EOF
279?? .gitignore
280?? actual
281?? expected
5bd8e2d8 282!! tracked/ignored/uncommitted
289ff559
KB
283EOF
284
285test_expect_success 'status ignored tracked directory with uncommitted file in tracked subdir with --ignore' '
286 : >tracked/ignored/committed &&
287 git add -f tracked/ignored/committed &&
288 git commit -m. &&
289 git status --porcelain --ignored >actual &&
290 test_cmp expected actual
291'
292
293cat >expected <<\EOF
294?? .gitignore
295?? actual
296?? expected
297!! tracked/ignored/uncommitted
298EOF
299
300test_expect_success 'status ignored tracked directory with uncommitted file in tracked subdir with --ignore -u' '
301 git status --porcelain --ignored -u >actual &&
302 test_cmp expected actual
303'
304
fadb4820
JS
305cat >expected <<\EOF
306!! tracked/submodule/
307EOF
308
309test_expect_success 'status ignores submodule in excluded directory' '
310 git init tracked/submodule &&
311 test_commit -C tracked/submodule initial &&
312 git status --porcelain --ignored -u tracked/submodule >actual &&
313 test_cmp expected actual
314'
315
eb8c5b87 316test_done