Add allowed bundle types as argument to hgweb unbundle capability.
Arguments to capabilities were added before the 0.9.1 release, so there
are no compatibility issues. Mercurial 0.9 didn't support http push.
Using HG10GZ, HG10BZ and HG10UN has the advantage that new bundle types can
be added later and the client doesn't have to try sending them first and
reacting on errors sent by the server.
--- a/mercurial/hgweb/hgweb_mod.py Wed Nov 01 19:59:26 2006 -0300
+++ b/mercurial/hgweb/hgweb_mod.py Thu Nov 02 14:39:08 2006 +0100
@@ -1021,9 +1021,13 @@
or self.t("error", error="%r not found" % fname))
def do_capabilities(self, req):
- caps = ['unbundle', 'lookup', 'changegroupsubset', 'standardbundle']
+ caps = ['lookup', 'changegroupsubset']
if self.configbool('server', 'uncompressed'):
caps.append('stream=%d' % self.repo.revlogversion)
+ # XXX: make configurable and/or share code with do_unbundle:
+ unbundleversions = ['HG10GZ', 'HG10BZ', 'HG10UN']
+ if unbundleversions:
+ caps.append('unbundle=%s' % ','.join(unbundleversions))
resp = ' '.join(caps)
req.httphdr("application/mercurial-0.1", length=len(resp))
req.write(resp)