51 'listkeys': 'pull', |
51 'listkeys': 'pull', |
52 'unbundle': 'push', |
52 'unbundle': 'push', |
53 'pushkey': 'push', |
53 'pushkey': 'push', |
54 } |
54 } |
55 |
55 |
|
56 archivespecs = util.sortdict(( |
|
57 ('zip', ('application/zip', 'zip', '.zip', None)), |
|
58 ('gz', ('application/x-gzip', 'tgz', '.tar.gz', None)), |
|
59 ('bz2', ('application/x-bzip2', 'tbz2', '.tar.bz2', None)), |
|
60 )) |
|
61 |
56 def makebreadcrumb(url, prefix=''): |
62 def makebreadcrumb(url, prefix=''): |
57 '''Return a 'URL breadcrumb' list |
63 '''Return a 'URL breadcrumb' list |
58 |
64 |
59 A 'URL breadcrumb' is a list of URL-name pairs, |
65 A 'URL breadcrumb' is a list of URL-name pairs, |
60 corresponding to each of the path items on a URL. |
66 corresponding to each of the path items on a URL. |
87 """ |
93 """ |
88 def __init__(self, app, repo): |
94 def __init__(self, app, repo): |
89 self.repo = repo |
95 self.repo = repo |
90 self.reponame = app.reponame |
96 self.reponame = app.reponame |
91 |
97 |
|
98 self.archivespecs = archivespecs |
|
99 |
92 self.maxchanges = self.configint('web', 'maxchanges', 10) |
100 self.maxchanges = self.configint('web', 'maxchanges', 10) |
93 self.stripecount = self.configint('web', 'stripes', 1) |
101 self.stripecount = self.configint('web', 'stripes', 1) |
94 self.maxshortchanges = self.configint('web', 'maxshortchanges', 60) |
102 self.maxshortchanges = self.configint('web', 'maxshortchanges', 60) |
95 self.maxfiles = self.configint('web', 'maxfiles', 10) |
103 self.maxfiles = self.configint('web', 'maxfiles', 10) |
96 self.allowpull = self.configbool('web', 'allowpull', True) |
104 self.allowpull = self.configbool('web', 'allowpull', True) |
121 untrusted=untrusted) |
129 untrusted=untrusted) |
122 |
130 |
123 def configlist(self, section, name, default=None, untrusted=True): |
131 def configlist(self, section, name, default=None, untrusted=True): |
124 return self.repo.ui.configlist(section, name, default, |
132 return self.repo.ui.configlist(section, name, default, |
125 untrusted=untrusted) |
133 untrusted=untrusted) |
126 |
|
127 archivespecs = util.sortdict(( |
|
128 ('zip', ('application/zip', 'zip', '.zip', None)), |
|
129 ('gz', ('application/x-gzip', 'tgz', '.tar.gz', None)), |
|
130 ('bz2', ('application/x-bzip2', 'tbz2', '.tar.bz2', None)), |
|
131 )) |
|
132 |
134 |
133 def archivelist(self, nodeid): |
135 def archivelist(self, nodeid): |
134 allowed = self.configlist('web', 'allow_archive') |
136 allowed = self.configlist('web', 'allow_archive') |
135 for typ, spec in self.archivespecs.iteritems(): |
137 for typ, spec in self.archivespecs.iteritems(): |
136 if typ in allowed or self.configbool('web', 'allow%s' % typ): |
138 if typ in allowed or self.configbool('web', 'allow%s' % typ): |