##// END OF EJS Templates
tests: clean up duplicated output in test-subrepo-recursion progress...
Pierre-Yves David -
r25682:125cedee default
parent child Browse files
Show More
@@ -1,573 +1,570 b''
1 1 Create test repository:
2 2
3 3 $ hg init repo
4 4 $ cd repo
5 5 $ echo x1 > x.txt
6 6
7 7 $ hg init foo
8 8 $ cd foo
9 9 $ echo y1 > y.txt
10 10
11 11 $ hg init bar
12 12 $ cd bar
13 13 $ echo z1 > z.txt
14 14
15 15 $ cd ..
16 16 $ echo 'bar = bar' > .hgsub
17 17
18 18 $ cd ..
19 19 $ echo 'foo = foo' > .hgsub
20 20
21 21 Add files --- .hgsub files must go first to trigger subrepos:
22 22
23 23 $ hg add -S .hgsub
24 24 $ hg add -S foo/.hgsub
25 25 $ hg add -S foo/bar
26 26 adding foo/bar/z.txt (glob)
27 27 $ hg add -S
28 28 adding x.txt
29 29 adding foo/y.txt (glob)
30 30
31 31 Test recursive status without committing anything:
32 32
33 33 $ hg status -S
34 34 A .hgsub
35 35 A foo/.hgsub
36 36 A foo/bar/z.txt
37 37 A foo/y.txt
38 38 A x.txt
39 39
40 40 Test recursive diff without committing anything:
41 41
42 42 $ hg diff --nodates -S foo
43 43 diff -r 000000000000 foo/.hgsub
44 44 --- /dev/null
45 45 +++ b/foo/.hgsub
46 46 @@ -0,0 +1,1 @@
47 47 +bar = bar
48 48 diff -r 000000000000 foo/y.txt
49 49 --- /dev/null
50 50 +++ b/foo/y.txt
51 51 @@ -0,0 +1,1 @@
52 52 +y1
53 53 diff -r 000000000000 foo/bar/z.txt
54 54 --- /dev/null
55 55 +++ b/foo/bar/z.txt
56 56 @@ -0,0 +1,1 @@
57 57 +z1
58 58
59 59 Commits:
60 60
61 61 $ hg commit -m fails
62 62 abort: uncommitted changes in subrepository 'foo'
63 63 (use --subrepos for recursive commit)
64 64 [255]
65 65
66 66 The --subrepos flag overwrite the config setting:
67 67
68 68 $ hg commit -m 0-0-0 --config ui.commitsubrepos=No --subrepos
69 69 committing subrepository foo
70 70 committing subrepository foo/bar (glob)
71 71
72 72 $ cd foo
73 73 $ echo y2 >> y.txt
74 74 $ hg commit -m 0-1-0
75 75
76 76 $ cd bar
77 77 $ echo z2 >> z.txt
78 78 $ hg commit -m 0-1-1
79 79
80 80 $ cd ..
81 81 $ hg commit -m 0-2-1
82 82
83 83 $ cd ..
84 84 $ hg commit -m 1-2-1
85 85
86 86 Change working directory:
87 87
88 88 $ echo y3 >> foo/y.txt
89 89 $ echo z3 >> foo/bar/z.txt
90 90 $ hg status -S
91 91 M foo/bar/z.txt
92 92 M foo/y.txt
93 93 $ hg diff --nodates -S
94 94 diff -r d254738c5f5e foo/y.txt
95 95 --- a/foo/y.txt
96 96 +++ b/foo/y.txt
97 97 @@ -1,2 +1,3 @@
98 98 y1
99 99 y2
100 100 +y3
101 101 diff -r 9647f22de499 foo/bar/z.txt
102 102 --- a/foo/bar/z.txt
103 103 +++ b/foo/bar/z.txt
104 104 @@ -1,2 +1,3 @@
105 105 z1
106 106 z2
107 107 +z3
108 108
109 109 Status call crossing repository boundaries:
110 110
111 111 $ hg status -S foo/bar/z.txt
112 112 M foo/bar/z.txt
113 113 $ hg status -S -I 'foo/?.txt'
114 114 M foo/y.txt
115 115 $ hg status -S -I '**/?.txt'
116 116 M foo/bar/z.txt
117 117 M foo/y.txt
118 118 $ hg diff --nodates -S -I '**/?.txt'
119 119 diff -r d254738c5f5e foo/y.txt
120 120 --- a/foo/y.txt
121 121 +++ b/foo/y.txt
122 122 @@ -1,2 +1,3 @@
123 123 y1
124 124 y2
125 125 +y3
126 126 diff -r 9647f22de499 foo/bar/z.txt
127 127 --- a/foo/bar/z.txt
128 128 +++ b/foo/bar/z.txt
129 129 @@ -1,2 +1,3 @@
130 130 z1
131 131 z2
132 132 +z3
133 133
134 134 Status from within a subdirectory:
135 135
136 136 $ mkdir dir
137 137 $ cd dir
138 138 $ echo a1 > a.txt
139 139 $ hg status -S
140 140 M foo/bar/z.txt
141 141 M foo/y.txt
142 142 ? dir/a.txt
143 143 $ hg diff --nodates -S
144 144 diff -r d254738c5f5e foo/y.txt
145 145 --- a/foo/y.txt
146 146 +++ b/foo/y.txt
147 147 @@ -1,2 +1,3 @@
148 148 y1
149 149 y2
150 150 +y3
151 151 diff -r 9647f22de499 foo/bar/z.txt
152 152 --- a/foo/bar/z.txt
153 153 +++ b/foo/bar/z.txt
154 154 @@ -1,2 +1,3 @@
155 155 z1
156 156 z2
157 157 +z3
158 158
159 159 Status with relative path:
160 160
161 161 $ hg status -S ..
162 162 M ../foo/bar/z.txt
163 163 M ../foo/y.txt
164 164 ? a.txt
165 165
166 166 XXX: filtering lfilesrepo.status() in 3.3-rc causes these files to be listed as
167 167 added instead of modified.
168 168 $ hg status -S .. --config extensions.largefiles=
169 169 M ../foo/bar/z.txt
170 170 M ../foo/y.txt
171 171 ? a.txt
172 172
173 173 $ hg diff --nodates -S ..
174 174 diff -r d254738c5f5e foo/y.txt
175 175 --- a/foo/y.txt
176 176 +++ b/foo/y.txt
177 177 @@ -1,2 +1,3 @@
178 178 y1
179 179 y2
180 180 +y3
181 181 diff -r 9647f22de499 foo/bar/z.txt
182 182 --- a/foo/bar/z.txt
183 183 +++ b/foo/bar/z.txt
184 184 @@ -1,2 +1,3 @@
185 185 z1
186 186 z2
187 187 +z3
188 188 $ cd ..
189 189
190 190 Cleanup and final commit:
191 191
192 192 $ rm -r dir
193 193 $ hg commit --subrepos -m 2-3-2
194 194 committing subrepository foo
195 195 committing subrepository foo/bar (glob)
196 196
197 197 Test explicit path commands within subrepos: add/forget
198 198 $ echo z1 > foo/bar/z2.txt
199 199 $ hg status -S
200 200 ? foo/bar/z2.txt
201 201 $ hg add foo/bar/z2.txt
202 202 $ hg status -S
203 203 A foo/bar/z2.txt
204 204 $ hg forget foo/bar/z2.txt
205 205 $ hg status -S
206 206 ? foo/bar/z2.txt
207 207 $ hg forget foo/bar/z2.txt
208 208 not removing foo/bar/z2.txt: file is already untracked (glob)
209 209 [1]
210 210 $ hg status -S
211 211 ? foo/bar/z2.txt
212 212 $ rm foo/bar/z2.txt
213 213
214 214 Log with the relationships between repo and its subrepo:
215 215
216 216 $ hg log --template '{rev}:{node|short} {desc}\n'
217 217 2:1326fa26d0c0 2-3-2
218 218 1:4b3c9ff4f66b 1-2-1
219 219 0:23376cbba0d8 0-0-0
220 220
221 221 $ hg -R foo log --template '{rev}:{node|short} {desc}\n'
222 222 3:65903cebad86 2-3-2
223 223 2:d254738c5f5e 0-2-1
224 224 1:8629ce7dcc39 0-1-0
225 225 0:af048e97ade2 0-0-0
226 226
227 227 $ hg -R foo/bar log --template '{rev}:{node|short} {desc}\n'
228 228 2:31ecbdafd357 2-3-2
229 229 1:9647f22de499 0-1-1
230 230 0:4904098473f9 0-0-0
231 231
232 232 Status between revisions:
233 233
234 234 $ hg status -S
235 235 $ hg status -S --rev 0:1
236 236 M .hgsubstate
237 237 M foo/.hgsubstate
238 238 M foo/bar/z.txt
239 239 M foo/y.txt
240 240 $ hg diff --nodates -S -I '**/?.txt' --rev 0:1
241 241 diff -r af048e97ade2 -r d254738c5f5e foo/y.txt
242 242 --- a/foo/y.txt
243 243 +++ b/foo/y.txt
244 244 @@ -1,1 +1,2 @@
245 245 y1
246 246 +y2
247 247 diff -r 4904098473f9 -r 9647f22de499 foo/bar/z.txt
248 248 --- a/foo/bar/z.txt
249 249 +++ b/foo/bar/z.txt
250 250 @@ -1,1 +1,2 @@
251 251 z1
252 252 +z2
253 253
254 254 Enable progress extension for archive tests:
255 255
256 256 $ cp $HGRCPATH $HGRCPATH.no-progress
257 257 $ cat >> $HGRCPATH <<EOF
258 258 > [extensions]
259 259 > progress =
260 260 > [progress]
261 261 > disable=False
262 262 > assume-tty = 1
263 263 > delay = 0
264 264 > # set changedelay really large so we don't see nested topics
265 265 > changedelay = 30000
266 266 > format = topic bar number
267 267 > refresh = 0
268 268 > width = 60
269 269 > EOF
270 270
271 271 Test archiving to a directory tree (the doubled lines in the output
272 272 only show up in the test output, not in real usage):
273 273
274 274 $ hg archive --subrepos ../archive
275 275 \r (no-eol) (esc)
276 276 archiving [ ] 0/3\r (no-eol) (esc)
277 277 archiving [=============> ] 1/3\r (no-eol) (esc)
278 278 archiving [===========================> ] 2/3\r (no-eol) (esc)
279 279 archiving [==========================================>] 3/3\r (no-eol) (esc)
280 280 \r (no-eol) (esc)
281 281 \r (no-eol) (esc)
282 282 archiving (foo) [ ] 0/3\r (no-eol) (esc)
283 283 archiving (foo) [===========> ] 1/3\r (no-eol) (esc)
284 284 archiving (foo) [=======================> ] 2/3\r (no-eol) (esc)
285 285 archiving (foo) [====================================>] 3/3\r (no-eol) (esc)
286 286 \r (no-eol) (esc)
287 287 \r (no-eol) (esc)
288 288 archiving (foo/bar) [ ] 0/1\r (no-eol) (glob) (esc)
289 289 archiving (foo/bar) [================================>] 1/1\r (no-eol) (glob) (esc)
290 290 \r (no-eol) (esc)
291 291 $ find ../archive | sort
292 292 ../archive
293 293 ../archive/.hg_archival.txt
294 294 ../archive/.hgsub
295 295 ../archive/.hgsubstate
296 296 ../archive/foo
297 297 ../archive/foo/.hgsub
298 298 ../archive/foo/.hgsubstate
299 299 ../archive/foo/bar
300 300 ../archive/foo/bar/z.txt
301 301 ../archive/foo/y.txt
302 302 ../archive/x.txt
303 303
304 304 Test archiving to zip file (unzip output is unstable):
305 305
306 306 $ hg archive --subrepos --prefix '.' ../archive.zip
307 307 \r (no-eol) (esc)
308 308 archiving [ ] 0/3\r (no-eol) (esc)
309 309 archiving [=============> ] 1/3\r (no-eol) (esc)
310 310 archiving [===========================> ] 2/3\r (no-eol) (esc)
311 311 archiving [==========================================>] 3/3\r (no-eol) (esc)
312 312 \r (no-eol) (esc)
313 313 \r (no-eol) (esc)
314 314 archiving (foo) [ ] 0/3\r (no-eol) (esc)
315 315 archiving (foo) [===========> ] 1/3\r (no-eol) (esc)
316 316 archiving (foo) [=======================> ] 2/3\r (no-eol) (esc)
317 317 archiving (foo) [====================================>] 3/3\r (no-eol) (esc)
318 318 \r (no-eol) (esc)
319 319 \r (no-eol) (esc)
320 320 archiving (foo/bar) [ ] 0/1\r (no-eol) (glob) (esc)
321 321 archiving (foo/bar) [================================>] 1/1\r (no-eol) (glob) (esc)
322 322 \r (no-eol) (esc)
323 323
324 324 (unzip date formating is unstable, we do not care about it and glob it out)
325 325
326 326 $ unzip -l ../archive.zip
327 327 Archive: ../archive.zip
328 328 Length [ ]* Date [ ]* Time [ ]* Name (re)
329 329 [\- ]* (re)
330 330 172 [0-9:\- ]* .hg_archival.txt (re)
331 331 10 [0-9:\- ]* .hgsub (re)
332 332 45 [0-9:\- ]* .hgsubstate (re)
333 333 3 [0-9:\- ]* x.txt (re)
334 334 10 [0-9:\- ]* foo/.hgsub (re)
335 335 45 [0-9:\- ]* foo/.hgsubstate (re)
336 336 9 [0-9:\- ]* foo/y.txt (re)
337 337 9 [0-9:\- ]* foo/bar/z.txt (re)
338 338 [\- ]* (re)
339 339 303 [ ]* 8 files (re)
340 340
341 341 Test archiving a revision that references a subrepo that is not yet
342 342 cloned:
343 343
344 344 #if hardlink
345 345 $ hg clone -U . ../empty
346 346 \r (no-eol) (esc)
347 347 linking [ <=> ] 1\r (no-eol) (esc)
348 348 linking [ <=> ] 2\r (no-eol) (esc)
349 349 linking [ <=> ] 3\r (no-eol) (esc)
350 350 linking [ <=> ] 4\r (no-eol) (esc)
351 351 linking [ <=> ] 5\r (no-eol) (esc)
352 352 linking [ <=> ] 6\r (no-eol) (esc)
353 353 linking [ <=> ] 7\r (no-eol) (esc)
354 354 linking [ <=> ] 8\r (no-eol) (esc)
355 355 \r (no-eol) (esc)
356 356 #else
357 357 $ hg clone -U . ../empty
358 358 \r (no-eol) (esc)
359 359 linking [ <=> ] 1 (no-eol)
360 360 #endif
361 361
362 362 $ cd ../empty
363 363 #if hardlink
364 364 $ hg archive --subrepos -r tip --prefix './' ../archive.tar.gz
365 365 \r (no-eol) (esc)
366 366 archiving [ ] 0/3\r (no-eol) (esc)
367 367 archiving [=============> ] 1/3\r (no-eol) (esc)
368 368 archiving [===========================> ] 2/3\r (no-eol) (esc)
369 369 archiving [==========================================>] 3/3\r (no-eol) (esc)
370 370 \r (no-eol) (esc)
371 371 \r (no-eol) (esc)
372 372 linking [ <=> ] 1\r (no-eol) (esc)
373 373 linking [ <=> ] 2\r (no-eol) (esc)
374 374 linking [ <=> ] 3\r (no-eol) (esc)
375 375 linking [ <=> ] 4\r (no-eol) (esc)
376 376 linking [ <=> ] 5\r (no-eol) (esc)
377 377 linking [ <=> ] 6\r (no-eol) (esc)
378 378 linking [ <=> ] 7\r (no-eol) (esc)
379 379 linking [ <=> ] 8\r (no-eol) (esc)
380 380 \r (no-eol) (esc)
381 381 \r (no-eol) (esc)
382 382 archiving (foo) [ ] 0/3\r (no-eol) (esc)
383 383 archiving (foo) [===========> ] 1/3\r (no-eol) (esc)
384 384 archiving (foo) [=======================> ] 2/3\r (no-eol) (esc)
385 385 archiving (foo) [====================================>] 3/3\r (no-eol) (esc)
386 386 \r (no-eol) (esc)
387 387 \r (no-eol) (esc)
388 388 linking [ <=> ] 1\r (no-eol) (esc)
389 389 linking [ <=> ] 2\r (no-eol) (esc)
390 390 linking [ <=> ] 3\r (no-eol) (esc)
391 391 linking [ <=> ] 4\r (no-eol) (esc)
392 392 linking [ <=> ] 5\r (no-eol) (esc)
393 393 linking [ <=> ] 6\r (no-eol) (esc)
394 394 \r (no-eol) (esc)
395 395 \r (no-eol) (esc)
396 396 archiving (foo/bar) [ ] 0/1\r (no-eol) (glob) (esc)
397 397 archiving (foo/bar) [================================>] 1/1\r (no-eol) (glob) (esc)
398 398 \r (no-eol) (esc)
399 399 cloning subrepo foo from $TESTTMP/repo/foo
400 400 cloning subrepo foo/bar from $TESTTMP/repo/foo/bar (glob)
401 401 #else
402 402 Note there's a slight output glitch on non-hardlink systems: the last
403 403 "linking" progress topic never gets closed, leading to slight output corruption on that platform.
404 404 $ hg archive --subrepos -r tip --prefix './' ../archive.tar.gz
405 405 \r (no-eol) (esc)
406 406 archiving [ ] 0/3\r (no-eol) (esc)
407 407 archiving [=============> ] 1/3\r (no-eol) (esc)
408 408 archiving [===========================> ] 2/3\r (no-eol) (esc)
409 409 archiving [==========================================>] 3/3\r (no-eol) (esc)
410 410 \r (no-eol) (esc)
411 411 \r (no-eol) (esc)
412 412 linking [ <=> ] 1\r (no-eol) (esc)
413 \r (no-eol) (esc)
414 \r (no-eol) (esc)
415 linking [ <=> ] 1cloning subrepo foo from $TESTTMP/repo/foo
416 413 cloning subrepo foo/bar from $TESTTMP/repo/foo/bar (glob)
417 414 #endif
418 415
419 416 Archive + subrepos uses '/' for all component separators
420 417
421 418 $ tar -tzf ../archive.tar.gz | sort
422 419 .hg_archival.txt
423 420 .hgsub
424 421 .hgsubstate
425 422 foo/.hgsub
426 423 foo/.hgsubstate
427 424 foo/bar/z.txt
428 425 foo/y.txt
429 426 x.txt
430 427
431 428 The newly cloned subrepos contain no working copy:
432 429
433 430 $ hg -R foo summary
434 431 parent: -1:000000000000 (no revision checked out)
435 432 branch: default
436 433 commit: (clean)
437 434 update: 4 new changesets (update)
438 435
439 436 Disable progress extension and cleanup:
440 437
441 438 $ mv $HGRCPATH.no-progress $HGRCPATH
442 439
443 440 Test archiving when there is a directory in the way for a subrepo
444 441 created by archive:
445 442
446 443 $ hg clone -U . ../almost-empty
447 444 $ cd ../almost-empty
448 445 $ mkdir foo
449 446 $ echo f > foo/f
450 447 $ hg archive --subrepos -r tip archive
451 448 cloning subrepo foo from $TESTTMP/empty/foo
452 449 abort: destination '$TESTTMP/almost-empty/foo' is not empty (in subrepo foo) (glob)
453 450 [255]
454 451
455 452 Clone and test outgoing:
456 453
457 454 $ cd ..
458 455 $ hg clone repo repo2
459 456 updating to branch default
460 457 cloning subrepo foo from $TESTTMP/repo/foo
461 458 cloning subrepo foo/bar from $TESTTMP/repo/foo/bar (glob)
462 459 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
463 460 $ cd repo2
464 461 $ hg outgoing -S
465 462 comparing with $TESTTMP/repo (glob)
466 463 searching for changes
467 464 no changes found
468 465 comparing with $TESTTMP/repo/foo
469 466 searching for changes
470 467 no changes found
471 468 comparing with $TESTTMP/repo/foo/bar
472 469 searching for changes
473 470 no changes found
474 471 [1]
475 472
476 473 Make nested change:
477 474
478 475 $ echo y4 >> foo/y.txt
479 476 $ hg diff --nodates -S
480 477 diff -r 65903cebad86 foo/y.txt
481 478 --- a/foo/y.txt
482 479 +++ b/foo/y.txt
483 480 @@ -1,3 +1,4 @@
484 481 y1
485 482 y2
486 483 y3
487 484 +y4
488 485 $ hg commit --subrepos -m 3-4-2
489 486 committing subrepository foo
490 487 $ hg outgoing -S
491 488 comparing with $TESTTMP/repo (glob)
492 489 searching for changes
493 490 changeset: 3:2655b8ecc4ee
494 491 tag: tip
495 492 user: test
496 493 date: Thu Jan 01 00:00:00 1970 +0000
497 494 summary: 3-4-2
498 495
499 496 comparing with $TESTTMP/repo/foo
500 497 searching for changes
501 498 changeset: 4:e96193d6cb36
502 499 tag: tip
503 500 user: test
504 501 date: Thu Jan 01 00:00:00 1970 +0000
505 502 summary: 3-4-2
506 503
507 504 comparing with $TESTTMP/repo/foo/bar
508 505 searching for changes
509 506 no changes found
510 507
511 508
512 509 Switch to original repo and setup default path:
513 510
514 511 $ cd ../repo
515 512 $ echo '[paths]' >> .hg/hgrc
516 513 $ echo 'default = ../repo2' >> .hg/hgrc
517 514
518 515 Test incoming:
519 516
520 517 $ hg incoming -S
521 518 comparing with $TESTTMP/repo2 (glob)
522 519 searching for changes
523 520 changeset: 3:2655b8ecc4ee
524 521 tag: tip
525 522 user: test
526 523 date: Thu Jan 01 00:00:00 1970 +0000
527 524 summary: 3-4-2
528 525
529 526 comparing with $TESTTMP/repo2/foo
530 527 searching for changes
531 528 changeset: 4:e96193d6cb36
532 529 tag: tip
533 530 user: test
534 531 date: Thu Jan 01 00:00:00 1970 +0000
535 532 summary: 3-4-2
536 533
537 534 comparing with $TESTTMP/repo2/foo/bar
538 535 searching for changes
539 536 no changes found
540 537
541 538 $ hg incoming -S --bundle incoming.hg
542 539 abort: cannot combine --bundle and --subrepos
543 540 [255]
544 541
545 542 Test missing subrepo:
546 543
547 544 $ rm -r foo
548 545 $ hg status -S
549 546 warning: error "unknown revision '65903cebad86f1a84bd4f1134f62fa7dcb7a1c98'" in subrepository "foo"
550 547
551 548 Issue2619: IndexError: list index out of range on hg add with subrepos
552 549 The subrepo must sorts after the explicit filename.
553 550
554 551 $ cd ..
555 552 $ hg init test
556 553 $ cd test
557 554 $ hg init x
558 555 $ echo abc > abc.txt
559 556 $ hg ci -Am "abc"
560 557 adding abc.txt
561 558 $ echo "x = x" >> .hgsub
562 559 $ hg add .hgsub
563 560 $ touch a x/a
564 561 $ hg add a x/a
565 562
566 563 $ hg ci -Sm "added x"
567 564 committing subrepository x
568 565 $ echo abc > x/a
569 566 $ hg revert --rev '.^' "set:subrepo('glob:x*')"
570 567 abort: subrepository 'x' does not exist in 25ac2c9b3180!
571 568 [255]
572 569
573 570 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now