util._matcher: speed up regexp matching.
In 4babaa52badf, Benoit made a change that substantially slows matching
when a big .hgignore file is in play, because it calls into the regexp
matching engine potentially hundreds of times per file to be matched.
I've partly rolled back his change, so that we only call into the matcher
once per file, but preserved the ability to report a meaningful error
message if there's a syntax error in the regexp.
#!/bin/sh
cp "$TESTDIR"/printenv.py .
hg init test
cd test
echo 0 > afile
hg add afile
hg commit -m "0.0" -d "1000000 0"
echo 1 >> afile
hg commit -m "0.1" -d "1000000 0"
echo 2 >> afile
hg commit -m "0.2" -d "1000000 0"
echo 3 >> afile
hg commit -m "0.3" -d "1000000 0"
hg update -C 0
echo 1 >> afile
hg commit -m "1.1" -d "1000000 0"
echo 2 >> afile
hg commit -m "1.2" -d "1000000 0"
echo "a line" > fred
echo 3 >> afile
hg add fred
hg commit -m "1.3" -d "1000000 0"
hg mv afile adifferentfile
hg commit -m "1.3m" -d "1000000 0"
hg update -C 3
hg mv afile anotherfile
hg commit -m "0.3m" -d "1000000 0"
hg verify
cd ..
hg init empty
hg -R test bundle full.hg empty
hg -R test unbundle full.hg
hg -R empty heads
hg -R empty verify
hg --cwd test pull ../full.hg
hg --cwd empty pull ../full.hg
hg -R empty rollback
hg --cwd empty pull ../full.hg
rm -r empty
hg init empty
cd empty
hg -R bundle://../full.hg log
echo '[hooks]' >> .hg/hgrc
echo 'changegroup = python ../printenv.py changegroup' >> .hg/hgrc
#doesn't work (yet ?)
#hg -R bundle://../full.hg verify
hg pull bundle://../full.hg
cd ..
rm -r empty
hg init empty
hg clone -r 3 test partial
hg clone partial partial2
cd partial
hg -R bundle://../full.hg log
hg incoming bundle://../full.hg
hg -R bundle://../full.hg outgoing ../partial2
hg -R bundle://../does-not-exist.hg outgoing ../partial2
cd ..
# test for 540d1059c802
hg init orig
cd orig
echo foo > foo
hg add foo
hg ci -m 'add foo' -d '0 0'
hg clone . ../copy
hg tag -d '0 0' foo
cd ../copy
echo >> foo
hg ci -m 'change foo' -d '0 0'
hg bundle ../bundle.hg ../orig
cd ../orig
hg incoming ../bundle.hg
cd ..