hgweb: support disabling page cache
By default, hgweb_mod supports caching via the ETag header. This can
cause some confusion with browsers which cache aggressively. This change
preserves existing behavior while giving the administrator a knob to
disable the ETag header.
--- a/doc/hgrc.5.txt Wed Apr 20 12:44:32 2011 -0500
+++ b/doc/hgrc.5.txt Wed Apr 20 00:01:50 2011 -0400
@@ -1052,6 +1052,8 @@
To disable SSL verification temporarily, specify ``--insecure`` from
command line.
+``cache``
+ Whether to support caching in hgweb. Defaults to True.
``contact``
Name or email address of the person in charge of the repository.
Defaults to ui.username or ``$EMAIL`` or "unknown" if unset or empty.
--- a/mercurial/hgweb/hgweb_mod.py Wed Apr 20 12:44:32 2011 -0500
+++ b/mercurial/hgweb/hgweb_mod.py Wed Apr 20 00:01:50 2011 -0400
@@ -188,7 +188,8 @@
req.form['cmd'] = [tmpl.cache['default']]
cmd = req.form['cmd'][0]
- caching(self, req) # sets ETag header or raises NOT_MODIFIED
+ if self.configbool('web', 'cache', True):
+ caching(self, req) # sets ETag header or raises NOT_MODIFIED
if cmd not in webcommands.__all__:
msg = 'no such method: %s' % cmd
raise ErrorResponse(HTTP_BAD_REQUEST, msg)