# HG changeset patch # User Anton Shestakov # Date 2017-01-07 16:52:54 # Node ID 9823e2f50a935f6170e01235b65b5282680ebdab # Parent b9e49f7b022069e4285cbe44c188852320a047ba 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}