上記の Niall の非常に役立つ回答をフォローアップすると、この [paths] セクションを維持するためのツールが必要であることに気付きました。私はこれに行き着きました(M.Foordによるconfigobjを使用します。
#!/usr/bin/env python
from __future__ import print_function
import os
from configobj import ConfigObj
hgweb_path = os.path.join(os.path.expanduser("~"), "Library", "Preferences", "hgweb.config")
projects = os.path.join(os.path.expanduser("~"), "projects")
config = ConfigObj(hgweb_path)
paths = []
def add_mercurial(arg, dirname, names):
if '.hg' in names:
paths.append(dirname[len(projects) + 1:])
os.path.walk(projects, add_mercurial, None)
config['paths'] = {}
for path in paths:
config['paths']["projects/" + path] = os.path.join(projects, path)
config.write()
このスクリプトは、OS X の cron に相当するものによって 15 分ごとに実行され、hgweb が古くならないようにします。