Skip to content

Commit eb8c5b8

Browse files
apelissegitster
authored andcommitted
git-status: Test --ignored behavior
Test all possible use-cases of git-status "--ignored" with the "--untracked-files" option with values "normal" and "all": - An untracked directory is listed as untracked if it has a mix of untracked and ignored files in it. With -uall, ignored/untracked files are listed as ignored/untracked. - An untracked directory with only ignored files is listed as ignored. With -uall, all files in the directory are listed. - An ignored directory is listed as ignored. With -uall, all files in the directory are listed as ignored. - An ignored and committed directory is listed as ignored if it has untracked files. With -uall, all untracked files in the directory are listed as ignored. Signed-off-by: Antoine Pelisse <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 721ac4e commit eb8c5b8

File tree

1 file changed

+146
-0
lines changed

1 file changed

+146
-0
lines changed

t/t7061-wtstatus-ignore.sh

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
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+
cat >expected <<\EOF
24+
?? .gitignore
25+
?? actual
26+
?? expected
27+
?? untracked/uncommitted
28+
!! untracked/ignored
29+
EOF
30+
31+
test_expect_success 'status untracked directory with --ignored -u' '
32+
git status --porcelain --ignored -u >actual &&
33+
test_cmp expected actual
34+
'
35+
36+
cat >expected <<\EOF
37+
?? .gitignore
38+
?? actual
39+
?? expected
40+
!! ignored/
41+
EOF
42+
43+
test_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+
51+
cat >expected <<\EOF
52+
?? .gitignore
53+
?? actual
54+
?? expected
55+
!! ignored/uncommitted
56+
EOF
57+
58+
test_expect_success 'status ignored directory with --ignore -u' '
59+
git status --porcelain --ignored -u >actual &&
60+
test_cmp expected actual
61+
'
62+
63+
cat >expected <<\EOF
64+
?? .gitignore
65+
?? actual
66+
?? expected
67+
!! untracked-ignored/
68+
EOF
69+
70+
test_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+
80+
cat >expected <<\EOF
81+
?? .gitignore
82+
?? actual
83+
?? expected
84+
!! untracked-ignored/ignored
85+
!! untracked-ignored/test/ignored
86+
EOF
87+
88+
test_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+
93+
cat >expected <<\EOF
94+
?? .gitignore
95+
?? actual
96+
?? expected
97+
EOF
98+
99+
test_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+
110+
cat >expected <<\EOF
111+
?? .gitignore
112+
?? actual
113+
?? expected
114+
EOF
115+
116+
test_expect_success 'status ignored tracked directory with --ignore -u' '
117+
git status --porcelain --ignored -u >actual &&
118+
test_cmp expected actual
119+
'
120+
121+
cat >expected <<\EOF
122+
?? .gitignore
123+
?? actual
124+
?? expected
125+
!! tracked/
126+
EOF
127+
128+
test_expect_success 'status ignored tracked directory and uncommitted file with --ignore' '
129+
: >tracked/uncommitted &&
130+
git status --porcelain --ignored >actual &&
131+
test_cmp expected actual
132+
'
133+
134+
cat >expected <<\EOF
135+
?? .gitignore
136+
?? actual
137+
?? expected
138+
!! tracked/uncommitted
139+
EOF
140+
141+
test_expect_success 'status ignored tracked directory and uncommitted file with --ignore -u' '
142+
git status --porcelain --ignored -u >actual &&
143+
test_cmp expected actual
144+
'
145+
146+
test_done

0 commit comments

Comments
 (0)