##// END OF EJS Templates
revlog-split: show manifest data loss situation when using clonebundle...
marmoute -
r51318:54f68495 stable
parent child Browse files
Show More
@@ -638,3 +638,120 b' on a 32MB system.'
638 updating the branch cache
638 updating the branch cache
639 (sent 4 HTTP requests and * bytes; received * bytes in responses) (glob)
639 (sent 4 HTTP requests and * bytes; received * bytes in responses) (glob)
640 $ killdaemons.py
640 $ killdaemons.py
641
642 Testing a clone bundles that involves revlog splitting (issue6811)
643 ==================================================================
644
645 $ cat >> $HGRCPATH << EOF
646 > [format]
647 > revlog-compression=none
648 > use-persistent-nodemap=no
649 > EOF
650
651 $ hg init server-revlog-split/
652 $ cd server-revlog-split
653 $ cat >> .hg/hgrc << EOF
654 > [extensions]
655 > clonebundles =
656 > EOF
657 $ echo foo > A
658 $ hg add A
659 $ hg commit -m 'initial commit'
660 IMPORTANT: the revlogs must not be split
661 $ ls -1 .hg/store/00manifest.*
662 .hg/store/00manifest.i
663 $ ls -1 .hg/store/data/_a.*
664 .hg/store/data/_a.i
665
666 do big enough update to split the revlogs
667
668 $ $TESTDIR/seq.py 100000 > A
669 $ mkdir foo
670 $ cd foo
671 $ touch `$TESTDIR/seq.py 10000`
672 $ cd ..
673 $ hg add -q foo
674 $ hg commit -m 'split the manifest and one filelog'
675
676 IMPORTANT: now the revlogs must be split
677 $ ls -1 .hg/store/00manifest.*
678 .hg/store/00manifest.d
679 .hg/store/00manifest.i
680 $ ls -1 .hg/store/data/_a.*
681 .hg/store/data/_a.d
682 .hg/store/data/_a.i
683
684 Add an extra commit on top of that
685
686 $ echo foo >> A
687 $ hg commit -m 'one extra commit'
688
689 $ cd ..
690
691 Do a bundle that contains the split, but not the update
692
693 $ hg bundle --exact --rev '::(default~1)' -R server-revlog-split/ --type gzip-v2 split-test.hg
694 2 changesets found
695
696 $ cat > server-revlog-split/.hg/clonebundles.manifest << EOF
697 > http://localhost:$HGPORT1/split-test.hg BUNDLESPEC=gzip-v2
698 > EOF
699
700 start the necessary server
701
702 $ "$PYTHON" $TESTDIR/dumbhttp.py -p $HGPORT1 --pid http.pid
703 $ cat http.pid >> $DAEMON_PIDS
704 $ hg -R server-revlog-split serve -d -p $HGPORT --pid-file hg.pid --accesslog access.log
705 $ cat hg.pid >> $DAEMON_PIDS
706
707 Check that clone works fine
708 ===========================
709
710 Here, the initial clone will trigger a revlog split (which is a bit clowny it
711 itself, but whatever). The split revlogs will see additionnal data added to
712 them in the subsequent pull. This should not be a problem
713
714 $ hg clone http://localhost:$HGPORT revlog-split-in-the-bundle
715 applying clone bundle from http://localhost:$HGPORT1/split-test.hg
716 adding changesets
717 adding manifests
718 adding file changes
719 added 2 changesets with 10002 changes to 10001 files
720 finished applying clone bundle
721 searching for changes
722 adding changesets
723 adding manifests
724 adding file changes
725 added 1 changesets with 1 changes to 1 files
726 new changesets e3879eaa1db7
727 2 local changesets published
728 updating to branch default
729 10001 files updated, 0 files merged, 0 files removed, 0 files unresolved
730
731 check the results
732
733 $ cd revlog-split-in-the-bundle
734 $ f --size .hg/store/00manifest.*
735 .hg/store/00manifest.d: size=499037
736 .hg/store/00manifest.i: size=192 (missing-correct-output !)
737 .hg/store/00manifest.i: size=128 (known-bad-output !)
738 .hg/store/00manifest.i.s: size=64 (known-bad-output !)
739 $ f --size .hg/store/data/_a.*
740 .hg/store/data/_a.d: size=588917
741 .hg/store/data/_a.i: size=192
742
743 manifest should work
744
745 $ hg files -r tip | wc -l
746 \s*10001 (re) (missing-correct-output !)
747 abort: 00manifest@4941afd6b8e298d932227572c5c303cbc14301bd: no node (known-bad-output !)
748 0 (known-bad-output !)
749
750 file content should work
751
752 $ hg cat -r tip A | wc -l
753 \s*100001 (re) (missing-correct-output !)
754 abort: 00manifest@4941afd6b8e298d932227572c5c303cbc14301bd: no node (known-bad-output !)
755 0 (known-bad-output !)
756
757
General Comments 0
You need to be logged in to leave comments. Login now