--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-strip-cross.t Sun Sep 26 13:44:49 2010 -0500
@@ -0,0 +1,142 @@
+test stripping of filelogs where the linkrev doesn't always increase
+
+ $ . $TESTDIR/helpers.sh
+ $ echo '[extensions]' >> $HGRCPATH
+ $ echo 'hgext.mq =' >> $HGRCPATH
+ $ hg init orig
+ $ cd orig
+ $ commit()
+ > {
+ > hg up -qC null
+ > count=1
+ > for i in "$@"; do
+ > for f in $i; do
+ > echo $count > $f
+ > done
+ > count=`expr $count + 1`
+ > done
+ > hg commit -qAm "$*"
+ > }
+
+2 1 0 2 0 1 2
+
+ $ commit '201 210'
+ $ commit '102 120' '210'
+ $ commit '021'
+ $ commit '201' '021 120'
+ $ commit '012 021' '102 201' '120 210'
+ $ commit 'manifest-file'
+ $ commit '102 120' '012 210' '021 201'
+ $ commit '201 210' '021 120' '012 102'
+ $ HGUSER=another-user; export HGUSER
+ $ commit 'manifest-file'
+ $ commit '012' 'manifest-file'
+ $ cd ..
+ $ hg clone -q -U -r -1 -r -2 -r -3 -r -4 -r -6 orig crossed
+ $ for i in crossed/.hg/store/00manifest.i crossed/.hg/store/data/*.i; do
+ > echo $i
+ > hg debugindex $i
+ > echo
+ > done
+ crossed/.hg/store/00manifest.i
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 112 0 0 6f105cbb914d 000000000000 000000000000
+ 1 112 56 1 3 1b55917b3699 000000000000 000000000000
+ 2 168 123 1 1 8f3d04e263e5 000000000000 000000000000
+ 3 291 122 1 2 f0ef8726ac4f 000000000000 000000000000
+ 4 413 87 4 4 0b76e38b4070 000000000000 000000000000
+
+ crossed/.hg/store/data/012.i
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 3 0 0 b8e02f643373 000000000000 000000000000
+ 1 3 3 1 1 5d9299349fc0 000000000000 000000000000
+ 2 6 3 2 2 2661d26c6496 000000000000 000000000000
+
+ crossed/.hg/store/data/021.i
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 3 0 0 b8e02f643373 000000000000 000000000000
+ 1 3 3 1 2 5d9299349fc0 000000000000 000000000000
+ 2 6 3 2 1 2661d26c6496 000000000000 000000000000
+
+ crossed/.hg/store/data/102.i
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 3 0 1 b8e02f643373 000000000000 000000000000
+ 1 3 3 1 0 5d9299349fc0 000000000000 000000000000
+ 2 6 3 2 2 2661d26c6496 000000000000 000000000000
+
+ crossed/.hg/store/data/120.i
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 3 0 1 b8e02f643373 000000000000 000000000000
+ 1 3 3 1 2 5d9299349fc0 000000000000 000000000000
+ 2 6 3 2 0 2661d26c6496 000000000000 000000000000
+
+ crossed/.hg/store/data/201.i
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 3 0 2 b8e02f643373 000000000000 000000000000
+ 1 3 3 1 0 5d9299349fc0 000000000000 000000000000
+ 2 6 3 2 1 2661d26c6496 000000000000 000000000000
+
+ crossed/.hg/store/data/210.i
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 3 0 2 b8e02f643373 000000000000 000000000000
+ 1 3 3 1 1 5d9299349fc0 000000000000 000000000000
+ 2 6 3 2 0 2661d26c6496 000000000000 000000000000
+
+ crossed/.hg/store/data/manifest-file.i
+ rev offset length base linkrev nodeid p1 p2
+ 0 0 3 0 3 b8e02f643373 000000000000 000000000000
+ 1 3 3 1 4 5d9299349fc0 000000000000 000000000000
+
+ $ for i in 0 1 2 3 4; do
+ > hg clone -q -U --pull crossed $i
+ > echo "% Trying to strip revision $i"
+ > hg --cwd $i strip $i | hidebackup
+ > echo "% Verifying"
+ > hg --cwd $i verify
+ > echo
+ > done
+ % Trying to strip revision 0
+ saved backup bundle to
+ % Verifying
+ checking changesets
+ checking manifests
+ crosschecking files in changesets and manifests
+ checking files
+ 7 files, 4 changesets, 15 total revisions
+
+ % Trying to strip revision 1
+ saved backup bundle to
+ % Verifying
+ checking changesets
+ checking manifests
+ crosschecking files in changesets and manifests
+ checking files
+ 7 files, 4 changesets, 14 total revisions
+
+ % Trying to strip revision 2
+ saved backup bundle to
+ % Verifying
+ checking changesets
+ checking manifests
+ crosschecking files in changesets and manifests
+ checking files
+ 7 files, 4 changesets, 14 total revisions
+
+ % Trying to strip revision 3
+ saved backup bundle to
+ % Verifying
+ checking changesets
+ checking manifests
+ crosschecking files in changesets and manifests
+ checking files
+ 7 files, 4 changesets, 19 total revisions
+
+ % Trying to strip revision 4
+ saved backup bundle to
+ % Verifying
+ checking changesets
+ checking manifests
+ crosschecking files in changesets and manifests
+ checking files
+ 7 files, 4 changesets, 19 total revisions
+