28b7d957a5268837e2789e2b490d552fbceae5cc
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/
12EOF
13
14test_expect_success 'status untracked directory with --ignored' '
15 echo "ignored" >.gitignore &&
16 mkdir untracked &&
17 : >untracked/ignored &&
18 : >untracked/uncommitted &&
19 git status --porcelain --ignored >actual &&
20 test_cmp expected actual
21'
22
23cat >expected <<\EOF
24?? .gitignore
25?? actual
26?? expected
27?? untracked/uncommitted
28!! untracked/ignored
29EOF
30
31test_expect_success 'status untracked directory with --ignored -u' '
32 git status --porcelain --ignored -u >actual &&
33 test_cmp expected actual
34'
35
36cat >expected <<\EOF
37?? .gitignore
38?? actual
39?? expected
40!! ignored/
41EOF
42
43test_expect_success 'status ignored directory with --ignore' '
44 rm -rf untracked &&
45 mkdir ignored &&
46 : >ignored/uncommitted &&
47 git status --porcelain --ignored >actual &&
48 test_cmp expected actual
49'
50
51cat >expected <<\EOF
52?? .gitignore
53?? actual
54?? expected
55!! ignored/uncommitted
56EOF
57
58test_expect_success 'status ignored directory with --ignore -u' '
59 git status --porcelain --ignored -u >actual &&
60 test_cmp expected actual
61'
62
63cat >expected <<\EOF
64?? .gitignore
65?? actual
66?? expected
67!! untracked-ignored/
68EOF
69
70test_expect_success 'status untracked directory with ignored files with --ignore' '
71 rm -rf ignored &&
72 mkdir untracked-ignored &&
73 mkdir untracked-ignored/test &&
74 : >untracked-ignored/ignored &&
75 : >untracked-ignored/test/ignored &&
76 git status --porcelain --ignored >actual &&
77 test_cmp expected actual
78'
79
80cat >expected <<\EOF
81?? .gitignore
82?? actual
83?? expected
84!! untracked-ignored/ignored
85!! untracked-ignored/test/ignored
86EOF
87
88test_expect_success 'status untracked directory with ignored files with --ignore -u' '
89 git status --porcelain --ignored -u >actual &&
90 test_cmp expected actual
91'
92
93cat >expected <<\EOF
94?? .gitignore
95?? actual
96?? expected
97EOF
98
99test_expect_success 'status ignored tracked directory with --ignore' '
100 rm -rf untracked-ignored &&
101 mkdir tracked &&
102 : >tracked/committed &&
103 git add tracked/committed &&
104 git commit -m. &&
105 echo "tracked" >.gitignore &&
106 git status --porcelain --ignored >actual &&
107 test_cmp expected actual
108'
109
110cat >expected <<\EOF
111?? .gitignore
112?? actual
113?? expected
114EOF
115
116test_expect_success 'status ignored tracked directory with --ignore -u' '
117 git status --porcelain --ignored -u >actual &&
118 test_cmp expected actual
119'
120
121cat >expected <<\EOF
122?? .gitignore
123?? actual
124?? expected
125EOF
126
127test_expect_success 'status ignored tracked directory and ignored file with --ignore' '
128 echo "committed" >>.gitignore &&
129 git status --porcelain --ignored >actual &&
130 test_cmp expected actual
131'
132
133cat >expected <<\EOF
134?? .gitignore
135?? actual
136?? expected
137EOF
138
139test_expect_success 'status ignored tracked directory and ignored file with --ignore -u' '
140 git status --porcelain --ignored -u >actual &&
141 test_cmp expected actual
142'
143
144cat >expected <<\EOF
145?? .gitignore
146?? actual
147?? expected
148!! tracked/
149EOF
150
151test_expect_success 'status ignored tracked directory and uncommitted file with --ignore' '
152 echo "tracked" >.gitignore &&
153 : >tracked/uncommitted &&
154 git status --porcelain --ignored >actual &&
155 test_cmp expected actual
156'
157
158cat >expected <<\EOF
159?? .gitignore
160?? actual
161?? expected
162!! tracked/uncommitted
163EOF
164
165test_expect_success 'status ignored tracked directory and uncommitted file with --ignore -u' '
166 git status --porcelain --ignored -u >actual &&
167 test_cmp expected actual
168'
169
170cat >expected <<\EOF
171?? .gitignore
172?? actual
173?? expected
174!! tracked/
175EOF
176
177test_expect_success 'status ignored tracked directory with uncommitted file in untracked subdir with --ignore' '
178 rm -rf tracked/uncommitted &&
179 mkdir tracked/ignored &&
180 : >tracked/ignored/uncommitted &&
181 git status --porcelain --ignored >actual &&
182 test_cmp expected actual
183'
184
185cat >expected <<\EOF
186?? .gitignore
187?? actual
188?? expected
189!! tracked/ignored/uncommitted
190EOF
191
192test_expect_success 'status ignored tracked directory with uncommitted file in untracked subdir with --ignore -u' '
193 git status --porcelain --ignored -u >actual &&
194 test_cmp expected actual
195'
196
197cat >expected <<\EOF
198?? .gitignore
199?? actual
200?? expected
201!! tracked/
202EOF
203
204test_expect_success 'status ignored tracked directory with uncommitted file in tracked subdir with --ignore' '
205 : >tracked/ignored/committed &&
206 git add -f tracked/ignored/committed &&
207 git commit -m. &&
208 git status --porcelain --ignored >actual &&
209 test_cmp expected actual
210'
211
212cat >expected <<\EOF
213?? .gitignore
214?? actual
215?? expected
216!! tracked/ignored/uncommitted
217EOF
218
219test_expect_success 'status ignored tracked directory with uncommitted file in tracked subdir with --ignore -u' '
220 git status --porcelain --ignored -u >actual &&
221 test_cmp expected actual
222'
223
224test_done