]> git.ipfire.org Git - thirdparty/git.git/blob - t/t7061-wtstatus-ignore.sh
Convert sha1_array_lookup to take struct object_id
[thirdparty/git.git] / t / t7061-wtstatus-ignore.sh
1 #!/bin/sh
2
3 test_description='git-status ignored files'
4
5 . ./test-lib.sh
6
7 cat >expected <<\EOF
8 ?? .gitignore
9 ?? actual
10 ?? expected
11 ?? untracked/
12 EOF
13
14 test_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
23 test_expect_success 'same with gitignore starting with BOM' '
24 printf "\357\273\277ignored\n" >.gitignore &&
25 mkdir -p untracked &&
26 : >untracked/ignored &&
27 : >untracked/uncommitted &&
28 git status --porcelain --ignored >actual &&
29 test_cmp expected actual
30 '
31
32 cat >expected <<\EOF
33 ?? .gitignore
34 ?? actual
35 ?? expected
36 ?? untracked/uncommitted
37 !! untracked/ignored
38 EOF
39
40 test_expect_success 'status untracked directory with --ignored -u' '
41 git status --porcelain --ignored -u >actual &&
42 test_cmp expected actual
43 '
44 cat >expected <<\EOF
45 ?? untracked/uncommitted
46 !! untracked/ignored
47 EOF
48
49 test_expect_success 'status prefixed untracked directory with --ignored' '
50 git status --porcelain --ignored untracked/ >actual &&
51 test_cmp expected actual
52 '
53
54 cat >expected <<\EOF
55 ?? untracked/uncommitted
56 !! untracked/ignored
57 EOF
58
59 test_expect_success 'status prefixed untracked sub-directory with --ignored -u' '
60 git status --porcelain --ignored -u untracked/ >actual &&
61 test_cmp expected actual
62 '
63
64 cat >expected <<\EOF
65 ?? .gitignore
66 ?? actual
67 ?? expected
68 !! ignored/
69 EOF
70
71 test_expect_success 'status ignored directory with --ignore' '
72 rm -rf untracked &&
73 mkdir ignored &&
74 : >ignored/uncommitted &&
75 git status --porcelain --ignored >actual &&
76 test_cmp expected actual
77 '
78
79 cat >expected <<\EOF
80 ?? .gitignore
81 ?? actual
82 ?? expected
83 !! ignored/uncommitted
84 EOF
85
86 test_expect_success 'status ignored directory with --ignore -u' '
87 git status --porcelain --ignored -u >actual &&
88 test_cmp expected actual
89 '
90
91 cat >expected <<\EOF
92 ?? .gitignore
93 ?? actual
94 ?? expected
95 EOF
96
97 test_expect_success 'status empty untracked directory with --ignore' '
98 rm -rf ignored &&
99 mkdir untracked-ignored &&
100 mkdir untracked-ignored/test &&
101 git status --porcelain --ignored >actual &&
102 test_cmp expected actual
103 '
104
105 cat >expected <<\EOF
106 ?? .gitignore
107 ?? actual
108 ?? expected
109 EOF
110
111 test_expect_success 'status empty untracked directory with --ignore -u' '
112 git status --porcelain --ignored -u >actual &&
113 test_cmp expected actual
114 '
115
116 cat >expected <<\EOF
117 ?? .gitignore
118 ?? actual
119 ?? expected
120 !! untracked-ignored/
121 EOF
122
123 test_expect_success 'status untracked directory with ignored files with --ignore' '
124 : >untracked-ignored/ignored &&
125 : >untracked-ignored/test/ignored &&
126 git status --porcelain --ignored >actual &&
127 test_cmp expected actual
128 '
129
130 cat >expected <<\EOF
131 ?? .gitignore
132 ?? actual
133 ?? expected
134 !! untracked-ignored/ignored
135 !! untracked-ignored/test/ignored
136 EOF
137
138 test_expect_success 'status untracked directory with ignored files with --ignore -u' '
139 git status --porcelain --ignored -u >actual &&
140 test_cmp expected actual
141 '
142
143 cat >expected <<\EOF
144 ?? .gitignore
145 ?? actual
146 ?? expected
147 EOF
148
149 test_expect_success 'status ignored tracked directory with --ignore' '
150 rm -rf untracked-ignored &&
151 mkdir tracked &&
152 : >tracked/committed &&
153 git add tracked/committed &&
154 git commit -m. &&
155 echo "tracked" >.gitignore &&
156 git status --porcelain --ignored >actual &&
157 test_cmp expected actual
158 '
159
160 cat >expected <<\EOF
161 ?? .gitignore
162 ?? actual
163 ?? expected
164 EOF
165
166 test_expect_success 'status ignored tracked directory with --ignore -u' '
167 git status --porcelain --ignored -u >actual &&
168 test_cmp expected actual
169 '
170
171 cat >expected <<\EOF
172 ?? .gitignore
173 ?? actual
174 ?? expected
175 EOF
176
177 test_expect_success 'status ignored tracked directory and ignored file with --ignore' '
178 echo "committed" >>.gitignore &&
179 git status --porcelain --ignored >actual &&
180 test_cmp expected actual
181 '
182
183 cat >expected <<\EOF
184 ?? .gitignore
185 ?? actual
186 ?? expected
187 EOF
188
189 test_expect_success 'status ignored tracked directory and ignored file with --ignore -u' '
190 git status --porcelain --ignored -u >actual &&
191 test_cmp expected actual
192 '
193
194 cat >expected <<\EOF
195 ?? .gitignore
196 ?? actual
197 ?? expected
198 !! tracked/uncommitted
199 EOF
200
201 test_expect_success 'status ignored tracked directory and uncommitted file with --ignore' '
202 echo "tracked" >.gitignore &&
203 : >tracked/uncommitted &&
204 git status --porcelain --ignored >actual &&
205 test_cmp expected actual
206 '
207
208 cat >expected <<\EOF
209 ?? .gitignore
210 ?? actual
211 ?? expected
212 !! tracked/uncommitted
213 EOF
214
215 test_expect_success 'status ignored tracked directory and uncommitted file with --ignore -u' '
216 git status --porcelain --ignored -u >actual &&
217 test_cmp expected actual
218 '
219
220 cat >expected <<\EOF
221 ?? .gitignore
222 ?? actual
223 ?? expected
224 !! tracked/ignored/
225 EOF
226
227 test_expect_success 'status ignored tracked directory with uncommitted file in untracked subdir with --ignore' '
228 rm -rf tracked/uncommitted &&
229 mkdir tracked/ignored &&
230 : >tracked/ignored/uncommitted &&
231 git status --porcelain --ignored >actual &&
232 test_cmp expected actual
233 '
234
235 cat >expected <<\EOF
236 ?? .gitignore
237 ?? actual
238 ?? expected
239 !! tracked/ignored/uncommitted
240 EOF
241
242 test_expect_success 'status ignored tracked directory with uncommitted file in untracked subdir with --ignore -u' '
243 git status --porcelain --ignored -u >actual &&
244 test_cmp expected actual
245 '
246
247 cat >expected <<\EOF
248 ?? .gitignore
249 ?? actual
250 ?? expected
251 !! tracked/ignored/uncommitted
252 EOF
253
254 test_expect_success 'status ignored tracked directory with uncommitted file in tracked subdir with --ignore' '
255 : >tracked/ignored/committed &&
256 git add -f tracked/ignored/committed &&
257 git commit -m. &&
258 git status --porcelain --ignored >actual &&
259 test_cmp expected actual
260 '
261
262 cat >expected <<\EOF
263 ?? .gitignore
264 ?? actual
265 ?? expected
266 !! tracked/ignored/uncommitted
267 EOF
268
269 test_expect_success 'status ignored tracked directory with uncommitted file in tracked subdir with --ignore -u' '
270 git status --porcelain --ignored -u >actual &&
271 test_cmp expected actual
272 '
273
274 test_done