##// END OF EJS Templates
test-subrepo-recursion: set progress.changedelay really high...
Augie Fackler -
r24612:30fc7cf4 default
parent child Browse files
Show More
@@ -1,546 +1,548
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 > assume-tty = 1
262 262 > delay = 0
263 > # set changedelay really large so we don't see nested topics
264 > changedelay = 30000
263 265 > format = topic bar number
264 266 > refresh = 0
265 267 > width = 60
266 268 > EOF
267 269
268 270 Test archiving to a directory tree (the doubled lines in the output
269 271 only show up in the test output, not in real usage):
270 272
271 273 $ hg archive --subrepos ../archive
272 274 \r (no-eol) (esc)
273 275 archiving [ ] 0/3\r (no-eol) (esc)
274 276 archiving [ ] 0/3\r (no-eol) (esc)
275 277 archiving [=============> ] 1/3\r (no-eol) (esc)
276 278 archiving [=============> ] 1/3\r (no-eol) (esc)
277 279 archiving [===========================> ] 2/3\r (no-eol) (esc)
278 280 archiving [===========================> ] 2/3\r (no-eol) (esc)
279 281 archiving [==========================================>] 3/3\r (no-eol) (esc)
280 282 archiving [==========================================>] 3/3\r (no-eol) (esc)
281 283 \r (no-eol) (esc)
282 284 \r (no-eol) (esc)
283 285 archiving (foo) [ ] 0/3\r (no-eol) (esc)
284 286 archiving (foo) [ ] 0/3\r (no-eol) (esc)
285 287 archiving (foo) [===========> ] 1/3\r (no-eol) (esc)
286 288 archiving (foo) [===========> ] 1/3\r (no-eol) (esc)
287 289 archiving (foo) [=======================> ] 2/3\r (no-eol) (esc)
288 290 archiving (foo) [=======================> ] 2/3\r (no-eol) (esc)
289 291 archiving (foo) [====================================>] 3/3\r (no-eol) (esc)
290 292 archiving (foo) [====================================>] 3/3\r (no-eol) (esc)
291 293 \r (no-eol) (esc)
292 294 \r (no-eol) (esc)
293 295 archiving (foo/bar) [ ] 0/1\r (no-eol) (glob) (esc)
294 296 archiving (foo/bar) [ ] 0/1\r (no-eol) (glob) (esc)
295 297 archiving (foo/bar) [================================>] 1/1\r (no-eol) (glob) (esc)
296 298 archiving (foo/bar) [================================>] 1/1\r (no-eol) (glob) (esc)
297 299 \r (no-eol) (esc)
298 300 $ find ../archive | sort
299 301 ../archive
300 302 ../archive/.hg_archival.txt
301 303 ../archive/.hgsub
302 304 ../archive/.hgsubstate
303 305 ../archive/foo
304 306 ../archive/foo/.hgsub
305 307 ../archive/foo/.hgsubstate
306 308 ../archive/foo/bar
307 309 ../archive/foo/bar/z.txt
308 310 ../archive/foo/y.txt
309 311 ../archive/x.txt
310 312
311 313 Test archiving to zip file (unzip output is unstable):
312 314
313 315 $ hg archive --subrepos ../archive.zip
314 316 \r (no-eol) (esc)
315 317 archiving [ ] 0/3\r (no-eol) (esc)
316 318 archiving [ ] 0/3\r (no-eol) (esc)
317 319 archiving [=============> ] 1/3\r (no-eol) (esc)
318 320 archiving [=============> ] 1/3\r (no-eol) (esc)
319 321 archiving [===========================> ] 2/3\r (no-eol) (esc)
320 322 archiving [===========================> ] 2/3\r (no-eol) (esc)
321 323 archiving [==========================================>] 3/3\r (no-eol) (esc)
322 324 archiving [==========================================>] 3/3\r (no-eol) (esc)
323 325 \r (no-eol) (esc)
324 326 \r (no-eol) (esc)
325 327 archiving (foo) [ ] 0/3\r (no-eol) (esc)
326 328 archiving (foo) [ ] 0/3\r (no-eol) (esc)
327 329 archiving (foo) [===========> ] 1/3\r (no-eol) (esc)
328 330 archiving (foo) [===========> ] 1/3\r (no-eol) (esc)
329 331 archiving (foo) [=======================> ] 2/3\r (no-eol) (esc)
330 332 archiving (foo) [=======================> ] 2/3\r (no-eol) (esc)
331 333 archiving (foo) [====================================>] 3/3\r (no-eol) (esc)
332 334 archiving (foo) [====================================>] 3/3\r (no-eol) (esc)
333 335 \r (no-eol) (esc)
334 336 \r (no-eol) (esc)
335 337 archiving (foo/bar) [ ] 0/1\r (no-eol) (glob) (esc)
336 338 archiving (foo/bar) [ ] 0/1\r (no-eol) (glob) (esc)
337 339 archiving (foo/bar) [================================>] 1/1\r (no-eol) (glob) (esc)
338 340 archiving (foo/bar) [================================>] 1/1\r (no-eol) (glob) (esc)
339 341 \r (no-eol) (esc)
340 342
341 343 Test archiving a revision that references a subrepo that is not yet
342 344 cloned:
343 345
344 346 $ hg clone -U . ../empty
345 347 \r (no-eol) (esc)
346 348 linking [ <=> ] 1\r (no-eol) (esc)
347 349 linking [ <=> ] 2\r (no-eol) (esc)
348 350 linking [ <=> ] 3\r (no-eol) (esc)
349 351 linking [ <=> ] 4\r (no-eol) (esc)
350 352 linking [ <=> ] 5\r (no-eol) (esc)
351 353 linking [ <=> ] 6\r (no-eol) (esc)
352 354 linking [ <=> ] 7\r (no-eol) (esc)
353 355 linking [ <=> ] 8\r (no-eol) (esc)
354 356 \r (no-eol) (esc)
355 357 $ cd ../empty
356 358 $ hg archive --subrepos -r tip ../archive.tar.gz
357 359 \r (no-eol) (esc)
358 360 archiving [ ] 0/3\r (no-eol) (esc)
359 361 archiving [ ] 0/3\r (no-eol) (esc)
360 362 archiving [=============> ] 1/3\r (no-eol) (esc)
361 363 archiving [=============> ] 1/3\r (no-eol) (esc)
362 364 archiving [===========================> ] 2/3\r (no-eol) (esc)
363 365 archiving [===========================> ] 2/3\r (no-eol) (esc)
364 366 archiving [==========================================>] 3/3\r (no-eol) (esc)
365 367 archiving [==========================================>] 3/3\r (no-eol) (esc)
366 368 \r (no-eol) (esc)
367 369 \r (no-eol) (esc)
368 370 linking [ <=> ] 1\r (no-eol) (esc)
369 371 linking [ <=> ] 2\r (no-eol) (esc)
370 372 linking [ <=> ] 3\r (no-eol) (esc)
371 373 linking [ <=> ] 4\r (no-eol) (esc)
372 374 linking [ <=> ] 5\r (no-eol) (esc)
373 375 linking [ <=> ] 6\r (no-eol) (esc)
374 376 linking [ <=> ] 7\r (no-eol) (esc)
375 377 linking [ <=> ] 8\r (no-eol) (esc)
376 378 \r (no-eol) (esc)
377 379 \r (no-eol) (esc)
378 380 archiving (foo) [ ] 0/3\r (no-eol) (esc)
379 381 archiving (foo) [ ] 0/3\r (no-eol) (esc)
380 382 archiving (foo) [===========> ] 1/3\r (no-eol) (esc)
381 383 archiving (foo) [===========> ] 1/3\r (no-eol) (esc)
382 384 archiving (foo) [=======================> ] 2/3\r (no-eol) (esc)
383 385 archiving (foo) [=======================> ] 2/3\r (no-eol) (esc)
384 386 archiving (foo) [====================================>] 3/3\r (no-eol) (esc)
385 387 archiving (foo) [====================================>] 3/3\r (no-eol) (esc)
386 388 \r (no-eol) (esc)
387 389 \r (no-eol) (esc)
388 390 linking [ <=> ] 1\r (no-eol) (esc)
389 391 linking [ <=> ] 2\r (no-eol) (esc)
390 392 linking [ <=> ] 3\r (no-eol) (esc)
391 393 linking [ <=> ] 4\r (no-eol) (esc)
392 394 linking [ <=> ] 5\r (no-eol) (esc)
393 395 linking [ <=> ] 6\r (no-eol) (esc)
394 396 \r (no-eol) (esc)
395 397 \r (no-eol) (esc)
396 398 archiving (foo/bar) [ ] 0/1\r (no-eol) (glob) (esc)
397 399 archiving (foo/bar) [ ] 0/1\r (no-eol) (glob) (esc)
398 400 archiving (foo/bar) [================================>] 1/1\r (no-eol) (glob) (esc)
399 401 archiving (foo/bar) [================================>] 1/1\r (no-eol) (glob) (esc)
400 402 \r (no-eol) (esc)
401 403 cloning subrepo foo from $TESTTMP/repo/foo
402 404 cloning subrepo foo/bar from $TESTTMP/repo/foo/bar (glob)
403 405
404 406 The newly cloned subrepos contain no working copy:
405 407
406 408 $ hg -R foo summary
407 409 parent: -1:000000000000 (no revision checked out)
408 410 branch: default
409 411 commit: (clean)
410 412 update: 4 new changesets (update)
411 413
412 414 Disable progress extension and cleanup:
413 415
414 416 $ mv $HGRCPATH.no-progress $HGRCPATH
415 417
416 418 Test archiving when there is a directory in the way for a subrepo
417 419 created by archive:
418 420
419 421 $ hg clone -U . ../almost-empty
420 422 $ cd ../almost-empty
421 423 $ mkdir foo
422 424 $ echo f > foo/f
423 425 $ hg archive --subrepos -r tip archive
424 426 cloning subrepo foo from $TESTTMP/empty/foo
425 427 abort: destination '$TESTTMP/almost-empty/foo' is not empty (in subrepo foo) (glob)
426 428 [255]
427 429
428 430 Clone and test outgoing:
429 431
430 432 $ cd ..
431 433 $ hg clone repo repo2
432 434 updating to branch default
433 435 cloning subrepo foo from $TESTTMP/repo/foo
434 436 cloning subrepo foo/bar from $TESTTMP/repo/foo/bar (glob)
435 437 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
436 438 $ cd repo2
437 439 $ hg outgoing -S
438 440 comparing with $TESTTMP/repo (glob)
439 441 searching for changes
440 442 no changes found
441 443 comparing with $TESTTMP/repo/foo
442 444 searching for changes
443 445 no changes found
444 446 comparing with $TESTTMP/repo/foo/bar
445 447 searching for changes
446 448 no changes found
447 449 [1]
448 450
449 451 Make nested change:
450 452
451 453 $ echo y4 >> foo/y.txt
452 454 $ hg diff --nodates -S
453 455 diff -r 65903cebad86 foo/y.txt
454 456 --- a/foo/y.txt
455 457 +++ b/foo/y.txt
456 458 @@ -1,3 +1,4 @@
457 459 y1
458 460 y2
459 461 y3
460 462 +y4
461 463 $ hg commit --subrepos -m 3-4-2
462 464 committing subrepository foo
463 465 $ hg outgoing -S
464 466 comparing with $TESTTMP/repo (glob)
465 467 searching for changes
466 468 changeset: 3:2655b8ecc4ee
467 469 tag: tip
468 470 user: test
469 471 date: Thu Jan 01 00:00:00 1970 +0000
470 472 summary: 3-4-2
471 473
472 474 comparing with $TESTTMP/repo/foo
473 475 searching for changes
474 476 changeset: 4:e96193d6cb36
475 477 tag: tip
476 478 user: test
477 479 date: Thu Jan 01 00:00:00 1970 +0000
478 480 summary: 3-4-2
479 481
480 482 comparing with $TESTTMP/repo/foo/bar
481 483 searching for changes
482 484 no changes found
483 485
484 486
485 487 Switch to original repo and setup default path:
486 488
487 489 $ cd ../repo
488 490 $ echo '[paths]' >> .hg/hgrc
489 491 $ echo 'default = ../repo2' >> .hg/hgrc
490 492
491 493 Test incoming:
492 494
493 495 $ hg incoming -S
494 496 comparing with $TESTTMP/repo2 (glob)
495 497 searching for changes
496 498 changeset: 3:2655b8ecc4ee
497 499 tag: tip
498 500 user: test
499 501 date: Thu Jan 01 00:00:00 1970 +0000
500 502 summary: 3-4-2
501 503
502 504 comparing with $TESTTMP/repo2/foo
503 505 searching for changes
504 506 changeset: 4:e96193d6cb36
505 507 tag: tip
506 508 user: test
507 509 date: Thu Jan 01 00:00:00 1970 +0000
508 510 summary: 3-4-2
509 511
510 512 comparing with $TESTTMP/repo2/foo/bar
511 513 searching for changes
512 514 no changes found
513 515
514 516 $ hg incoming -S --bundle incoming.hg
515 517 abort: cannot combine --bundle and --subrepos
516 518 [255]
517 519
518 520 Test missing subrepo:
519 521
520 522 $ rm -r foo
521 523 $ hg status -S
522 524 warning: error "unknown revision '65903cebad86f1a84bd4f1134f62fa7dcb7a1c98'" in subrepository "foo"
523 525
524 526 Issue2619: IndexError: list index out of range on hg add with subrepos
525 527 The subrepo must sorts after the explicit filename.
526 528
527 529 $ cd ..
528 530 $ hg init test
529 531 $ cd test
530 532 $ hg init x
531 533 $ echo abc > abc.txt
532 534 $ hg ci -Am "abc"
533 535 adding abc.txt
534 536 $ echo "x = x" >> .hgsub
535 537 $ hg add .hgsub
536 538 $ touch a x/a
537 539 $ hg add a x/a
538 540
539 541 $ hg ci -Sm "added x"
540 542 committing subrepository x
541 543 $ echo abc > x/a
542 544 $ hg revert --rev '.^' "set:subrepo('glob:x*')"
543 545 abort: subrepository 'x' does not exist in 25ac2c9b3180!
544 546 [255]
545 547
546 548 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now