[PATCH 2 of 2] hgweb: generate archive links in order

Anton Shestakov av6 at dwimlabs.net
Sat Jan 7 20:52:56 EST 2017


# HG changeset patch
# User Anton Shestakov <av6 at dwimlabs.net>
# Date 1483807974 -28800
#      Sun Jan 08 00:52:54 2017 +0800
# Node ID cfd14b0508ddf8edf156d202e2c5d07b259c2f46
# Parent  3cecf85b42c6cf3e2d81ff5d69e9328bb204d209
hgweb: generate archive links in order

It would be nice for archive links to always be in a certain commonly used
order, such as 'zip', 'bz', 'gzip2'. Repo index page (hgwebdir_mod) already
shows archive links in this order, let's do the same in hgweb_mod.

Sadly, archivespecs is a regular unordered dict, and collections.OrderedDict is
new in 2.7. But requestcontext.archives is a tuple of archive types, so it can
be used as an index to archivespecs.

diff --git a/mercurial/hgweb/hgweb_mod.py b/mercurial/hgweb/hgweb_mod.py
--- a/mercurial/hgweb/hgweb_mod.py
+++ b/mercurial/hgweb/hgweb_mod.py
@@ -134,7 +134,8 @@ class requestcontext(object):
 
     def archivelist(self, nodeid):
         allowed = self.configlist('web', 'allow_archive')
-        for typ, spec in self.archivespecs.iteritems():
+        for typ in self.archives:
+            spec = self.archivespecs[typ]
             if typ in allowed or self.configbool('web', 'allow%s' % typ):
                 yield {'type': typ, 'extension': spec[2], 'node': nodeid}
 


More information about the Mercurial-devel mailing list