hgweb: handle exception of misconfigured path on index page
If hgweb.config contains wrong path mapping, hgweb causes internal server
error on repository index page.
This patch changes makeindex() to ignore RepoError, because it looks to be
designed to suppress configuration error.
#!/bin/sh
echo "[extensions]" >> $HGRCPATH
echo "mq=" >> $HGRCPATH
echo "[mq]" >> $HGRCPATH
echo "git=keep" >> $HGRCPATH
filterdiff()
{
grep -v diff | \
sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
-e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/"
}
filterpatch()
{
sed -e "s/\(# Parent \).*/\1/"
}
echo '% init'
hg init repo
cd repo
echo a > a
hg ci -Am adda
echo a >> a
hg qnew -f p1
echo b >> a
hg qnew -f p2
echo c >> a
hg qnew -f p3
echo '% fold in the middle of the queue'
hg qpop p1
hg qdiff | filterdiff
hg qfold p2
grep git .hg/patches/p1 && echo 'git patch found!'
hg qser
hg qdiff | filterdiff
echo '% fold with local changes'
echo d >> a
hg qfold p3
hg diff -c . | filterdiff
hg revert -a --no-backup
echo '% fold git patch into a regular patch, expect git patch'
echo a >> a
hg qnew -f regular
hg cp a aa
hg qnew --git -f git
hg qpop
hg qfold git
cat .hg/patches/regular | filterpatch
hg qpop
hg qdel regular
echo '% fold regular patch into a git patch, expect git patch'
hg cp a aa
hg qnew --git -f git
echo b >> aa
hg qnew -f regular
hg qpop
hg qfold regular
cat .hg/patches/git | filterpatch
cd ..