##// END OF EJS Templates
test: move ignore test run into a subdirectory...
Durham Goode -
r25869:a72e304d stable
parent child Browse files
Show More
@@ -1,244 +1,245 b''
1 $ hg init
1 $ hg init ignorerepo
2 $ cd ignorerepo
2
3
3 Issue562: .hgignore requires newline at end:
4 Issue562: .hgignore requires newline at end:
4
5
5 $ touch foo
6 $ touch foo
6 $ touch bar
7 $ touch bar
7 $ touch baz
8 $ touch baz
8 $ cat > makeignore.py <<EOF
9 $ cat > makeignore.py <<EOF
9 > f = open(".hgignore", "w")
10 > f = open(".hgignore", "w")
10 > f.write("ignore\n")
11 > f.write("ignore\n")
11 > f.write("foo\n")
12 > f.write("foo\n")
12 > # No EOL here
13 > # No EOL here
13 > f.write("bar")
14 > f.write("bar")
14 > f.close()
15 > f.close()
15 > EOF
16 > EOF
16
17
17 $ python makeignore.py
18 $ python makeignore.py
18
19
19 Should display baz only:
20 Should display baz only:
20
21
21 $ hg status
22 $ hg status
22 ? baz
23 ? baz
23
24
24 $ rm foo bar baz .hgignore makeignore.py
25 $ rm foo bar baz .hgignore makeignore.py
25
26
26 $ touch a.o
27 $ touch a.o
27 $ touch a.c
28 $ touch a.c
28 $ touch syntax
29 $ touch syntax
29 $ mkdir dir
30 $ mkdir dir
30 $ touch dir/a.o
31 $ touch dir/a.o
31 $ touch dir/b.o
32 $ touch dir/b.o
32 $ touch dir/c.o
33 $ touch dir/c.o
33
34
34 $ hg add dir/a.o
35 $ hg add dir/a.o
35 $ hg commit -m 0
36 $ hg commit -m 0
36 $ hg add dir/b.o
37 $ hg add dir/b.o
37
38
38 $ hg status
39 $ hg status
39 A dir/b.o
40 A dir/b.o
40 ? a.c
41 ? a.c
41 ? a.o
42 ? a.o
42 ? dir/c.o
43 ? dir/c.o
43 ? syntax
44 ? syntax
44
45
45 $ echo "*.o" > .hgignore
46 $ echo "*.o" > .hgignore
46 $ hg status
47 $ hg status
47 abort: $TESTTMP/.hgignore: invalid pattern (relre): *.o (glob)
48 abort: $TESTTMP/ignorerepo/.hgignore: invalid pattern (relre): *.o (glob)
48 [255]
49 [255]
49
50
50 $ echo ".*\.o" > .hgignore
51 $ echo ".*\.o" > .hgignore
51 $ hg status
52 $ hg status
52 A dir/b.o
53 A dir/b.o
53 ? .hgignore
54 ? .hgignore
54 ? a.c
55 ? a.c
55 ? syntax
56 ? syntax
56
57
57 Check it does not ignore the current directory '.':
58 Check it does not ignore the current directory '.':
58
59
59 $ echo "^\." > .hgignore
60 $ echo "^\." > .hgignore
60 $ hg status
61 $ hg status
61 A dir/b.o
62 A dir/b.o
62 ? a.c
63 ? a.c
63 ? a.o
64 ? a.o
64 ? dir/c.o
65 ? dir/c.o
65 ? syntax
66 ? syntax
66
67
67 Test that patterns from ui.ignore options are read:
68 Test that patterns from ui.ignore options are read:
68
69
69 $ echo > .hgignore
70 $ echo > .hgignore
70 $ cat >> $HGRCPATH << EOF
71 $ cat >> $HGRCPATH << EOF
71 > [ui]
72 > [ui]
72 > ignore.other = $TESTTMP/.hg/testhgignore
73 > ignore.other = $TESTTMP/ignorerepo/.hg/testhgignore
73 > EOF
74 > EOF
74 $ echo "glob:**.o" > .hg/testhgignore
75 $ echo "glob:**.o" > .hg/testhgignore
75 $ hg status
76 $ hg status
76 A dir/b.o
77 A dir/b.o
77 ? .hgignore
78 ? .hgignore
78 ? a.c
79 ? a.c
79 ? syntax
80 ? syntax
80
81
81 empty out testhgignore
82 empty out testhgignore
82 $ echo > .hg/testhgignore
83 $ echo > .hg/testhgignore
83
84
84 Test relative ignore path (issue4473):
85 Test relative ignore path (issue4473):
85
86
86 $ cat >> $HGRCPATH << EOF
87 $ cat >> $HGRCPATH << EOF
87 > [ui]
88 > [ui]
88 > ignore.relative = .hg/testhgignorerel
89 > ignore.relative = .hg/testhgignorerel
89 > EOF
90 > EOF
90 $ echo "glob:*.o" > .hg/testhgignorerel
91 $ echo "glob:*.o" > .hg/testhgignorerel
91 $ cd dir
92 $ cd dir
92 $ hg status
93 $ hg status
93 A dir/b.o
94 A dir/b.o
94 ? .hgignore
95 ? .hgignore
95 ? a.c
96 ? a.c
96 ? syntax
97 ? syntax
97
98
98 $ cd ..
99 $ cd ..
99 $ echo > .hg/testhgignorerel
100 $ echo > .hg/testhgignorerel
100 $ echo "syntax: glob" > .hgignore
101 $ echo "syntax: glob" > .hgignore
101 $ echo "re:.*\.o" >> .hgignore
102 $ echo "re:.*\.o" >> .hgignore
102 $ hg status
103 $ hg status
103 A dir/b.o
104 A dir/b.o
104 ? .hgignore
105 ? .hgignore
105 ? a.c
106 ? a.c
106 ? syntax
107 ? syntax
107
108
108 $ echo "syntax: invalid" > .hgignore
109 $ echo "syntax: invalid" > .hgignore
109 $ hg status
110 $ hg status
110 $TESTTMP/.hgignore: ignoring invalid syntax 'invalid' (glob)
111 $TESTTMP/ignorerepo/.hgignore: ignoring invalid syntax 'invalid' (glob)
111 A dir/b.o
112 A dir/b.o
112 ? .hgignore
113 ? .hgignore
113 ? a.c
114 ? a.c
114 ? a.o
115 ? a.o
115 ? dir/c.o
116 ? dir/c.o
116 ? syntax
117 ? syntax
117
118
118 $ echo "syntax: glob" > .hgignore
119 $ echo "syntax: glob" > .hgignore
119 $ echo "*.o" >> .hgignore
120 $ echo "*.o" >> .hgignore
120 $ hg status
121 $ hg status
121 A dir/b.o
122 A dir/b.o
122 ? .hgignore
123 ? .hgignore
123 ? a.c
124 ? a.c
124 ? syntax
125 ? syntax
125
126
126 $ echo "relglob:syntax*" > .hgignore
127 $ echo "relglob:syntax*" > .hgignore
127 $ hg status
128 $ hg status
128 A dir/b.o
129 A dir/b.o
129 ? .hgignore
130 ? .hgignore
130 ? a.c
131 ? a.c
131 ? a.o
132 ? a.o
132 ? dir/c.o
133 ? dir/c.o
133
134
134 $ echo "relglob:*" > .hgignore
135 $ echo "relglob:*" > .hgignore
135 $ hg status
136 $ hg status
136 A dir/b.o
137 A dir/b.o
137
138
138 $ cd dir
139 $ cd dir
139 $ hg status .
140 $ hg status .
140 A b.o
141 A b.o
141
142
142 $ hg debugignore
143 $ hg debugignore
143 (?:(?:|.*/)[^/]*(?:/|$))
144 (?:(?:|.*/)[^/]*(?:/|$))
144
145
145 $ cd ..
146 $ cd ..
146
147
147 Check patterns that match only the directory
148 Check patterns that match only the directory
148
149
149 $ echo "^dir\$" > .hgignore
150 $ echo "^dir\$" > .hgignore
150 $ hg status
151 $ hg status
151 A dir/b.o
152 A dir/b.o
152 ? .hgignore
153 ? .hgignore
153 ? a.c
154 ? a.c
154 ? a.o
155 ? a.o
155 ? syntax
156 ? syntax
156
157
157 Check recursive glob pattern matches no directories (dir/**/c.o matches dir/c.o)
158 Check recursive glob pattern matches no directories (dir/**/c.o matches dir/c.o)
158
159
159 $ echo "syntax: glob" > .hgignore
160 $ echo "syntax: glob" > .hgignore
160 $ echo "dir/**/c.o" >> .hgignore
161 $ echo "dir/**/c.o" >> .hgignore
161 $ touch dir/c.o
162 $ touch dir/c.o
162 $ mkdir dir/subdir
163 $ mkdir dir/subdir
163 $ touch dir/subdir/c.o
164 $ touch dir/subdir/c.o
164 $ hg status
165 $ hg status
165 A dir/b.o
166 A dir/b.o
166 ? .hgignore
167 ? .hgignore
167 ? a.c
168 ? a.c
168 ? a.o
169 ? a.o
169 ? syntax
170 ? syntax
170
171
171 Check using 'include:' in ignore file
172 Check using 'include:' in ignore file
172
173
173 $ hg purge --all --config extensions.purge=
174 $ hg purge --all --config extensions.purge=
174 $ touch foo.included
175 $ touch foo.included
175
176
176 $ echo ".*.included" > otherignore
177 $ echo ".*.included" > otherignore
177 $ hg status -I "include:otherignore"
178 $ hg status -I "include:otherignore"
178 ? foo.included
179 ? foo.included
179
180
180 $ echo "include:otherignore" >> .hgignore
181 $ echo "include:otherignore" >> .hgignore
181 $ hg status
182 $ hg status
182 A dir/b.o
183 A dir/b.o
183 ? .hgignore
184 ? .hgignore
184 ? otherignore
185 ? otherignore
185
186
186 Check recursive uses of 'include:'
187 Check recursive uses of 'include:'
187
188
188 $ echo "include:nestedignore" >> otherignore
189 $ echo "include:nestedignore" >> otherignore
189 $ echo "glob:*ignore" > nestedignore
190 $ echo "glob:*ignore" > nestedignore
190 $ hg status
191 $ hg status
191 A dir/b.o
192 A dir/b.o
192
193
193 $ cp otherignore goodignore
194 $ cp otherignore goodignore
194 $ echo "include:badignore" >> otherignore
195 $ echo "include:badignore" >> otherignore
195 $ hg status
196 $ hg status
196 skipping unreadable pattern file 'badignore': No such file or directory
197 skipping unreadable pattern file 'badignore': No such file or directory
197 A dir/b.o
198 A dir/b.o
198
199
199 $ mv goodignore otherignore
200 $ mv goodignore otherignore
200
201
201 Check including subincludes
202 Check including subincludes
202
203
203 $ hg revert -q --all
204 $ hg revert -q --all
204 $ hg purge --all --config extensions.purge=
205 $ hg purge --all --config extensions.purge=
205 $ echo ".hgignore" > .hgignore
206 $ echo ".hgignore" > .hgignore
206 $ mkdir dir1 dir2
207 $ mkdir dir1 dir2
207 $ touch dir1/file1 dir1/file2 dir2/file1 dir2/file2
208 $ touch dir1/file1 dir1/file2 dir2/file1 dir2/file2
208 $ echo "subinclude:dir2/.hgignore" >> .hgignore
209 $ echo "subinclude:dir2/.hgignore" >> .hgignore
209 $ echo "glob:file*2" > dir2/.hgignore
210 $ echo "glob:file*2" > dir2/.hgignore
210 $ hg status
211 $ hg status
211 ? dir1/file1
212 ? dir1/file1
212 ? dir1/file2
213 ? dir1/file2
213 ? dir2/file1
214 ? dir2/file1
214
215
215 Check including subincludes with regexs
216 Check including subincludes with regexs
216
217
217 $ echo "subinclude:dir1/.hgignore" >> .hgignore
218 $ echo "subinclude:dir1/.hgignore" >> .hgignore
218 $ echo "regexp:f.le1" > dir1/.hgignore
219 $ echo "regexp:f.le1" > dir1/.hgignore
219
220
220 $ hg status
221 $ hg status
221 ? dir1/file2
222 ? dir1/file2
222 ? dir2/file1
223 ? dir2/file1
223
224
224 Check multiple levels of sub-ignores
225 Check multiple levels of sub-ignores
225
226
226 $ mkdir dir1/subdir
227 $ mkdir dir1/subdir
227 $ touch dir1/subdir/subfile1 dir1/subdir/subfile3 dir1/subdir/subfile4
228 $ touch dir1/subdir/subfile1 dir1/subdir/subfile3 dir1/subdir/subfile4
228 $ echo "subinclude:subdir/.hgignore" >> dir1/.hgignore
229 $ echo "subinclude:subdir/.hgignore" >> dir1/.hgignore
229 $ echo "glob:subfil*3" >> dir1/subdir/.hgignore
230 $ echo "glob:subfil*3" >> dir1/subdir/.hgignore
230
231
231 $ hg status
232 $ hg status
232 ? dir1/file2
233 ? dir1/file2
233 ? dir1/subdir/subfile4
234 ? dir1/subdir/subfile4
234 ? dir2/file1
235 ? dir2/file1
235
236
236 Check include subignore at the same level
237 Check include subignore at the same level
237
238
238 $ mv dir1/subdir/.hgignore dir1/.hgignoretwo
239 $ mv dir1/subdir/.hgignore dir1/.hgignoretwo
239 $ echo "regexp:f.le1" > dir1/.hgignore
240 $ echo "regexp:f.le1" > dir1/.hgignore
240 $ echo "subinclude:.hgignoretwo" >> dir1/.hgignore
241 $ echo "subinclude:.hgignoretwo" >> dir1/.hgignore
241 $ echo "glob:file*2" > dir1/.hgignoretwo
242 $ echo "glob:file*2" > dir1/.hgignoretwo
242
243
243 $ hg status | grep file2
244 $ hg status | grep file2
244 [1]
245 [1]
General Comments 0
You need to be logged in to leave comments. Login now