tests/test-verify
author Martin Geisler <mg@lazybytes.net>
Sat, 16 May 2009 11:12:49 +0200
changeset 8424 c5b3d3e30de7
parent 8016 baaa832fd253
child 8167 6c82beaaa11a
permissions -rwxr-xr-x
changelog: refuse to add revisions with empty usernames An empty username or a username with a "\n" will make the revision text contain two "\n\n" sequences -> corrupt repository. The problem is that changelog.read expects to find exactly one "\n\n" separator and thus cannot unpack the revision.

#!/bin/sh

echo % prepare repo
hg init a
cd a
echo "some text" > FOO.txt
echo "another text" > bar.txt
echo "more text" > QUICK.txt
hg add
hg ci -d '0 0' -mtest1

echo
echo % verify
hg verify

echo
echo % introduce some bugs in repo
cd .hg/store/data
mv _f_o_o.txt.i X_f_o_o.txt.i
mv bar.txt.i xbar.txt.i
rm _q_u_i_c_k.txt.i

echo
echo % verify
hg verify

cd ..

echo % test revlog corruption
hg init b
cd b

touch a
hg add a
hg ci -m a

echo 'corrupted' > b
head -c 20 .hg/store/data/a.i > start
cat start b > .hg/store/data/a.i

echo
echo % verify
hg verify

exit 0