view tests/test-strip-cross @ 9899:be574a37a8ae stable

run-tests: give each child its own tmp dir (issue1911) Fixes bug introduced by f8b4df4b033d (issue1911: --tmpdir plus parallel mode = fail), and also fixes the long-standing quirk that parallel mode created multiple /tmp/hgtests.XXXXXX directories. Now there is only one /tmp/hgtests.XXXXXX, with child0, child1, etc. under it.
author Greg Ward <greg@gerg.ca>
date Wed, 18 Nov 2009 22:23:11 -0500
parents 8e7796a990c5
children 12e5149cafca
line wrap: on
line source

#!/bin/sh

# test stripping of filelogs where the linkrev doesn't always increase

echo '[extensions]' >> $HGRCPATH
echo 'hgext.mq =' >> $HGRCPATH

hg init orig
cd orig

hidefilename()
{
    sed -e 's/saving bundle to .*strip-backup/saving bundle to strip-backup/'
}

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

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 2>&1 | hidefilename
    echo "% Verifying"
    hg --cwd $i verify
    echo
done