Add allowed bundle types as argument to hgweb unbundle capability.
authorThomas Arendsen Hein <thomas@intevation.de>
Thu, 02 Nov 2006 14:39:08 +0100
changeset 3612 d1b16a746db6
parent 3611 967f1d00f521
child 3613 cbf352b9a3cd
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.
mercurial/hgweb/hgweb_mod.py
--- 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)