view tests/test-grep @ 7585:075b7ef0f84d

convert/gnuarch: follow continuation-of revisions Built on top of previous patches: - continuation-of parsing - registered archives retrieval - use of fully qualified revisions This allows the converter scanning for more source revisions following the tree versions 'leaked' through the continuation-of informations. Coupled with the registered archives retrieval, this makes possible to decide to follow such a hint or stop scanning for more revisions. This also implies some changes in the retrieval of some base-0 revisions when they're continuation-of other revisions, in that case a 'replay' will work where a simple 'get' fails because the dir exists already. I found the code dealing with 'replay' quite good as it has already a fallback to 'get' in the error path.
author Edouard Gomez <ed.gomez@free.fr>
date Sun, 04 Jan 2009 02:36:48 +0100
parents dac14cc9711e
children 6c82beaaa11a
line wrap: on
line source

#!/bin/sh

mkdir t
cd t
hg init
echo import > port
hg add port
hg commit -m 0 -u spam -d '0 0'
echo export >> port
hg commit -m 1 -u eggs -d '1 0'
echo export > port
echo vaportight >> port
echo 'import/export' >> port
hg commit -m 2 -u spam -d '2 0'
echo 'import/export' >> port
hg commit -m 3 -u eggs -d '3 0'
head -n 3 port > port1
mv port1 port
hg commit -m 4 -u spam -d '4 0'
echo % pattern error
hg grep '**test**'
echo % simple
hg grep port port
echo % all
hg grep --all -nu port port
echo % other
hg grep import port

hg cp port port2
hg commit -m 4 -u spam -d '5 0'
echo '% follow'
hg grep -f 'import$' port2
echo deport >> port2
hg commit -m 5 -u eggs -d '6 0'
hg grep -f --all -nu port port2

cd ..
hg init t2
cd t2
hg grep foobar foo
hg grep foobar
echo blue >> color
echo black >> color
hg add color
hg ci -m 0 -d '0 0'
echo orange >> color
hg ci -m 1 -d '0 0'
echo black > color
hg ci -m 2 -d '0 0'
echo orange >> color
echo blue >> color
hg ci -m 3 -d '0 0'
hg grep orange
hg grep --all orange

echo % match in last "line" without newline
python -c 'fp = open("noeol", "wb"); fp.write("no infinite loop"); fp.close();'
hg ci -Amnoeol
echo % last character omitted in output to avoid infinite loop
hg grep loop

# Got a traceback when using grep on a single
# revision with renamed files.
cd ..
echo % issue 685
hg init issue685
cd issue685
echo octarine > color
hg ci -Amcolor
hg rename color colour
hg ci -Am rename
hg grep octarine
# Used to crash here
hg grep -r 1 octarine