comparison tests/test-subrepo-svn.t @ 16073:b254f827b7a6

subrepo: rewrite handling of subrepo state at commit (issue2403) When the contents of .hgsubstate are stale (either because they've manually been tweaked or partial updates have confused it), we get confused about whether it actually needs committing. So instead, we actively consult the parent's substate and compare it the actual current state when deciding whether it needs committing. Side effect: lots of "committing subrepo" messages that didn't correspond with real commits disappear. This change is fairly invasive for a fairly obscure condition, so it's kept on the default branch.
author Matt Mackall <mpm@selenic.com>
date Mon, 06 Feb 2012 15:10:01 -0600
parents fab28a577a38
children 9c431cfdca12
comparison
equal deleted inserted replaced
16072:bcb973abcc0b 16073:b254f827b7a6
67 $ svn co --quiet "$SVNREPO"/src s 67 $ svn co --quiet "$SVNREPO"/src s
68 $ mkdir subdir 68 $ mkdir subdir
69 $ svn co --quiet "$SVNREPO"/src subdir/s 69 $ svn co --quiet "$SVNREPO"/src subdir/s
70 $ hg add .hgsub 70 $ hg add .hgsub
71 $ hg ci -m1 71 $ hg ci -m1
72 committing subrepository s
73 committing subrepository subdir/s
74 72
75 make sure we avoid empty commits (issue2445) 73 make sure we avoid empty commits (issue2445)
76 74
77 $ hg sum 75 $ hg sum
78 parent: 1:* tip (glob) 76 parent: 1:* tip (glob)
430 $ cd rebaserepo 428 $ cd rebaserepo
431 $ svn co -r5 --quiet "$SVNREPO"/src s 429 $ svn co -r5 --quiet "$SVNREPO"/src s
432 $ echo "s = [svn] $SVNREPO/src" >> .hgsub 430 $ echo "s = [svn] $SVNREPO/src" >> .hgsub
433 $ hg add .hgsub 431 $ hg add .hgsub
434 $ hg ci -m addsub 432 $ hg ci -m addsub
435 committing subrepository s
436 $ echo a > a 433 $ echo a > a
437 $ hg ci -Am adda 434 $ hg ci -Am adda
438 adding a 435 adding a
439 $ hg up 0 436 $ hg up 0
440 0 files updated, 0 files merged, 1 files removed, 0 files unresolved 437 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
441 $ svn up -qr6 s 438 $ svn up -qr6 s
442 $ hg ci -m updatesub 439 $ hg ci -m updatesub
443 committing subrepository s
444 created new head 440 created new head
445 $ echo pyc > s/dir/epsilon.pyc 441 $ echo pyc > s/dir/epsilon.pyc
446 $ hg up 1 442 $ hg up 1
447 D *s/dir (glob) 443 D *s/dir (glob)
448 444
460 $ hg checkout tip 456 $ hg checkout tip
461 0 files updated, 0 files merged, 0 files removed, 0 files unresolved 457 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
462 $ echo "obstruct = [svn] $SVNREPO/externals" >> .hgsub 458 $ echo "obstruct = [svn] $SVNREPO/externals" >> .hgsub
463 $ svn co -r5 --quiet "$SVNREPO"/externals obstruct 459 $ svn co -r5 --quiet "$SVNREPO"/externals obstruct
464 $ hg commit -m 'Start making obstructed working copy' 460 $ hg commit -m 'Start making obstructed working copy'
465 committing subrepository obstruct
466 $ hg book other 461 $ hg book other
467 $ hg co -r 'p1(tip)' 462 $ hg co -r 'p1(tip)'
468 2 files updated, 0 files merged, 0 files removed, 0 files unresolved 463 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
469 $ echo "obstruct = [svn] $SVNREPO/src" >> .hgsub 464 $ echo "obstruct = [svn] $SVNREPO/src" >> .hgsub
470 $ svn co -r5 --quiet "$SVNREPO"/src obstruct 465 $ svn co -r5 --quiet "$SVNREPO"/src obstruct
471 $ hg commit -m 'Other branch which will be obstructed' 466 $ hg commit -m 'Other branch which will be obstructed'
472 committing subrepository obstruct
473 created new head 467 created new head
474 468
475 Switching back to the head where we have another path mapped to the 469 Switching back to the head where we have another path mapped to the
476 same subrepo should work if the subrepo is clean. 470 same subrepo should work if the subrepo is clean.
477 $ hg co other 471 $ hg co other
528 $ svn co "$SVNREPO/branch"@10 recreated 522 $ svn co "$SVNREPO/branch"@10 recreated
529 A recreated/somethingold 523 A recreated/somethingold
530 Checked out revision 10. 524 Checked out revision 10.
531 $ echo "recreated = [svn] $SVNREPO/branch" >> .hgsub 525 $ echo "recreated = [svn] $SVNREPO/branch" >> .hgsub
532 $ hg ci -m addsub 526 $ hg ci -m addsub
533 committing subrepository recreated
534 $ cd recreated 527 $ cd recreated
535 $ svn up -q 528 $ svn up -q
536 $ cd .. 529 $ cd ..
537 $ hg ci -m updatesub 530 $ hg ci -m updatesub
538 committing subrepository recreated
539 $ hg up -r-2 531 $ hg up -r-2
540 D *recreated/somethingnew (glob) 532 D *recreated/somethingnew (glob)
541 A *recreated/somethingold (glob) 533 A *recreated/somethingold (glob)
542 Checked out revision 10. 534 Checked out revision 10.
543 1 files updated, 0 files merged, 0 files removed, 0 files unresolved 535 1 files updated, 0 files merged, 0 files removed, 0 files unresolved