tests/test-strip-cross
author Steve Losh <steve@stevelosh.com>
Wed, 07 Jul 2010 18:49:43 -0400
changeset 11524 24965bb270b7
parent 11208 2313dc4d9817
permissions -rwxr-xr-x
dispatch: add shell aliases This patch adds git-style "shell aliases" to Mercurial. Any alias with a definition beginning with a '!' will be treated as a shell alias. For example: [alias] echo = !echo qempty = !hg qrefresh -X "`hg root`" ; echo Emptied patch "`hg qtop`" $ hg echo foo foo $ hg qempty Emptied patch foo $

#!/bin/sh

# 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

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