tests/test-strip-cross.t
changeset 12492 72be1ab55d62
parent 11208 2313dc4d9817
child 12537 5df8ef0f3f51
--- /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
+