view tests/test-strip-cross @ 10128:ea7c392f2b08

patch: drop eol normalization fast-path for 'lf' and 'crlf' With eolmode set to 'lf' or 'crlf' we avoided the hunk duplication and normalization by reading the input patch in text mode. Dropping this optimization simplifies code expectations for a small overhead. The change in test-mq-eol comes from a tolerance to CRLF instead of LF for last lines without newlines being broken by this revision. This tolerance was only partially supported and will be added again in a better way.
author Patrick Mezard <pmezard@gmail.com>
date Wed, 23 Dec 2009 19:31:48 +0100
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