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 "% setup"
# create a little extension that has 3 side-effects:
# 1) ensure changelog data is not inlined
# 2) make revlog to use lazyparser
# 3) test that repo.lookup() works
# 1 and 2 are preconditions for the bug; 3 is the bug.
cat > commitwrapper.py <<EOF
from mercurial import extensions, node, revlog
def reposetup(ui, repo):
def wrapcommit(orig, *args, **kwargs):
result = orig(*args, **kwargs)
tip1 = node.short(repo.changelog.tip())
tip2 = node.short(repo.lookup(tip1))
assert tip1 == tip2
ui.write('new tip: %s\n' % tip1)
return result
extensions.wrapfunction(repo, 'commit', wrapcommit)
def extsetup(ui):
revlog._maxinline = 8 # split out 00changelog.d early
revlog._prereadsize = 8 # use revlog.lazyparser
EOF
cat >> $HGRCPATH <<EOF
[extensions]
commitwrapper = `pwd`/commitwrapper.py
EOF
hg init repo1
cd repo1
echo a > a
hg commit -A -m'add a with a long commit message to make the changelog a bit bigger'
echo ""
echo "% test that new changesets are visible to repo.lookup()"
echo a >> a
hg commit -m'one more commit to demonstrate the bug'
hg tip