revlog: fix lazyparser.__iter__() to return all revisions (issue2137)
Previously, it only returned revisions that were in the revlog when it
was originally opened; revisions added since then were invisible.
This broke revlog._partialmatch() and therefore repo.lookup().
(Credit to Benoit Boissinot for simplifying my original test script
and for the actual fix.)
#!/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 -mtest1
echo
echo % verify
hg verify
echo
echo % verify with journal
touch .hg/store/journal
hg verify
rm .hg/store/journal
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
dd if=.hg/store/data/a.i of=start bs=1 count=20 2>/dev/null
cat start b > .hg/store/data/a.i
echo
echo % verify
hg verify
exit 0