##// END OF EJS Templates
test-clone: discard lock-related messages...
Augie Fackler -
r30121:bbbf6bbb default
parent child Browse files
Show More
@@ -1,1089 +1,1087 b''
1 1 Prepare repo a:
2 2
3 3 $ hg init a
4 4 $ cd a
5 5 $ echo a > a
6 6 $ hg add a
7 7 $ hg commit -m test
8 8 $ echo first line > b
9 9 $ hg add b
10 10
11 11 Create a non-inlined filelog:
12 12
13 13 $ $PYTHON -c 'file("data1", "wb").write("".join("%s\n" % x for x in range(10000)))'
14 14 $ for j in 0 1 2 3 4 5 6 7 8 9; do
15 15 > cat data1 >> b
16 16 > hg commit -m test
17 17 > done
18 18
19 19 List files in store/data (should show a 'b.d'):
20 20
21 21 $ for i in .hg/store/data/*; do
22 22 > echo $i
23 23 > done
24 24 .hg/store/data/a.i
25 25 .hg/store/data/b.d
26 26 .hg/store/data/b.i
27 27
28 28 Trigger branchcache creation:
29 29
30 30 $ hg branches
31 31 default 10:a7949464abda
32 32 $ ls .hg/cache
33 33 branch2-served
34 34 rbc-names-v1
35 35 rbc-revs-v1
36 36
37 37 Default operation:
38 38
39 39 $ hg clone . ../b
40 40 updating to branch default
41 41 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
42 42 $ cd ../b
43 43
44 44 Ensure branchcache got copied over:
45 45
46 46 $ ls .hg/cache
47 47 branch2-served
48 48
49 49 $ cat a
50 50 a
51 51 $ hg verify
52 52 checking changesets
53 53 checking manifests
54 54 crosschecking files in changesets and manifests
55 55 checking files
56 56 2 files, 11 changesets, 11 total revisions
57 57
58 58 Invalid dest '' must abort:
59 59
60 60 $ hg clone . ''
61 61 abort: empty destination path is not valid
62 62 [255]
63 63
64 64 No update, with debug option:
65 65
66 66 #if hardlink
67 67 $ hg --debug clone -U . ../c --config progress.debug=true
68 68 linking: 1
69 69 linking: 2
70 70 linking: 3
71 71 linking: 4
72 72 linking: 5
73 73 linking: 6
74 74 linking: 7
75 75 linking: 8
76 76 linked 8 files
77 77 #else
78 78 $ hg --debug clone -U . ../c --config progress.debug=true
79 79 linking: 1
80 80 copying: 2
81 81 copying: 3
82 82 copying: 4
83 83 copying: 5
84 84 copying: 6
85 85 copying: 7
86 86 copying: 8
87 87 copied 8 files
88 88 #endif
89 89 $ cd ../c
90 90
91 91 Ensure branchcache got copied over:
92 92
93 93 $ ls .hg/cache
94 94 branch2-served
95 95
96 96 $ cat a 2>/dev/null || echo "a not present"
97 97 a not present
98 98 $ hg verify
99 99 checking changesets
100 100 checking manifests
101 101 crosschecking files in changesets and manifests
102 102 checking files
103 103 2 files, 11 changesets, 11 total revisions
104 104
105 105 Default destination:
106 106
107 107 $ mkdir ../d
108 108 $ cd ../d
109 109 $ hg clone ../a
110 110 destination directory: a
111 111 updating to branch default
112 112 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
113 113 $ cd a
114 114 $ hg cat a
115 115 a
116 116 $ cd ../..
117 117
118 118 Check that we drop the 'file:' from the path before writing the .hgrc:
119 119
120 120 $ hg clone file:a e
121 121 updating to branch default
122 122 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
123 123 $ grep 'file:' e/.hg/hgrc
124 124 [1]
125 125
126 126 Check that path aliases are expanded:
127 127
128 128 $ hg clone -q -U --config 'paths.foobar=a#0' foobar f
129 129 $ hg -R f showconfig paths.default
130 130 $TESTTMP/a#0 (glob)
131 131
132 132 Use --pull:
133 133
134 134 $ hg clone --pull a g
135 135 requesting all changes
136 136 adding changesets
137 137 adding manifests
138 138 adding file changes
139 139 added 11 changesets with 11 changes to 2 files
140 140 updating to branch default
141 141 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
142 142 $ hg -R g verify
143 143 checking changesets
144 144 checking manifests
145 145 crosschecking files in changesets and manifests
146 146 checking files
147 147 2 files, 11 changesets, 11 total revisions
148 148
149 149 Invalid dest '' with --pull must abort (issue2528):
150 150
151 151 $ hg clone --pull a ''
152 152 abort: empty destination path is not valid
153 153 [255]
154 154
155 155 Clone to '.':
156 156
157 157 $ mkdir h
158 158 $ cd h
159 159 $ hg clone ../a .
160 160 updating to branch default
161 161 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
162 162 $ cd ..
163 163
164 164
165 165 *** Tests for option -u ***
166 166
167 167 Adding some more history to repo a:
168 168
169 169 $ cd a
170 170 $ hg tag ref1
171 171 $ echo the quick brown fox >a
172 172 $ hg ci -m "hacked default"
173 173 $ hg up ref1
174 174 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
175 175 $ hg branch stable
176 176 marked working directory as branch stable
177 177 (branches are permanent and global, did you want a bookmark?)
178 178 $ echo some text >a
179 179 $ hg ci -m "starting branch stable"
180 180 $ hg tag ref2
181 181 $ echo some more text >a
182 182 $ hg ci -m "another change for branch stable"
183 183 $ hg up ref2
184 184 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
185 185 $ hg parents
186 186 changeset: 13:e8ece76546a6
187 187 branch: stable
188 188 tag: ref2
189 189 parent: 10:a7949464abda
190 190 user: test
191 191 date: Thu Jan 01 00:00:00 1970 +0000
192 192 summary: starting branch stable
193 193
194 194
195 195 Repo a has two heads:
196 196
197 197 $ hg heads
198 198 changeset: 15:0aae7cf88f0d
199 199 branch: stable
200 200 tag: tip
201 201 user: test
202 202 date: Thu Jan 01 00:00:00 1970 +0000
203 203 summary: another change for branch stable
204 204
205 205 changeset: 12:f21241060d6a
206 206 user: test
207 207 date: Thu Jan 01 00:00:00 1970 +0000
208 208 summary: hacked default
209 209
210 210
211 211 $ cd ..
212 212
213 213
214 214 Testing --noupdate with --updaterev (must abort):
215 215
216 216 $ hg clone --noupdate --updaterev 1 a ua
217 217 abort: cannot specify both --noupdate and --updaterev
218 218 [255]
219 219
220 220
221 221 Testing clone -u:
222 222
223 223 $ hg clone -u . a ua
224 224 updating to branch stable
225 225 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
226 226
227 227 Repo ua has both heads:
228 228
229 229 $ hg -R ua heads
230 230 changeset: 15:0aae7cf88f0d
231 231 branch: stable
232 232 tag: tip
233 233 user: test
234 234 date: Thu Jan 01 00:00:00 1970 +0000
235 235 summary: another change for branch stable
236 236
237 237 changeset: 12:f21241060d6a
238 238 user: test
239 239 date: Thu Jan 01 00:00:00 1970 +0000
240 240 summary: hacked default
241 241
242 242
243 243 Same revision checked out in repo a and ua:
244 244
245 245 $ hg -R a parents --template "{node|short}\n"
246 246 e8ece76546a6
247 247 $ hg -R ua parents --template "{node|short}\n"
248 248 e8ece76546a6
249 249
250 250 $ rm -r ua
251 251
252 252
253 253 Testing clone --pull -u:
254 254
255 255 $ hg clone --pull -u . a ua
256 256 requesting all changes
257 257 adding changesets
258 258 adding manifests
259 259 adding file changes
260 260 added 16 changesets with 16 changes to 3 files (+1 heads)
261 261 updating to branch stable
262 262 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
263 263
264 264 Repo ua has both heads:
265 265
266 266 $ hg -R ua heads
267 267 changeset: 15:0aae7cf88f0d
268 268 branch: stable
269 269 tag: tip
270 270 user: test
271 271 date: Thu Jan 01 00:00:00 1970 +0000
272 272 summary: another change for branch stable
273 273
274 274 changeset: 12:f21241060d6a
275 275 user: test
276 276 date: Thu Jan 01 00:00:00 1970 +0000
277 277 summary: hacked default
278 278
279 279
280 280 Same revision checked out in repo a and ua:
281 281
282 282 $ hg -R a parents --template "{node|short}\n"
283 283 e8ece76546a6
284 284 $ hg -R ua parents --template "{node|short}\n"
285 285 e8ece76546a6
286 286
287 287 $ rm -r ua
288 288
289 289
290 290 Testing clone -u <branch>:
291 291
292 292 $ hg clone -u stable a ua
293 293 updating to branch stable
294 294 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
295 295
296 296 Repo ua has both heads:
297 297
298 298 $ hg -R ua heads
299 299 changeset: 15:0aae7cf88f0d
300 300 branch: stable
301 301 tag: tip
302 302 user: test
303 303 date: Thu Jan 01 00:00:00 1970 +0000
304 304 summary: another change for branch stable
305 305
306 306 changeset: 12:f21241060d6a
307 307 user: test
308 308 date: Thu Jan 01 00:00:00 1970 +0000
309 309 summary: hacked default
310 310
311 311
312 312 Branch 'stable' is checked out:
313 313
314 314 $ hg -R ua parents
315 315 changeset: 15:0aae7cf88f0d
316 316 branch: stable
317 317 tag: tip
318 318 user: test
319 319 date: Thu Jan 01 00:00:00 1970 +0000
320 320 summary: another change for branch stable
321 321
322 322
323 323 $ rm -r ua
324 324
325 325
326 326 Testing default checkout:
327 327
328 328 $ hg clone a ua
329 329 updating to branch default
330 330 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
331 331
332 332 Repo ua has both heads:
333 333
334 334 $ hg -R ua heads
335 335 changeset: 15:0aae7cf88f0d
336 336 branch: stable
337 337 tag: tip
338 338 user: test
339 339 date: Thu Jan 01 00:00:00 1970 +0000
340 340 summary: another change for branch stable
341 341
342 342 changeset: 12:f21241060d6a
343 343 user: test
344 344 date: Thu Jan 01 00:00:00 1970 +0000
345 345 summary: hacked default
346 346
347 347
348 348 Branch 'default' is checked out:
349 349
350 350 $ hg -R ua parents
351 351 changeset: 12:f21241060d6a
352 352 user: test
353 353 date: Thu Jan 01 00:00:00 1970 +0000
354 354 summary: hacked default
355 355
356 356 Test clone with a branch named "@" (issue3677)
357 357
358 358 $ hg -R ua branch @
359 359 marked working directory as branch @
360 360 $ hg -R ua commit -m 'created branch @'
361 361 $ hg clone ua atbranch
362 362 updating to branch default
363 363 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
364 364 $ hg -R atbranch heads
365 365 changeset: 16:798b6d97153e
366 366 branch: @
367 367 tag: tip
368 368 parent: 12:f21241060d6a
369 369 user: test
370 370 date: Thu Jan 01 00:00:00 1970 +0000
371 371 summary: created branch @
372 372
373 373 changeset: 15:0aae7cf88f0d
374 374 branch: stable
375 375 user: test
376 376 date: Thu Jan 01 00:00:00 1970 +0000
377 377 summary: another change for branch stable
378 378
379 379 changeset: 12:f21241060d6a
380 380 user: test
381 381 date: Thu Jan 01 00:00:00 1970 +0000
382 382 summary: hacked default
383 383
384 384 $ hg -R atbranch parents
385 385 changeset: 12:f21241060d6a
386 386 user: test
387 387 date: Thu Jan 01 00:00:00 1970 +0000
388 388 summary: hacked default
389 389
390 390
391 391 $ rm -r ua atbranch
392 392
393 393
394 394 Testing #<branch>:
395 395
396 396 $ hg clone -u . a#stable ua
397 397 adding changesets
398 398 adding manifests
399 399 adding file changes
400 400 added 14 changesets with 14 changes to 3 files
401 401 updating to branch stable
402 402 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
403 403
404 404 Repo ua has branch 'stable' and 'default' (was changed in fd511e9eeea6):
405 405
406 406 $ hg -R ua heads
407 407 changeset: 13:0aae7cf88f0d
408 408 branch: stable
409 409 tag: tip
410 410 user: test
411 411 date: Thu Jan 01 00:00:00 1970 +0000
412 412 summary: another change for branch stable
413 413
414 414 changeset: 10:a7949464abda
415 415 user: test
416 416 date: Thu Jan 01 00:00:00 1970 +0000
417 417 summary: test
418 418
419 419
420 420 Same revision checked out in repo a and ua:
421 421
422 422 $ hg -R a parents --template "{node|short}\n"
423 423 e8ece76546a6
424 424 $ hg -R ua parents --template "{node|short}\n"
425 425 e8ece76546a6
426 426
427 427 $ rm -r ua
428 428
429 429
430 430 Testing -u -r <branch>:
431 431
432 432 $ hg clone -u . -r stable a ua
433 433 adding changesets
434 434 adding manifests
435 435 adding file changes
436 436 added 14 changesets with 14 changes to 3 files
437 437 updating to branch stable
438 438 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
439 439
440 440 Repo ua has branch 'stable' and 'default' (was changed in fd511e9eeea6):
441 441
442 442 $ hg -R ua heads
443 443 changeset: 13:0aae7cf88f0d
444 444 branch: stable
445 445 tag: tip
446 446 user: test
447 447 date: Thu Jan 01 00:00:00 1970 +0000
448 448 summary: another change for branch stable
449 449
450 450 changeset: 10:a7949464abda
451 451 user: test
452 452 date: Thu Jan 01 00:00:00 1970 +0000
453 453 summary: test
454 454
455 455
456 456 Same revision checked out in repo a and ua:
457 457
458 458 $ hg -R a parents --template "{node|short}\n"
459 459 e8ece76546a6
460 460 $ hg -R ua parents --template "{node|short}\n"
461 461 e8ece76546a6
462 462
463 463 $ rm -r ua
464 464
465 465
466 466 Testing -r <branch>:
467 467
468 468 $ hg clone -r stable a ua
469 469 adding changesets
470 470 adding manifests
471 471 adding file changes
472 472 added 14 changesets with 14 changes to 3 files
473 473 updating to branch stable
474 474 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
475 475
476 476 Repo ua has branch 'stable' and 'default' (was changed in fd511e9eeea6):
477 477
478 478 $ hg -R ua heads
479 479 changeset: 13:0aae7cf88f0d
480 480 branch: stable
481 481 tag: tip
482 482 user: test
483 483 date: Thu Jan 01 00:00:00 1970 +0000
484 484 summary: another change for branch stable
485 485
486 486 changeset: 10:a7949464abda
487 487 user: test
488 488 date: Thu Jan 01 00:00:00 1970 +0000
489 489 summary: test
490 490
491 491
492 492 Branch 'stable' is checked out:
493 493
494 494 $ hg -R ua parents
495 495 changeset: 13:0aae7cf88f0d
496 496 branch: stable
497 497 tag: tip
498 498 user: test
499 499 date: Thu Jan 01 00:00:00 1970 +0000
500 500 summary: another change for branch stable
501 501
502 502
503 503 $ rm -r ua
504 504
505 505
506 506 Issue2267: Error in 1.6 hg.py: TypeError: 'NoneType' object is not
507 507 iterable in addbranchrevs()
508 508
509 509 $ cat <<EOF > simpleclone.py
510 510 > from mercurial import ui, hg
511 511 > myui = ui.ui()
512 512 > repo = hg.repository(myui, 'a')
513 513 > hg.clone(myui, {}, repo, dest="ua")
514 514 > EOF
515 515
516 516 $ python simpleclone.py
517 517 updating to branch default
518 518 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
519 519
520 520 $ rm -r ua
521 521
522 522 $ cat <<EOF > branchclone.py
523 523 > from mercurial import ui, hg, extensions
524 524 > myui = ui.ui()
525 525 > extensions.loadall(myui)
526 526 > repo = hg.repository(myui, 'a')
527 527 > hg.clone(myui, {}, repo, dest="ua", branch=["stable",])
528 528 > EOF
529 529
530 530 $ python branchclone.py
531 531 adding changesets
532 532 adding manifests
533 533 adding file changes
534 534 added 14 changesets with 14 changes to 3 files
535 535 updating to branch stable
536 536 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
537 537 $ rm -r ua
538 538
539 539
540 540 Test clone with special '@' bookmark:
541 541 $ cd a
542 542 $ hg bookmark -r a7949464abda @ # branch point of stable from default
543 543 $ hg clone . ../i
544 544 updating to bookmark @
545 545 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
546 546 $ hg id -i ../i
547 547 a7949464abda
548 548 $ rm -r ../i
549 549
550 550 $ hg bookmark -f -r stable @
551 551 $ hg bookmarks
552 552 @ 15:0aae7cf88f0d
553 553 $ hg clone . ../i
554 554 updating to bookmark @ on branch stable
555 555 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
556 556 $ hg id -i ../i
557 557 0aae7cf88f0d
558 558 $ cd "$TESTTMP"
559 559
560 560
561 561 Testing failures:
562 562
563 563 $ mkdir fail
564 564 $ cd fail
565 565
566 566 No local source
567 567
568 568 $ hg clone a b
569 569 abort: repository a not found!
570 570 [255]
571 571
572 572 No remote source
573 573
574 574 #if windows
575 575 $ hg clone http://127.0.0.1:3121/a b
576 576 abort: error: * (glob)
577 577 [255]
578 578 #else
579 579 $ hg clone http://127.0.0.1:3121/a b
580 580 abort: error: *refused* (glob)
581 581 [255]
582 582 #endif
583 583 $ rm -rf b # work around bug with http clone
584 584
585 585
586 586 #if unix-permissions no-root
587 587
588 588 Inaccessible source
589 589
590 590 $ mkdir a
591 591 $ chmod 000 a
592 592 $ hg clone a b
593 593 abort: repository a not found!
594 594 [255]
595 595
596 596 Inaccessible destination
597 597
598 598 $ hg init b
599 599 $ cd b
600 600 $ hg clone . ../a
601 601 abort: Permission denied: '../a'
602 602 [255]
603 603 $ cd ..
604 604 $ chmod 700 a
605 605 $ rm -r a b
606 606
607 607 #endif
608 608
609 609
610 610 #if fifo
611 611
612 612 Source of wrong type
613 613
614 614 $ mkfifo a
615 615 $ hg clone a b
616 616 abort: repository a not found!
617 617 [255]
618 618 $ rm a
619 619
620 620 #endif
621 621
622 622 Default destination, same directory
623 623
624 624 $ hg init q
625 625 $ hg clone q
626 626 destination directory: q
627 627 abort: destination 'q' is not empty
628 628 [255]
629 629
630 630 destination directory not empty
631 631
632 632 $ mkdir a
633 633 $ echo stuff > a/a
634 634 $ hg clone q a
635 635 abort: destination 'a' is not empty
636 636 [255]
637 637
638 638
639 639 #if unix-permissions no-root
640 640
641 641 leave existing directory in place after clone failure
642 642
643 643 $ hg init c
644 644 $ cd c
645 645 $ echo c > c
646 646 $ hg commit -A -m test
647 647 adding c
648 648 $ chmod -rx .hg/store/data
649 649 $ cd ..
650 650 $ mkdir d
651 651 $ hg clone c d 2> err
652 652 [255]
653 653 $ test -d d
654 654 $ test -d d/.hg
655 655 [1]
656 656
657 657 re-enable perm to allow deletion
658 658
659 659 $ chmod +rx c/.hg/store/data
660 660
661 661 #endif
662 662
663 663 $ cd ..
664 664
665 665 Test clone from the repository in (emulated) revlog format 0 (issue4203):
666 666
667 667 $ mkdir issue4203
668 668 $ mkdir -p src/.hg
669 669 $ echo foo > src/foo
670 670 $ hg -R src add src/foo
671 671 $ hg -R src commit -m '#0'
672 672 $ hg -R src log -q
673 673 0:e1bab28bca43
674 674 $ hg clone -U -q src dst
675 675 $ hg -R dst log -q
676 676 0:e1bab28bca43
677 677
678 678 Create repositories to test auto sharing functionality
679 679
680 680 $ cat >> $HGRCPATH << EOF
681 681 > [extensions]
682 682 > share=
683 683 > EOF
684 684
685 685 $ hg init empty
686 686 $ hg init source1a
687 687 $ cd source1a
688 688 $ echo initial1 > foo
689 689 $ hg -q commit -A -m initial
690 690 $ echo second > foo
691 691 $ hg commit -m second
692 692 $ cd ..
693 693
694 694 $ hg init filteredrev0
695 695 $ cd filteredrev0
696 696 $ cat >> .hg/hgrc << EOF
697 697 > [experimental]
698 698 > evolution=createmarkers
699 699 > EOF
700 700 $ echo initial1 > foo
701 701 $ hg -q commit -A -m initial0
702 702 $ hg -q up -r null
703 703 $ echo initial2 > foo
704 704 $ hg -q commit -A -m initial1
705 705 $ hg debugobsolete c05d5c47a5cf81401869999f3d05f7d699d2b29a e082c1832e09a7d1e78b7fd49a592d372de854c8
706 706 $ cd ..
707 707
708 708 $ hg -q clone --pull source1a source1b
709 709 $ cd source1a
710 710 $ hg bookmark bookA
711 711 $ echo 1a > foo
712 712 $ hg commit -m 1a
713 713 $ cd ../source1b
714 714 $ hg -q up -r 0
715 715 $ echo head1 > foo
716 716 $ hg commit -m head1
717 717 created new head
718 718 $ hg bookmark head1
719 719 $ hg -q up -r 0
720 720 $ echo head2 > foo
721 721 $ hg commit -m head2
722 722 created new head
723 723 $ hg bookmark head2
724 724 $ hg -q up -r 0
725 725 $ hg branch branch1
726 726 marked working directory as branch branch1
727 727 (branches are permanent and global, did you want a bookmark?)
728 728 $ echo branch1 > foo
729 729 $ hg commit -m branch1
730 730 $ hg -q up -r 0
731 731 $ hg branch branch2
732 732 marked working directory as branch branch2
733 733 $ echo branch2 > foo
734 734 $ hg commit -m branch2
735 735 $ cd ..
736 736 $ hg init source2
737 737 $ cd source2
738 738 $ echo initial2 > foo
739 739 $ hg -q commit -A -m initial2
740 740 $ echo second > foo
741 741 $ hg commit -m second
742 742 $ cd ..
743 743
744 744 Clone with auto share from an empty repo should not result in share
745 745
746 746 $ mkdir share
747 747 $ hg --config share.pool=share clone empty share-empty
748 748 (not using pooled storage: remote appears to be empty)
749 749 updating to branch default
750 750 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
751 751 $ ls share
752 752 $ test -d share-empty/.hg/store
753 753 $ test -f share-empty/.hg/sharedpath
754 754 [1]
755 755
756 756 Clone with auto share from a repo with filtered revision 0 should not result in share
757 757
758 758 $ hg --config share.pool=share clone filteredrev0 share-filtered
759 759 (not using pooled storage: unable to resolve identity of remote)
760 760 requesting all changes
761 761 adding changesets
762 762 adding manifests
763 763 adding file changes
764 764 added 1 changesets with 1 changes to 1 files
765 765 updating to branch default
766 766 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
767 767
768 768 Clone from repo with content should result in shared store being created
769 769
770 770 $ hg --config share.pool=share clone source1a share-dest1a
771 771 (sharing from new pooled repository b5f04eac9d8f7a6a9fcb070243cccea7dc5ea0c1)
772 772 requesting all changes
773 773 adding changesets
774 774 adding manifests
775 775 adding file changes
776 776 added 3 changesets with 3 changes to 1 files
777 777 searching for changes
778 778 no changes found
779 779 adding remote bookmark bookA
780 780 updating working directory
781 781 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
782 782
783 783 The shared repo should have been created
784 784
785 785 $ ls share
786 786 b5f04eac9d8f7a6a9fcb070243cccea7dc5ea0c1
787 787
788 788 The destination should point to it
789 789
790 790 $ cat share-dest1a/.hg/sharedpath; echo
791 791 $TESTTMP/share/b5f04eac9d8f7a6a9fcb070243cccea7dc5ea0c1/.hg (glob)
792 792
793 793 The destination should have bookmarks
794 794
795 795 $ hg -R share-dest1a bookmarks
796 796 bookA 2:e5bfe23c0b47
797 797
798 798 The default path should be the remote, not the share
799 799
800 800 $ hg -R share-dest1a config paths.default
801 801 $TESTTMP/source1a (glob)
802 802
803 803 Clone with existing share dir should result in pull + share
804 804
805 805 $ hg --config share.pool=share clone source1b share-dest1b
806 806 (sharing from existing pooled repository b5f04eac9d8f7a6a9fcb070243cccea7dc5ea0c1)
807 807 searching for changes
808 808 adding changesets
809 809 adding manifests
810 810 adding file changes
811 811 added 4 changesets with 4 changes to 1 files (+4 heads)
812 812 adding remote bookmark head1
813 813 adding remote bookmark head2
814 814 updating working directory
815 815 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
816 816
817 817 $ ls share
818 818 b5f04eac9d8f7a6a9fcb070243cccea7dc5ea0c1
819 819
820 820 $ cat share-dest1b/.hg/sharedpath; echo
821 821 $TESTTMP/share/b5f04eac9d8f7a6a9fcb070243cccea7dc5ea0c1/.hg (glob)
822 822
823 823 We only get bookmarks from the remote, not everything in the share
824 824
825 825 $ hg -R share-dest1b bookmarks
826 826 head1 3:4a8dc1ab4c13
827 827 head2 4:99f71071f117
828 828
829 829 Default path should be source, not share.
830 830
831 831 $ hg -R share-dest1b config paths.default
832 832 $TESTTMP/source1b (glob)
833 833
834 834 Checked out revision should be head of default branch
835 835
836 836 $ hg -R share-dest1b log -r .
837 837 changeset: 4:99f71071f117
838 838 bookmark: head2
839 839 parent: 0:b5f04eac9d8f
840 840 user: test
841 841 date: Thu Jan 01 00:00:00 1970 +0000
842 842 summary: head2
843 843
844 844
845 845 Clone from unrelated repo should result in new share
846 846
847 847 $ hg --config share.pool=share clone source2 share-dest2
848 848 (sharing from new pooled repository 22aeff664783fd44c6d9b435618173c118c3448e)
849 849 requesting all changes
850 850 adding changesets
851 851 adding manifests
852 852 adding file changes
853 853 added 2 changesets with 2 changes to 1 files
854 854 searching for changes
855 855 no changes found
856 856 updating working directory
857 857 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
858 858
859 859 $ ls share
860 860 22aeff664783fd44c6d9b435618173c118c3448e
861 861 b5f04eac9d8f7a6a9fcb070243cccea7dc5ea0c1
862 862
863 863 remote naming mode works as advertised
864 864
865 865 $ hg --config share.pool=shareremote --config share.poolnaming=remote clone source1a share-remote1a
866 866 (sharing from new pooled repository 195bb1fcdb595c14a6c13e0269129ed78f6debde)
867 867 requesting all changes
868 868 adding changesets
869 869 adding manifests
870 870 adding file changes
871 871 added 3 changesets with 3 changes to 1 files
872 872 searching for changes
873 873 no changes found
874 874 adding remote bookmark bookA
875 875 updating working directory
876 876 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
877 877
878 878 $ ls shareremote
879 879 195bb1fcdb595c14a6c13e0269129ed78f6debde
880 880
881 881 $ hg --config share.pool=shareremote --config share.poolnaming=remote clone source1b share-remote1b
882 882 (sharing from new pooled repository c0d4f83847ca2a873741feb7048a45085fd47c46)
883 883 requesting all changes
884 884 adding changesets
885 885 adding manifests
886 886 adding file changes
887 887 added 6 changesets with 6 changes to 1 files (+4 heads)
888 888 searching for changes
889 889 no changes found
890 890 adding remote bookmark head1
891 891 adding remote bookmark head2
892 892 updating working directory
893 893 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
894 894
895 895 $ ls shareremote
896 896 195bb1fcdb595c14a6c13e0269129ed78f6debde
897 897 c0d4f83847ca2a873741feb7048a45085fd47c46
898 898
899 899 request to clone a single revision is respected in sharing mode
900 900
901 901 $ hg --config share.pool=sharerevs clone -r 4a8dc1ab4c13 source1b share-1arev
902 902 (sharing from new pooled repository b5f04eac9d8f7a6a9fcb070243cccea7dc5ea0c1)
903 903 adding changesets
904 904 adding manifests
905 905 adding file changes
906 906 added 2 changesets with 2 changes to 1 files
907 907 no changes found
908 908 adding remote bookmark head1
909 909 updating working directory
910 910 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
911 911
912 912 $ hg -R share-1arev log -G
913 913 @ changeset: 1:4a8dc1ab4c13
914 914 | bookmark: head1
915 915 | tag: tip
916 916 | user: test
917 917 | date: Thu Jan 01 00:00:00 1970 +0000
918 918 | summary: head1
919 919 |
920 920 o changeset: 0:b5f04eac9d8f
921 921 user: test
922 922 date: Thu Jan 01 00:00:00 1970 +0000
923 923 summary: initial
924 924
925 925
926 926 making another clone should only pull down requested rev
927 927
928 928 $ hg --config share.pool=sharerevs clone -r 99f71071f117 source1b share-1brev
929 929 (sharing from existing pooled repository b5f04eac9d8f7a6a9fcb070243cccea7dc5ea0c1)
930 930 searching for changes
931 931 adding changesets
932 932 adding manifests
933 933 adding file changes
934 934 added 1 changesets with 1 changes to 1 files (+1 heads)
935 935 adding remote bookmark head1
936 936 adding remote bookmark head2
937 937 updating working directory
938 938 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
939 939
940 940 $ hg -R share-1brev log -G
941 941 @ changeset: 2:99f71071f117
942 942 | bookmark: head2
943 943 | tag: tip
944 944 | parent: 0:b5f04eac9d8f
945 945 | user: test
946 946 | date: Thu Jan 01 00:00:00 1970 +0000
947 947 | summary: head2
948 948 |
949 949 | o changeset: 1:4a8dc1ab4c13
950 950 |/ bookmark: head1
951 951 | user: test
952 952 | date: Thu Jan 01 00:00:00 1970 +0000
953 953 | summary: head1
954 954 |
955 955 o changeset: 0:b5f04eac9d8f
956 956 user: test
957 957 date: Thu Jan 01 00:00:00 1970 +0000
958 958 summary: initial
959 959
960 960
961 961 Request to clone a single branch is respected in sharing mode
962 962
963 963 $ hg --config share.pool=sharebranch clone -b branch1 source1b share-1bbranch1
964 964 (sharing from new pooled repository b5f04eac9d8f7a6a9fcb070243cccea7dc5ea0c1)
965 965 adding changesets
966 966 adding manifests
967 967 adding file changes
968 968 added 2 changesets with 2 changes to 1 files
969 969 no changes found
970 970 updating working directory
971 971 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
972 972
973 973 $ hg -R share-1bbranch1 log -G
974 974 o changeset: 1:5f92a6c1a1b1
975 975 | branch: branch1
976 976 | tag: tip
977 977 | user: test
978 978 | date: Thu Jan 01 00:00:00 1970 +0000
979 979 | summary: branch1
980 980 |
981 981 @ changeset: 0:b5f04eac9d8f
982 982 user: test
983 983 date: Thu Jan 01 00:00:00 1970 +0000
984 984 summary: initial
985 985
986 986
987 987 $ hg --config share.pool=sharebranch clone -b branch2 source1b share-1bbranch2
988 988 (sharing from existing pooled repository b5f04eac9d8f7a6a9fcb070243cccea7dc5ea0c1)
989 989 searching for changes
990 990 adding changesets
991 991 adding manifests
992 992 adding file changes
993 993 added 1 changesets with 1 changes to 1 files (+1 heads)
994 994 updating working directory
995 995 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
996 996
997 997 $ hg -R share-1bbranch2 log -G
998 998 o changeset: 2:6bacf4683960
999 999 | branch: branch2
1000 1000 | tag: tip
1001 1001 | parent: 0:b5f04eac9d8f
1002 1002 | user: test
1003 1003 | date: Thu Jan 01 00:00:00 1970 +0000
1004 1004 | summary: branch2
1005 1005 |
1006 1006 | o changeset: 1:5f92a6c1a1b1
1007 1007 |/ branch: branch1
1008 1008 | user: test
1009 1009 | date: Thu Jan 01 00:00:00 1970 +0000
1010 1010 | summary: branch1
1011 1011 |
1012 1012 @ changeset: 0:b5f04eac9d8f
1013 1013 user: test
1014 1014 date: Thu Jan 01 00:00:00 1970 +0000
1015 1015 summary: initial
1016 1016
1017 1017
1018 1018 -U is respected in share clone mode
1019 1019
1020 1020 $ hg --config share.pool=share clone -U source1a share-1anowc
1021 1021 (sharing from existing pooled repository b5f04eac9d8f7a6a9fcb070243cccea7dc5ea0c1)
1022 1022 searching for changes
1023 1023 no changes found
1024 1024 adding remote bookmark bookA
1025 1025
1026 1026 $ ls share-1anowc
1027 1027
1028 1028 Test that auto sharing doesn't cause failure of "hg clone local remote"
1029 1029
1030 1030 $ cd $TESTTMP
1031 1031 $ hg -R a id -r 0
1032 1032 acb14030fe0a
1033 1033 $ hg id -R remote -r 0
1034 1034 abort: repository remote not found!
1035 1035 [255]
1036 1036 $ hg --config share.pool=share -q clone -e "python \"$TESTDIR/dummyssh\"" a ssh://user@dummy/remote
1037 1037 $ hg -R remote id -r 0
1038 1038 acb14030fe0a
1039 1039
1040 1040 Cloning into pooled storage doesn't race (issue5104)
1041 1041
1042 1042 $ HGPOSTLOCKDELAY=2.0 hg --config share.pool=racepool --config extensions.lockdelay=$TESTDIR/lockdelay.py clone source1a share-destrace1 > race1.log 2>&1 &
1043 1043 $ HGPRELOCKDELAY=1.0 hg --config share.pool=racepool --config extensions.lockdelay=$TESTDIR/lockdelay.py clone source1a share-destrace2 > race2.log 2>&1
1044 1044 $ wait
1045 1045
1046 1046 $ hg -R share-destrace1 log -r tip
1047 1047 changeset: 2:e5bfe23c0b47
1048 1048 bookmark: bookA
1049 1049 tag: tip
1050 1050 user: test
1051 1051 date: Thu Jan 01 00:00:00 1970 +0000
1052 1052 summary: 1a
1053 1053
1054 1054
1055 1055 $ hg -R share-destrace2 log -r tip
1056 1056 changeset: 2:e5bfe23c0b47
1057 1057 bookmark: bookA
1058 1058 tag: tip
1059 1059 user: test
1060 1060 date: Thu Jan 01 00:00:00 1970 +0000
1061 1061 summary: 1a
1062 1062
1063 1063 One repo should be new, the other should be shared from the pool. We
1064 1064 don't care which is which, so we just make sure we always print the
1065 1065 one containing "new pooled" first, then one one containing "existing
1066 1066 pooled".
1067 1067
1068 $ grep 'new pooled' race1.log > /dev/null && cat race1.log || cat race2.log
1068 $ (grep 'new pooled' race1.log > /dev/null && cat race1.log || cat race2.log) | grep -v lock
1069 1069 (sharing from new pooled repository b5f04eac9d8f7a6a9fcb070243cccea7dc5ea0c1)
1070 1070 requesting all changes
1071 1071 adding changesets
1072 1072 adding manifests
1073 1073 adding file changes
1074 1074 added 3 changesets with 3 changes to 1 files
1075 1075 searching for changes
1076 1076 no changes found
1077 1077 adding remote bookmark bookA
1078 1078 updating working directory
1079 1079 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1080 1080
1081 $ grep 'existing pooled' race1.log > /dev/null && cat race1.log || cat race2.log
1081 $ (grep 'existing pooled' race1.log > /dev/null && cat race1.log || cat race2.log) | grep -v lock
1082 1082 (sharing from existing pooled repository b5f04eac9d8f7a6a9fcb070243cccea7dc5ea0c1)
1083 waiting for lock on repository share-destrace2 held by * (glob)
1084 got lock after \d+ seconds (re)
1085 1083 searching for changes
1086 1084 no changes found
1087 1085 adding remote bookmark bookA
1088 1086 updating working directory
1089 1087 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
General Comments 0
You need to be logged in to leave comments. Login now