##// END OF EJS Templates
test-status: add test for removed-and-untracked state (BC)...
Yuya Nishihara -
r21942:64fe488b stable
parent child Browse files
Show More
@@ -1,345 +1,352 b''
1 $ hg init repo1
1 $ hg init repo1
2 $ cd repo1
2 $ cd repo1
3 $ mkdir a b a/1 b/1 b/2
3 $ mkdir a b a/1 b/1 b/2
4 $ touch in_root a/in_a b/in_b a/1/in_a_1 b/1/in_b_1 b/2/in_b_2
4 $ touch in_root a/in_a b/in_b a/1/in_a_1 b/1/in_b_1 b/2/in_b_2
5
5
6 hg status in repo root:
6 hg status in repo root:
7
7
8 $ hg status
8 $ hg status
9 ? a/1/in_a_1
9 ? a/1/in_a_1
10 ? a/in_a
10 ? a/in_a
11 ? b/1/in_b_1
11 ? b/1/in_b_1
12 ? b/2/in_b_2
12 ? b/2/in_b_2
13 ? b/in_b
13 ? b/in_b
14 ? in_root
14 ? in_root
15
15
16 hg status . in repo root:
16 hg status . in repo root:
17
17
18 $ hg status .
18 $ hg status .
19 ? a/1/in_a_1
19 ? a/1/in_a_1
20 ? a/in_a
20 ? a/in_a
21 ? b/1/in_b_1
21 ? b/1/in_b_1
22 ? b/2/in_b_2
22 ? b/2/in_b_2
23 ? b/in_b
23 ? b/in_b
24 ? in_root
24 ? in_root
25
25
26 $ hg status --cwd a
26 $ hg status --cwd a
27 ? a/1/in_a_1
27 ? a/1/in_a_1
28 ? a/in_a
28 ? a/in_a
29 ? b/1/in_b_1
29 ? b/1/in_b_1
30 ? b/2/in_b_2
30 ? b/2/in_b_2
31 ? b/in_b
31 ? b/in_b
32 ? in_root
32 ? in_root
33 $ hg status --cwd a .
33 $ hg status --cwd a .
34 ? 1/in_a_1
34 ? 1/in_a_1
35 ? in_a
35 ? in_a
36 $ hg status --cwd a ..
36 $ hg status --cwd a ..
37 ? 1/in_a_1
37 ? 1/in_a_1
38 ? in_a
38 ? in_a
39 ? ../b/1/in_b_1
39 ? ../b/1/in_b_1
40 ? ../b/2/in_b_2
40 ? ../b/2/in_b_2
41 ? ../b/in_b
41 ? ../b/in_b
42 ? ../in_root
42 ? ../in_root
43
43
44 $ hg status --cwd b
44 $ hg status --cwd b
45 ? a/1/in_a_1
45 ? a/1/in_a_1
46 ? a/in_a
46 ? a/in_a
47 ? b/1/in_b_1
47 ? b/1/in_b_1
48 ? b/2/in_b_2
48 ? b/2/in_b_2
49 ? b/in_b
49 ? b/in_b
50 ? in_root
50 ? in_root
51 $ hg status --cwd b .
51 $ hg status --cwd b .
52 ? 1/in_b_1
52 ? 1/in_b_1
53 ? 2/in_b_2
53 ? 2/in_b_2
54 ? in_b
54 ? in_b
55 $ hg status --cwd b ..
55 $ hg status --cwd b ..
56 ? ../a/1/in_a_1
56 ? ../a/1/in_a_1
57 ? ../a/in_a
57 ? ../a/in_a
58 ? 1/in_b_1
58 ? 1/in_b_1
59 ? 2/in_b_2
59 ? 2/in_b_2
60 ? in_b
60 ? in_b
61 ? ../in_root
61 ? ../in_root
62
62
63 $ hg status --cwd a/1
63 $ hg status --cwd a/1
64 ? a/1/in_a_1
64 ? a/1/in_a_1
65 ? a/in_a
65 ? a/in_a
66 ? b/1/in_b_1
66 ? b/1/in_b_1
67 ? b/2/in_b_2
67 ? b/2/in_b_2
68 ? b/in_b
68 ? b/in_b
69 ? in_root
69 ? in_root
70 $ hg status --cwd a/1 .
70 $ hg status --cwd a/1 .
71 ? in_a_1
71 ? in_a_1
72 $ hg status --cwd a/1 ..
72 $ hg status --cwd a/1 ..
73 ? in_a_1
73 ? in_a_1
74 ? ../in_a
74 ? ../in_a
75
75
76 $ hg status --cwd b/1
76 $ hg status --cwd b/1
77 ? a/1/in_a_1
77 ? a/1/in_a_1
78 ? a/in_a
78 ? a/in_a
79 ? b/1/in_b_1
79 ? b/1/in_b_1
80 ? b/2/in_b_2
80 ? b/2/in_b_2
81 ? b/in_b
81 ? b/in_b
82 ? in_root
82 ? in_root
83 $ hg status --cwd b/1 .
83 $ hg status --cwd b/1 .
84 ? in_b_1
84 ? in_b_1
85 $ hg status --cwd b/1 ..
85 $ hg status --cwd b/1 ..
86 ? in_b_1
86 ? in_b_1
87 ? ../2/in_b_2
87 ? ../2/in_b_2
88 ? ../in_b
88 ? ../in_b
89
89
90 $ hg status --cwd b/2
90 $ hg status --cwd b/2
91 ? a/1/in_a_1
91 ? a/1/in_a_1
92 ? a/in_a
92 ? a/in_a
93 ? b/1/in_b_1
93 ? b/1/in_b_1
94 ? b/2/in_b_2
94 ? b/2/in_b_2
95 ? b/in_b
95 ? b/in_b
96 ? in_root
96 ? in_root
97 $ hg status --cwd b/2 .
97 $ hg status --cwd b/2 .
98 ? in_b_2
98 ? in_b_2
99 $ hg status --cwd b/2 ..
99 $ hg status --cwd b/2 ..
100 ? ../1/in_b_1
100 ? ../1/in_b_1
101 ? in_b_2
101 ? in_b_2
102 ? ../in_b
102 ? ../in_b
103
103
104 combining patterns with root and patterns without a root works
104 combining patterns with root and patterns without a root works
105
105
106 $ hg st a/in_a re:.*b$
106 $ hg st a/in_a re:.*b$
107 ? a/in_a
107 ? a/in_a
108 ? b/in_b
108 ? b/in_b
109
109
110 $ cd ..
110 $ cd ..
111
111
112 $ hg init repo2
112 $ hg init repo2
113 $ cd repo2
113 $ cd repo2
114 $ touch modified removed deleted ignored
114 $ touch modified removed deleted ignored
115 $ echo "^ignored$" > .hgignore
115 $ echo "^ignored$" > .hgignore
116 $ hg ci -A -m 'initial checkin'
116 $ hg ci -A -m 'initial checkin'
117 adding .hgignore
117 adding .hgignore
118 adding deleted
118 adding deleted
119 adding modified
119 adding modified
120 adding removed
120 adding removed
121 $ touch modified added unknown ignored
121 $ touch modified added unknown ignored
122 $ hg add added
122 $ hg add added
123 $ hg remove removed
123 $ hg remove removed
124 $ rm deleted
124 $ rm deleted
125
125
126 hg status:
126 hg status:
127
127
128 $ hg status
128 $ hg status
129 A added
129 A added
130 R removed
130 R removed
131 ! deleted
131 ! deleted
132 ? unknown
132 ? unknown
133
133
134 hg status modified added removed deleted unknown never-existed ignored:
134 hg status modified added removed deleted unknown never-existed ignored:
135
135
136 $ hg status modified added removed deleted unknown never-existed ignored
136 $ hg status modified added removed deleted unknown never-existed ignored
137 never-existed: * (glob)
137 never-existed: * (glob)
138 A added
138 A added
139 R removed
139 R removed
140 ! deleted
140 ! deleted
141 ? unknown
141 ? unknown
142
142
143 $ hg copy modified copied
143 $ hg copy modified copied
144
144
145 hg status -C:
145 hg status -C:
146
146
147 $ hg status -C
147 $ hg status -C
148 A added
148 A added
149 A copied
149 A copied
150 modified
150 modified
151 R removed
151 R removed
152 ! deleted
152 ! deleted
153 ? unknown
153 ? unknown
154
154
155 hg status -A:
155 hg status -A:
156
156
157 $ hg status -A
157 $ hg status -A
158 A added
158 A added
159 A copied
159 A copied
160 modified
160 modified
161 R removed
161 R removed
162 ! deleted
162 ! deleted
163 ? unknown
163 ? unknown
164 I ignored
164 I ignored
165 C .hgignore
165 C .hgignore
166 C modified
166 C modified
167
167
168
168
169 $ echo "^ignoreddir$" > .hgignore
169 $ echo "^ignoreddir$" > .hgignore
170 $ mkdir ignoreddir
170 $ mkdir ignoreddir
171 $ touch ignoreddir/file
171 $ touch ignoreddir/file
172
172
173 hg status ignoreddir/file:
173 hg status ignoreddir/file:
174
174
175 $ hg status ignoreddir/file
175 $ hg status ignoreddir/file
176
176
177 hg status -i ignoreddir/file:
177 hg status -i ignoreddir/file:
178
178
179 $ hg status -i ignoreddir/file
179 $ hg status -i ignoreddir/file
180 I ignoreddir/file
180 I ignoreddir/file
181 $ cd ..
181 $ cd ..
182
182
183 Check 'status -q' and some combinations
183 Check 'status -q' and some combinations
184
184
185 $ hg init repo3
185 $ hg init repo3
186 $ cd repo3
186 $ cd repo3
187 $ touch modified removed deleted ignored
187 $ touch modified removed deleted ignored
188 $ echo "^ignored$" > .hgignore
188 $ echo "^ignored$" > .hgignore
189 $ hg commit -A -m 'initial checkin'
189 $ hg commit -A -m 'initial checkin'
190 adding .hgignore
190 adding .hgignore
191 adding deleted
191 adding deleted
192 adding modified
192 adding modified
193 adding removed
193 adding removed
194 $ touch added unknown ignored
194 $ touch added unknown ignored
195 $ hg add added
195 $ hg add added
196 $ echo "test" >> modified
196 $ echo "test" >> modified
197 $ hg remove removed
197 $ hg remove removed
198 $ rm deleted
198 $ rm deleted
199 $ hg copy modified copied
199 $ hg copy modified copied
200
200
201 Run status with 2 different flags.
201 Run status with 2 different flags.
202 Check if result is the same or different.
202 Check if result is the same or different.
203 If result is not as expected, raise error
203 If result is not as expected, raise error
204
204
205 $ assert() {
205 $ assert() {
206 > hg status $1 > ../a
206 > hg status $1 > ../a
207 > hg status $2 > ../b
207 > hg status $2 > ../b
208 > if diff ../a ../b > /dev/null; then
208 > if diff ../a ../b > /dev/null; then
209 > out=0
209 > out=0
210 > else
210 > else
211 > out=1
211 > out=1
212 > fi
212 > fi
213 > if [ $3 -eq 0 ]; then
213 > if [ $3 -eq 0 ]; then
214 > df="same"
214 > df="same"
215 > else
215 > else
216 > df="different"
216 > df="different"
217 > fi
217 > fi
218 > if [ $out -ne $3 ]; then
218 > if [ $out -ne $3 ]; then
219 > echo "Error on $1 and $2, should be $df."
219 > echo "Error on $1 and $2, should be $df."
220 > fi
220 > fi
221 > }
221 > }
222
222
223 Assert flag1 flag2 [0-same | 1-different]
223 Assert flag1 flag2 [0-same | 1-different]
224
224
225 $ assert "-q" "-mard" 0
225 $ assert "-q" "-mard" 0
226 $ assert "-A" "-marduicC" 0
226 $ assert "-A" "-marduicC" 0
227 $ assert "-qA" "-mardcC" 0
227 $ assert "-qA" "-mardcC" 0
228 $ assert "-qAui" "-A" 0
228 $ assert "-qAui" "-A" 0
229 $ assert "-qAu" "-marducC" 0
229 $ assert "-qAu" "-marducC" 0
230 $ assert "-qAi" "-mardicC" 0
230 $ assert "-qAi" "-mardicC" 0
231 $ assert "-qu" "-u" 0
231 $ assert "-qu" "-u" 0
232 $ assert "-q" "-u" 1
232 $ assert "-q" "-u" 1
233 $ assert "-m" "-a" 1
233 $ assert "-m" "-a" 1
234 $ assert "-r" "-d" 1
234 $ assert "-r" "-d" 1
235 $ cd ..
235 $ cd ..
236
236
237 $ hg init repo4
237 $ hg init repo4
238 $ cd repo4
238 $ cd repo4
239 $ touch modified removed deleted
239 $ touch modified removed deleted
240 $ hg ci -q -A -m 'initial checkin'
240 $ hg ci -q -A -m 'initial checkin'
241 $ touch added unknown
241 $ touch added unknown
242 $ hg add added
242 $ hg add added
243 $ hg remove removed
243 $ hg remove removed
244 $ rm deleted
244 $ rm deleted
245 $ echo x > modified
245 $ echo x > modified
246 $ hg copy modified copied
246 $ hg copy modified copied
247 $ hg ci -m 'test checkin' -d "1000001 0"
247 $ hg ci -m 'test checkin' -d "1000001 0"
248 $ rm *
248 $ rm *
249 $ touch unrelated
249 $ touch unrelated
250 $ hg ci -q -A -m 'unrelated checkin' -d "1000002 0"
250 $ hg ci -q -A -m 'unrelated checkin' -d "1000002 0"
251
251
252 hg status --change 1:
252 hg status --change 1:
253
253
254 $ hg status --change 1
254 $ hg status --change 1
255 M modified
255 M modified
256 A added
256 A added
257 A copied
257 A copied
258 R removed
258 R removed
259
259
260 hg status --change 1 unrelated:
260 hg status --change 1 unrelated:
261
261
262 $ hg status --change 1 unrelated
262 $ hg status --change 1 unrelated
263
263
264 hg status -C --change 1 added modified copied removed deleted:
264 hg status -C --change 1 added modified copied removed deleted:
265
265
266 $ hg status -C --change 1 added modified copied removed deleted
266 $ hg status -C --change 1 added modified copied removed deleted
267 M modified
267 M modified
268 A added
268 A added
269 A copied
269 A copied
270 modified
270 modified
271 R removed
271 R removed
272
272
273 hg status -A --change 1 and revset:
273 hg status -A --change 1 and revset:
274
274
275 $ hg status -A --change '1|1'
275 $ hg status -A --change '1|1'
276 M modified
276 M modified
277 A added
277 A added
278 A copied
278 A copied
279 modified
279 modified
280 R removed
280 R removed
281 C deleted
281 C deleted
282
282
283 status of removed but existing in working directory. "? removed" should
284 not be included:
285
286 $ touch removed
287 $ hg status --rev 0 removed
288 R removed
289
283 $ cd ..
290 $ cd ..
284
291
285 hg status of binary file starting with '\1\n', a separator for metadata:
292 hg status of binary file starting with '\1\n', a separator for metadata:
286
293
287 $ hg init repo5
294 $ hg init repo5
288 $ cd repo5
295 $ cd repo5
289 >>> open("010a", "wb").write("\1\nfoo")
296 >>> open("010a", "wb").write("\1\nfoo")
290 $ hg ci -q -A -m 'initial checkin'
297 $ hg ci -q -A -m 'initial checkin'
291 $ hg status -A
298 $ hg status -A
292 C 010a
299 C 010a
293
300
294 >>> open("010a", "wb").write("\1\nbar")
301 >>> open("010a", "wb").write("\1\nbar")
295 $ hg status -A
302 $ hg status -A
296 M 010a
303 M 010a
297 $ hg ci -q -m 'modify 010a'
304 $ hg ci -q -m 'modify 010a'
298 $ hg status -A --rev 0:1
305 $ hg status -A --rev 0:1
299 M 010a
306 M 010a
300
307
301 $ touch empty
308 $ touch empty
302 $ hg ci -q -A -m 'add another file'
309 $ hg ci -q -A -m 'add another file'
303 $ hg status -A --rev 1:2 010a
310 $ hg status -A --rev 1:2 010a
304 C 010a
311 C 010a
305
312
306 $ cd ..
313 $ cd ..
307
314
308 test "hg status" with "directory pattern" which matches against files
315 test "hg status" with "directory pattern" which matches against files
309 only known on target revision.
316 only known on target revision.
310
317
311 $ hg init repo6
318 $ hg init repo6
312 $ cd repo6
319 $ cd repo6
313
320
314 $ echo a > a.txt
321 $ echo a > a.txt
315 $ hg add a.txt
322 $ hg add a.txt
316 $ hg commit -m '#0'
323 $ hg commit -m '#0'
317 $ mkdir -p 1/2/3/4/5
324 $ mkdir -p 1/2/3/4/5
318 $ echo b > 1/2/3/4/5/b.txt
325 $ echo b > 1/2/3/4/5/b.txt
319 $ hg add 1/2/3/4/5/b.txt
326 $ hg add 1/2/3/4/5/b.txt
320 $ hg commit -m '#1'
327 $ hg commit -m '#1'
321
328
322 $ hg update -C 0 > /dev/null
329 $ hg update -C 0 > /dev/null
323 $ hg status -A
330 $ hg status -A
324 C a.txt
331 C a.txt
325
332
326 the directory matching against specified pattern should be removed,
333 the directory matching against specified pattern should be removed,
327 because directory existence prevents 'dirstate.walk()' from showing
334 because directory existence prevents 'dirstate.walk()' from showing
328 warning message about such pattern.
335 warning message about such pattern.
329
336
330 $ test ! -d 1
337 $ test ! -d 1
331 $ hg status -A --rev 1 1/2/3/4/5/b.txt
338 $ hg status -A --rev 1 1/2/3/4/5/b.txt
332 R 1/2/3/4/5/b.txt
339 R 1/2/3/4/5/b.txt
333 $ hg status -A --rev 1 1/2/3/4/5
340 $ hg status -A --rev 1 1/2/3/4/5
334 R 1/2/3/4/5/b.txt
341 R 1/2/3/4/5/b.txt
335 $ hg status -A --rev 1 1/2/3
342 $ hg status -A --rev 1 1/2/3
336 R 1/2/3/4/5/b.txt
343 R 1/2/3/4/5/b.txt
337 $ hg status -A --rev 1 1
344 $ hg status -A --rev 1 1
338 R 1/2/3/4/5/b.txt
345 R 1/2/3/4/5/b.txt
339
346
340 #if windows
347 #if windows
341 $ hg --config ui.slash=false status -A --rev 1 1
348 $ hg --config ui.slash=false status -A --rev 1 1
342 R 1\2\3\4\5\b.txt
349 R 1\2\3\4\5\b.txt
343 #endif
350 #endif
344
351
345 $ cd ..
352 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now