##// END OF EJS Templates
hgweb: add a "URL breadcrumb" to the index and repository pages...
Angel Ezquerra <angel.ezquerra at gmail.com> -
r18258:bebb05a7 default
parent child Browse files
Show More
@@ -1,306 +1,331 b''
1 1 # hgweb/hgweb_mod.py - Web interface for a repository.
2 2 #
3 3 # Copyright 21 May 2005 - (c) 2005 Jake Edge <jake@edge2.net>
4 4 # Copyright 2005-2007 Matt Mackall <mpm@selenic.com>
5 5 #
6 6 # This software may be used and distributed according to the terms of the
7 7 # GNU General Public License version 2 or any later version.
8 8
9 9 import os
10 10 from mercurial import ui, hg, hook, error, encoding, templater, util
11 11 from common import get_stat, ErrorResponse, permhooks, caching
12 12 from common import HTTP_OK, HTTP_NOT_MODIFIED, HTTP_BAD_REQUEST
13 13 from common import HTTP_NOT_FOUND, HTTP_SERVER_ERROR
14 14 from request import wsgirequest
15 15 import webcommands, protocol, webutil
16 16
17 17 perms = {
18 18 'changegroup': 'pull',
19 19 'changegroupsubset': 'pull',
20 20 'getbundle': 'pull',
21 21 'stream_out': 'pull',
22 22 'listkeys': 'pull',
23 23 'unbundle': 'push',
24 24 'pushkey': 'push',
25 25 }
26 26
27 def makebreadcrumb(url):
28 '''Return a 'URL breadcrumb' list
29
30 A 'URL breadcrumb' is a list of URL-name pairs,
31 corresponding to each of the path items on a URL.
32 This can be used to create path navigation entries.
33 '''
34 if url.endswith('/'):
35 url = url[:-1]
36 relpath = url
37 if relpath.startswith('/'):
38 relpath = relpath[1:]
39
40 breadcrumb = []
41 urlel = url
42 pathitems = [''] + relpath.split('/')
43 for pathel in reversed(pathitems):
44 if not pathel or not urlel:
45 break
46 breadcrumb.append({'url': urlel, 'name': pathel})
47 urlel = os.path.dirname(urlel)
48 return reversed(breadcrumb)
49
50
27 51 class hgweb(object):
28 52 def __init__(self, repo, name=None, baseui=None):
29 53 if isinstance(repo, str):
30 54 if baseui:
31 55 u = baseui.copy()
32 56 else:
33 57 u = ui.ui()
34 58 self.repo = hg.repository(u, repo)
35 59 else:
36 60 self.repo = repo
37 61
38 62 self.repo.ui.setconfig('ui', 'report_untrusted', 'off')
39 63 self.repo.ui.setconfig('ui', 'nontty', 'true')
40 64 hook.redirect(True)
41 65 self.mtime = -1
42 66 self.size = -1
43 67 self.reponame = name
44 68 self.archives = 'zip', 'gz', 'bz2'
45 69 self.stripecount = 1
46 70 # a repo owner may set web.templates in .hg/hgrc to get any file
47 71 # readable by the user running the CGI script
48 72 self.templatepath = self.config('web', 'templates')
49 73
50 74 # The CGI scripts are often run by a user different from the repo owner.
51 75 # Trust the settings from the .hg/hgrc files by default.
52 76 def config(self, section, name, default=None, untrusted=True):
53 77 return self.repo.ui.config(section, name, default,
54 78 untrusted=untrusted)
55 79
56 80 def configbool(self, section, name, default=False, untrusted=True):
57 81 return self.repo.ui.configbool(section, name, default,
58 82 untrusted=untrusted)
59 83
60 84 def configlist(self, section, name, default=None, untrusted=True):
61 85 return self.repo.ui.configlist(section, name, default,
62 86 untrusted=untrusted)
63 87
64 88 def refresh(self, request=None):
65 89 if request:
66 90 self.repo.ui.environ = request.env
67 91 st = get_stat(self.repo.spath)
68 92 # compare changelog size in addition to mtime to catch
69 93 # rollbacks made less than a second ago
70 94 if st.st_mtime != self.mtime or st.st_size != self.size:
71 95 self.mtime = st.st_mtime
72 96 self.size = st.st_size
73 97 self.repo = hg.repository(self.repo.ui, self.repo.root)
74 98 self.maxchanges = int(self.config("web", "maxchanges", 10))
75 99 self.stripecount = int(self.config("web", "stripes", 1))
76 100 self.maxshortchanges = int(self.config("web", "maxshortchanges",
77 101 60))
78 102 self.maxfiles = int(self.config("web", "maxfiles", 10))
79 103 self.allowpull = self.configbool("web", "allowpull", True)
80 104 encoding.encoding = self.config("web", "encoding",
81 105 encoding.encoding)
82 106
83 107 def run(self):
84 108 if not os.environ.get('GATEWAY_INTERFACE', '').startswith("CGI/1."):
85 109 raise RuntimeError("This function is only intended to be "
86 110 "called while running as a CGI script.")
87 111 import mercurial.hgweb.wsgicgi as wsgicgi
88 112 wsgicgi.launch(self)
89 113
90 114 def __call__(self, env, respond):
91 115 req = wsgirequest(env, respond)
92 116 return self.run_wsgi(req)
93 117
94 118 def run_wsgi(self, req):
95 119
96 120 self.refresh(req)
97 121
98 122 # work with CGI variables to create coherent structure
99 123 # use SCRIPT_NAME, PATH_INFO and QUERY_STRING as well as our REPO_NAME
100 124
101 125 req.url = req.env['SCRIPT_NAME']
102 126 if not req.url.endswith('/'):
103 127 req.url += '/'
104 128 if 'REPO_NAME' in req.env:
105 129 req.url += req.env['REPO_NAME'] + '/'
106 130
107 131 if 'PATH_INFO' in req.env:
108 132 parts = req.env['PATH_INFO'].strip('/').split('/')
109 133 repo_parts = req.env.get('REPO_NAME', '').split('/')
110 134 if parts[:len(repo_parts)] == repo_parts:
111 135 parts = parts[len(repo_parts):]
112 136 query = '/'.join(parts)
113 137 else:
114 138 query = req.env['QUERY_STRING'].split('&', 1)[0]
115 139 query = query.split(';', 1)[0]
116 140
117 141 # process this if it's a protocol request
118 142 # protocol bits don't need to create any URLs
119 143 # and the clients always use the old URL structure
120 144
121 145 cmd = req.form.get('cmd', [''])[0]
122 146 if protocol.iscmd(cmd):
123 147 try:
124 148 if query:
125 149 raise ErrorResponse(HTTP_NOT_FOUND)
126 150 if cmd in perms:
127 151 self.check_perm(req, perms[cmd])
128 152 return protocol.call(self.repo, req, cmd)
129 153 except ErrorResponse, inst:
130 154 # A client that sends unbundle without 100-continue will
131 155 # break if we respond early.
132 156 if (cmd == 'unbundle' and
133 157 (req.env.get('HTTP_EXPECT',
134 158 '').lower() != '100-continue') or
135 159 req.env.get('X-HgHttp2', '')):
136 160 req.drain()
137 161 req.respond(inst, protocol.HGTYPE)
138 162 return '0\n%s\n' % inst.message
139 163
140 164 # translate user-visible url structure to internal structure
141 165
142 166 args = query.split('/', 2)
143 167 if 'cmd' not in req.form and args and args[0]:
144 168
145 169 cmd = args.pop(0)
146 170 style = cmd.rfind('-')
147 171 if style != -1:
148 172 req.form['style'] = [cmd[:style]]
149 173 cmd = cmd[style + 1:]
150 174
151 175 # avoid accepting e.g. style parameter as command
152 176 if util.safehasattr(webcommands, cmd):
153 177 req.form['cmd'] = [cmd]
154 178 else:
155 179 cmd = ''
156 180
157 181 if cmd == 'static':
158 182 req.form['file'] = ['/'.join(args)]
159 183 else:
160 184 if args and args[0]:
161 185 node = args.pop(0)
162 186 req.form['node'] = [node]
163 187 if args:
164 188 req.form['file'] = args
165 189
166 190 ua = req.env.get('HTTP_USER_AGENT', '')
167 191 if cmd == 'rev' and 'mercurial' in ua:
168 192 req.form['style'] = ['raw']
169 193
170 194 if cmd == 'archive':
171 195 fn = req.form['node'][0]
172 196 for type_, spec in self.archive_specs.iteritems():
173 197 ext = spec[2]
174 198 if fn.endswith(ext):
175 199 req.form['node'] = [fn[:-len(ext)]]
176 200 req.form['type'] = [type_]
177 201
178 202 # process the web interface request
179 203
180 204 try:
181 205 tmpl = self.templater(req)
182 206 ctype = tmpl('mimetype', encoding=encoding.encoding)
183 207 ctype = templater.stringify(ctype)
184 208
185 209 # check read permissions non-static content
186 210 if cmd != 'static':
187 211 self.check_perm(req, None)
188 212
189 213 if cmd == '':
190 214 req.form['cmd'] = [tmpl.cache['default']]
191 215 cmd = req.form['cmd'][0]
192 216
193 217 if self.configbool('web', 'cache', True):
194 218 caching(self, req) # sets ETag header or raises NOT_MODIFIED
195 219 if cmd not in webcommands.__all__:
196 220 msg = 'no such method: %s' % cmd
197 221 raise ErrorResponse(HTTP_BAD_REQUEST, msg)
198 222 elif cmd == 'file' and 'raw' in req.form.get('style', []):
199 223 self.ctype = ctype
200 224 content = webcommands.rawfile(self, req, tmpl)
201 225 else:
202 226 content = getattr(webcommands, cmd)(self, req, tmpl)
203 227 req.respond(HTTP_OK, ctype)
204 228
205 229 return content
206 230
207 231 except error.LookupError, err:
208 232 req.respond(HTTP_NOT_FOUND, ctype)
209 233 msg = str(err)
210 234 if 'manifest' not in msg:
211 235 msg = 'revision not found: %s' % err.name
212 236 return tmpl('error', error=msg)
213 237 except (error.RepoError, error.RevlogError), inst:
214 238 req.respond(HTTP_SERVER_ERROR, ctype)
215 239 return tmpl('error', error=str(inst))
216 240 except ErrorResponse, inst:
217 241 req.respond(inst, ctype)
218 242 if inst.code == HTTP_NOT_MODIFIED:
219 243 # Not allowed to return a body on a 304
220 244 return ['']
221 245 return tmpl('error', error=inst.message)
222 246
223 247 def templater(self, req):
224 248
225 249 # determine scheme, port and server name
226 250 # this is needed to create absolute urls
227 251
228 252 proto = req.env.get('wsgi.url_scheme')
229 253 if proto == 'https':
230 254 proto = 'https'
231 255 default_port = "443"
232 256 else:
233 257 proto = 'http'
234 258 default_port = "80"
235 259
236 260 port = req.env["SERVER_PORT"]
237 261 port = port != default_port and (":" + port) or ""
238 262 urlbase = '%s://%s%s' % (proto, req.env['SERVER_NAME'], port)
239 263 logourl = self.config("web", "logourl", "http://mercurial.selenic.com/")
240 264 logoimg = self.config("web", "logoimg", "hglogo.png")
241 265 staticurl = self.config("web", "staticurl") or req.url + 'static/'
242 266 if not staticurl.endswith('/'):
243 267 staticurl += '/'
244 268
245 269 # some functions for the templater
246 270
247 271 def header(**map):
248 272 yield tmpl('header', encoding=encoding.encoding, **map)
249 273
250 274 def footer(**map):
251 275 yield tmpl("footer", **map)
252 276
253 277 def motd(**map):
254 278 yield self.config("web", "motd", "")
255 279
256 280 # figure out which style to use
257 281
258 282 vars = {}
259 283 styles = (
260 284 req.form.get('style', [None])[0],
261 285 self.config('web', 'style'),
262 286 'paper',
263 287 )
264 288 style, mapfile = templater.stylemap(styles, self.templatepath)
265 289 if style == styles[0]:
266 290 vars['style'] = style
267 291
268 292 start = req.url[-1] == '?' and '&' or '?'
269 293 sessionvars = webutil.sessionvars(vars, start)
270 294
271 295 if not self.reponame:
272 296 self.reponame = (self.config("web", "name")
273 297 or req.env.get('REPO_NAME')
274 298 or req.url.strip('/') or self.repo.root)
275 299
276 300 # create the templater
277 301
278 302 tmpl = templater.templater(mapfile,
279 303 defaults={"url": req.url,
280 304 "logourl": logourl,
281 305 "logoimg": logoimg,
282 306 "staticurl": staticurl,
283 307 "urlbase": urlbase,
284 308 "repo": self.reponame,
285 309 "header": header,
286 310 "footer": footer,
287 311 "motd": motd,
288 "sessionvars": sessionvars
312 "sessionvars": sessionvars,
313 "pathdef": makebreadcrumb(req.url),
289 314 })
290 315 return tmpl
291 316
292 317 def archivelist(self, nodeid):
293 318 allowed = self.configlist("web", "allow_archive")
294 319 for i, spec in self.archive_specs.iteritems():
295 320 if i in allowed or self.configbool("web", "allow" + i):
296 321 yield {"type" : i, "extension" : spec[2], "node" : nodeid}
297 322
298 323 archive_specs = {
299 324 'bz2': ('application/x-bzip2', 'tbz2', '.tar.bz2', None),
300 325 'gz': ('application/x-gzip', 'tgz', '.tar.gz', None),
301 326 'zip': ('application/zip', 'zip', '.zip', None),
302 327 }
303 328
304 329 def check_perm(self, req, op):
305 330 for hook in permhooks:
306 331 hook(self, req, op)
@@ -1,458 +1,459 b''
1 1 # hgweb/hgwebdir_mod.py - Web interface for a directory of repositories.
2 2 #
3 3 # Copyright 21 May 2005 - (c) 2005 Jake Edge <jake@edge2.net>
4 4 # Copyright 2005, 2006 Matt Mackall <mpm@selenic.com>
5 5 #
6 6 # This software may be used and distributed according to the terms of the
7 7 # GNU General Public License version 2 or any later version.
8 8
9 9 import os, re, time
10 10 from mercurial.i18n import _
11 11 from mercurial import ui, hg, scmutil, util, templater
12 12 from mercurial import error, encoding
13 13 from common import ErrorResponse, get_mtime, staticfile, paritygen, \
14 14 get_contact, HTTP_OK, HTTP_NOT_FOUND, HTTP_SERVER_ERROR
15 from hgweb_mod import hgweb
15 from hgweb_mod import hgweb, makebreadcrumb
16 16 from request import wsgirequest
17 17 import webutil
18 18
19 19 def cleannames(items):
20 20 return [(util.pconvert(name).strip('/'), path) for name, path in items]
21 21
22 22 def findrepos(paths):
23 23 repos = []
24 24 for prefix, root in cleannames(paths):
25 25 roothead, roottail = os.path.split(root)
26 26 # "foo = /bar/*" or "foo = /bar/**" lets every repo /bar/N in or below
27 27 # /bar/ be served as as foo/N .
28 28 # '*' will not search inside dirs with .hg (except .hg/patches),
29 29 # '**' will search inside dirs with .hg (and thus also find subrepos).
30 30 try:
31 31 recurse = {'*': False, '**': True}[roottail]
32 32 except KeyError:
33 33 repos.append((prefix, root))
34 34 continue
35 35 roothead = os.path.normpath(os.path.abspath(roothead))
36 36 paths = scmutil.walkrepos(roothead, followsym=True, recurse=recurse)
37 37 repos.extend(urlrepos(prefix, roothead, paths))
38 38 return repos
39 39
40 40 def urlrepos(prefix, roothead, paths):
41 41 """yield url paths and filesystem paths from a list of repo paths
42 42
43 43 >>> conv = lambda seq: [(v, util.pconvert(p)) for v,p in seq]
44 44 >>> conv(urlrepos('hg', '/opt', ['/opt/r', '/opt/r/r', '/opt']))
45 45 [('hg/r', '/opt/r'), ('hg/r/r', '/opt/r/r'), ('hg', '/opt')]
46 46 >>> conv(urlrepos('', '/opt', ['/opt/r', '/opt/r/r', '/opt']))
47 47 [('r', '/opt/r'), ('r/r', '/opt/r/r'), ('', '/opt')]
48 48 """
49 49 for path in paths:
50 50 path = os.path.normpath(path)
51 51 yield (prefix + '/' +
52 52 util.pconvert(path[len(roothead):]).lstrip('/')).strip('/'), path
53 53
54 54 def geturlcgivars(baseurl, port):
55 55 """
56 56 Extract CGI variables from baseurl
57 57
58 58 >>> geturlcgivars("http://host.org/base", "80")
59 59 ('host.org', '80', '/base')
60 60 >>> geturlcgivars("http://host.org:8000/base", "80")
61 61 ('host.org', '8000', '/base')
62 62 >>> geturlcgivars('/base', 8000)
63 63 ('', '8000', '/base')
64 64 >>> geturlcgivars("base", '8000')
65 65 ('', '8000', '/base')
66 66 >>> geturlcgivars("http://host", '8000')
67 67 ('host', '8000', '/')
68 68 >>> geturlcgivars("http://host/", '8000')
69 69 ('host', '8000', '/')
70 70 """
71 71 u = util.url(baseurl)
72 72 name = u.host or ''
73 73 if u.port:
74 74 port = u.port
75 75 path = u.path or ""
76 76 if not path.startswith('/'):
77 77 path = '/' + path
78 78
79 79 return name, str(port), path
80 80
81 81 class hgwebdir(object):
82 82 refreshinterval = 20
83 83
84 84 def __init__(self, conf, baseui=None):
85 85 self.conf = conf
86 86 self.baseui = baseui
87 87 self.lastrefresh = 0
88 88 self.motd = None
89 89 self.refresh()
90 90
91 91 def refresh(self):
92 92 if self.lastrefresh + self.refreshinterval > time.time():
93 93 return
94 94
95 95 if self.baseui:
96 96 u = self.baseui.copy()
97 97 else:
98 98 u = ui.ui()
99 99 u.setconfig('ui', 'report_untrusted', 'off')
100 100 u.setconfig('ui', 'nontty', 'true')
101 101
102 102 if not isinstance(self.conf, (dict, list, tuple)):
103 103 map = {'paths': 'hgweb-paths'}
104 104 if not os.path.exists(self.conf):
105 105 raise util.Abort(_('config file %s not found!') % self.conf)
106 106 u.readconfig(self.conf, remap=map, trust=True)
107 107 paths = []
108 108 for name, ignored in u.configitems('hgweb-paths'):
109 109 for path in u.configlist('hgweb-paths', name):
110 110 paths.append((name, path))
111 111 elif isinstance(self.conf, (list, tuple)):
112 112 paths = self.conf
113 113 elif isinstance(self.conf, dict):
114 114 paths = self.conf.items()
115 115
116 116 repos = findrepos(paths)
117 117 for prefix, root in u.configitems('collections'):
118 118 prefix = util.pconvert(prefix)
119 119 for path in scmutil.walkrepos(root, followsym=True):
120 120 repo = os.path.normpath(path)
121 121 name = util.pconvert(repo)
122 122 if name.startswith(prefix):
123 123 name = name[len(prefix):]
124 124 repos.append((name.lstrip('/'), repo))
125 125
126 126 self.repos = repos
127 127 self.ui = u
128 128 encoding.encoding = self.ui.config('web', 'encoding',
129 129 encoding.encoding)
130 130 self.style = self.ui.config('web', 'style', 'paper')
131 131 self.templatepath = self.ui.config('web', 'templates', None)
132 132 self.stripecount = self.ui.config('web', 'stripes', 1)
133 133 if self.stripecount:
134 134 self.stripecount = int(self.stripecount)
135 135 self._baseurl = self.ui.config('web', 'baseurl')
136 136 self.lastrefresh = time.time()
137 137
138 138 def run(self):
139 139 if not os.environ.get('GATEWAY_INTERFACE', '').startswith("CGI/1."):
140 140 raise RuntimeError("This function is only intended to be "
141 141 "called while running as a CGI script.")
142 142 import mercurial.hgweb.wsgicgi as wsgicgi
143 143 wsgicgi.launch(self)
144 144
145 145 def __call__(self, env, respond):
146 146 req = wsgirequest(env, respond)
147 147 return self.run_wsgi(req)
148 148
149 149 def read_allowed(self, ui, req):
150 150 """Check allow_read and deny_read config options of a repo's ui object
151 151 to determine user permissions. By default, with neither option set (or
152 152 both empty), allow all users to read the repo. There are two ways a
153 153 user can be denied read access: (1) deny_read is not empty, and the
154 154 user is unauthenticated or deny_read contains user (or *), and (2)
155 155 allow_read is not empty and the user is not in allow_read. Return True
156 156 if user is allowed to read the repo, else return False."""
157 157
158 158 user = req.env.get('REMOTE_USER')
159 159
160 160 deny_read = ui.configlist('web', 'deny_read', untrusted=True)
161 161 if deny_read and (not user or deny_read == ['*'] or user in deny_read):
162 162 return False
163 163
164 164 allow_read = ui.configlist('web', 'allow_read', untrusted=True)
165 165 # by default, allow reading if no allow_read option has been set
166 166 if (not allow_read) or (allow_read == ['*']) or (user in allow_read):
167 167 return True
168 168
169 169 return False
170 170
171 171 def run_wsgi(self, req):
172 172 try:
173 173 try:
174 174 self.refresh()
175 175
176 176 virtual = req.env.get("PATH_INFO", "").strip('/')
177 177 tmpl = self.templater(req)
178 178 ctype = tmpl('mimetype', encoding=encoding.encoding)
179 179 ctype = templater.stringify(ctype)
180 180
181 181 # a static file
182 182 if virtual.startswith('static/') or 'static' in req.form:
183 183 if virtual.startswith('static/'):
184 184 fname = virtual[7:]
185 185 else:
186 186 fname = req.form['static'][0]
187 187 static = self.ui.config("web", "static", None,
188 188 untrusted=False)
189 189 if not static:
190 190 tp = self.templatepath or templater.templatepath()
191 191 if isinstance(tp, str):
192 192 tp = [tp]
193 193 static = [os.path.join(p, 'static') for p in tp]
194 194 return (staticfile(static, fname, req),)
195 195
196 196 # top-level index
197 197 elif not virtual:
198 198 req.respond(HTTP_OK, ctype)
199 199 return self.makeindex(req, tmpl)
200 200
201 201 # nested indexes and hgwebs
202 202
203 203 repos = dict(self.repos)
204 204 virtualrepo = virtual
205 205 while virtualrepo:
206 206 real = repos.get(virtualrepo)
207 207 if real:
208 208 req.env['REPO_NAME'] = virtualrepo
209 209 try:
210 210 repo = hg.repository(self.ui, real)
211 211 return hgweb(repo).run_wsgi(req)
212 212 except IOError, inst:
213 213 msg = inst.strerror
214 214 raise ErrorResponse(HTTP_SERVER_ERROR, msg)
215 215 except error.RepoError, inst:
216 216 raise ErrorResponse(HTTP_SERVER_ERROR, str(inst))
217 217
218 218 up = virtualrepo.rfind('/')
219 219 if up < 0:
220 220 break
221 221 virtualrepo = virtualrepo[:up]
222 222
223 223 # browse subdirectories
224 224 subdir = virtual + '/'
225 225 if [r for r in repos if r.startswith(subdir)]:
226 226 req.respond(HTTP_OK, ctype)
227 227 return self.makeindex(req, tmpl, subdir)
228 228
229 229 # prefixes not found
230 230 req.respond(HTTP_NOT_FOUND, ctype)
231 231 return tmpl("notfound", repo=virtual)
232 232
233 233 except ErrorResponse, err:
234 234 req.respond(err, ctype)
235 235 return tmpl('error', error=err.message or '')
236 236 finally:
237 237 tmpl = None
238 238
239 239 def makeindex(self, req, tmpl, subdir=""):
240 240
241 241 def archivelist(ui, nodeid, url):
242 242 allowed = ui.configlist("web", "allow_archive", untrusted=True)
243 243 archives = []
244 244 for i in [('zip', '.zip'), ('gz', '.tar.gz'), ('bz2', '.tar.bz2')]:
245 245 if i[0] in allowed or ui.configbool("web", "allow" + i[0],
246 246 untrusted=True):
247 247 archives.append({"type" : i[0], "extension": i[1],
248 248 "node": nodeid, "url": url})
249 249 return archives
250 250
251 251 def rawentries(subdir="", **map):
252 252
253 253 descend = self.ui.configbool('web', 'descend', True)
254 254 collapse = self.ui.configbool('web', 'collapse', False)
255 255 seenrepos = set()
256 256 seendirs = set()
257 257 for name, path in self.repos:
258 258
259 259 if not name.startswith(subdir):
260 260 continue
261 261 name = name[len(subdir):]
262 262 directory = False
263 263
264 264 if '/' in name:
265 265 if not descend:
266 266 continue
267 267
268 268 nameparts = name.split('/')
269 269 rootname = nameparts[0]
270 270
271 271 if not collapse:
272 272 pass
273 273 elif rootname in seendirs:
274 274 continue
275 275 elif rootname in seenrepos:
276 276 pass
277 277 else:
278 278 directory = True
279 279 name = rootname
280 280
281 281 # redefine the path to refer to the directory
282 282 discarded = '/'.join(nameparts[1:])
283 283
284 284 # remove name parts plus accompanying slash
285 285 path = path[:-len(discarded) - 1]
286 286
287 287 parts = [name]
288 288 if 'PATH_INFO' in req.env:
289 289 parts.insert(0, req.env['PATH_INFO'].rstrip('/'))
290 290 if req.env['SCRIPT_NAME']:
291 291 parts.insert(0, req.env['SCRIPT_NAME'])
292 292 url = re.sub(r'/+', '/', '/'.join(parts) + '/')
293 293
294 294 # show either a directory entry or a repository
295 295 if directory:
296 296 # get the directory's time information
297 297 try:
298 298 d = (get_mtime(path), util.makedate()[1])
299 299 except OSError:
300 300 continue
301 301
302 302 # add '/' to the name to make it obvious that
303 303 # the entry is a directory, not a regular repository
304 304 row = dict(contact="",
305 305 contact_sort="",
306 306 name=name + '/',
307 307 name_sort=name,
308 308 url=url,
309 309 description="",
310 310 description_sort="",
311 311 lastchange=d,
312 312 lastchange_sort=d[1]-d[0],
313 313 archives=[],
314 314 isdirectory=True)
315 315
316 316 seendirs.add(name)
317 317 yield row
318 318 continue
319 319
320 320 u = self.ui.copy()
321 321 try:
322 322 u.readconfig(os.path.join(path, '.hg', 'hgrc'))
323 323 except Exception, e:
324 324 u.warn(_('error reading %s/.hg/hgrc: %s\n') % (path, e))
325 325 continue
326 326 def get(section, name, default=None):
327 327 return u.config(section, name, default, untrusted=True)
328 328
329 329 if u.configbool("web", "hidden", untrusted=True):
330 330 continue
331 331
332 332 if not self.read_allowed(u, req):
333 333 continue
334 334
335 335 # update time with local timezone
336 336 try:
337 337 r = hg.repository(self.ui, path)
338 338 except IOError:
339 339 u.warn(_('error accessing repository at %s\n') % path)
340 340 continue
341 341 except error.RepoError:
342 342 u.warn(_('error accessing repository at %s\n') % path)
343 343 continue
344 344 try:
345 345 d = (get_mtime(r.spath), util.makedate()[1])
346 346 except OSError:
347 347 continue
348 348
349 349 contact = get_contact(get)
350 350 description = get("web", "description", "")
351 351 name = get("web", "name", name)
352 352 row = dict(contact=contact or "unknown",
353 353 contact_sort=contact.upper() or "unknown",
354 354 name=name,
355 355 name_sort=name,
356 356 url=url,
357 357 description=description or "unknown",
358 358 description_sort=description.upper() or "unknown",
359 359 lastchange=d,
360 360 lastchange_sort=d[1]-d[0],
361 361 archives=archivelist(u, "tip", url))
362 362
363 363 seenrepos.add(name)
364 364 yield row
365 365
366 366 sortdefault = None, False
367 367 def entries(sortcolumn="", descending=False, subdir="", **map):
368 368 rows = rawentries(subdir=subdir, **map)
369 369
370 370 if sortcolumn and sortdefault != (sortcolumn, descending):
371 371 sortkey = '%s_sort' % sortcolumn
372 372 rows = sorted(rows, key=lambda x: x[sortkey],
373 373 reverse=descending)
374 374 for row, parity in zip(rows, paritygen(self.stripecount)):
375 375 row['parity'] = parity
376 376 yield row
377 377
378 378 self.refresh()
379 379 sortable = ["name", "description", "contact", "lastchange"]
380 380 sortcolumn, descending = sortdefault
381 381 if 'sort' in req.form:
382 382 sortcolumn = req.form['sort'][0]
383 383 descending = sortcolumn.startswith('-')
384 384 if descending:
385 385 sortcolumn = sortcolumn[1:]
386 386 if sortcolumn not in sortable:
387 387 sortcolumn = ""
388 388
389 389 sort = [("sort_%s" % column,
390 390 "%s%s" % ((not descending and column == sortcolumn)
391 391 and "-" or "", column))
392 392 for column in sortable]
393 393
394 394 self.refresh()
395 395 self.updatereqenv(req.env)
396 396
397 397 return tmpl("index", entries=entries, subdir=subdir,
398 pathdef=makebreadcrumb('/' + subdir),
398 399 sortcolumn=sortcolumn, descending=descending,
399 400 **dict(sort))
400 401
401 402 def templater(self, req):
402 403
403 404 def header(**map):
404 405 yield tmpl('header', encoding=encoding.encoding, **map)
405 406
406 407 def footer(**map):
407 408 yield tmpl("footer", **map)
408 409
409 410 def motd(**map):
410 411 if self.motd is not None:
411 412 yield self.motd
412 413 else:
413 414 yield config('web', 'motd', '')
414 415
415 416 def config(section, name, default=None, untrusted=True):
416 417 return self.ui.config(section, name, default, untrusted)
417 418
418 419 self.updatereqenv(req.env)
419 420
420 421 url = req.env.get('SCRIPT_NAME', '')
421 422 if not url.endswith('/'):
422 423 url += '/'
423 424
424 425 vars = {}
425 426 styles = (
426 427 req.form.get('style', [None])[0],
427 428 config('web', 'style'),
428 429 'paper'
429 430 )
430 431 style, mapfile = templater.stylemap(styles, self.templatepath)
431 432 if style == styles[0]:
432 433 vars['style'] = style
433 434
434 435 start = url[-1] == '?' and '&' or '?'
435 436 sessionvars = webutil.sessionvars(vars, start)
436 437 logourl = config('web', 'logourl', 'http://mercurial.selenic.com/')
437 438 logoimg = config('web', 'logoimg', 'hglogo.png')
438 439 staticurl = config('web', 'staticurl') or url + 'static/'
439 440 if not staticurl.endswith('/'):
440 441 staticurl += '/'
441 442
442 443 tmpl = templater.templater(mapfile,
443 444 defaults={"header": header,
444 445 "footer": footer,
445 446 "motd": motd,
446 447 "url": url,
447 448 "logourl": logourl,
448 449 "logoimg": logoimg,
449 450 "staticurl": staticurl,
450 451 "sessionvars": sessionvars})
451 452 return tmpl
452 453
453 454 def updatereqenv(self, env):
454 455 if self._baseurl is not None:
455 456 name, port, path = geturlcgivars(self._baseurl, env['SERVER_PORT'])
456 457 env['SERVER_NAME'] = name
457 458 env['SERVER_PORT'] = port
458 459 env['SCRIPT_NAME'] = path
@@ -1,225 +1,226 b''
1 1 default = 'shortlog'
2 2
3 3 mimetype = 'text/html; charset={encoding}'
4 4 header = header.tmpl
5 5 footer = ../paper/footer.tmpl
6 6 search = ../paper/search.tmpl
7 7
8 8 changelog = ../paper/shortlog.tmpl
9 9 shortlog = ../paper/shortlog.tmpl
10 10 shortlogentry = ../paper/shortlogentry.tmpl
11 11 graph = ../paper/graph.tmpl
12 12
13 13 help = ../paper/help.tmpl
14 14 helptopics = ../paper/helptopics.tmpl
15 15
16 16 helpentry = '<tr><td><a href="{url}help/{topic|escape}{sessionvars%urlparameter}">{topic|escape}</a></td><td>{summary|escape}</td></tr>'
17 17
18 18 naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
19 19 navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
20 20 navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
21 21 filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
22 22 filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
23 23 filenodelink = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
24 24 filenolink = '{file|escape} '
25 25 fileellipses = '...'
26 26 diffstatlink = ../paper/diffstat.tmpl
27 27 diffstatnolink = ../paper/diffstat.tmpl
28 28 changelogentry = ../paper/shortlogentry.tmpl
29 29 searchentry = ../paper/shortlogentry.tmpl
30 30 changeset = ../paper/changeset.tmpl
31 31 manifest = ../paper/manifest.tmpl
32 32
33 33 nav = '{before%naventry} {after%naventry}'
34 34 navshort = '{before%navshortentry}{after%navshortentry}'
35 35 navgraph = '{before%navgraphentry}{after%navgraphentry}'
36 36 filenav = '{before%filenaventry}{after%filenaventry}'
37 37
38 38 direntry = '
39 39 <tr class="fileline parity{parity}">
40 40 <td class="name">
41 41 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">
42 42 <img src="{staticurl}coal-folder.png" alt="dir."/> {basename|escape}/
43 43 </a>
44 44 <a href="{url}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">
45 45 {emptydirs|escape}
46 46 </a>
47 47 </td>
48 48 <td class="size"></td>
49 49 <td class="permissions">drwxr-xr-x</td>
50 50 </tr>'
51 51
52 52 fileentry = '
53 53 <tr class="fileline parity{parity}">
54 54 <td class="filename">
55 55 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
56 56 <img src="{staticurl}coal-file.png" alt="file"/> {basename|escape}
57 57 </a>
58 58 </td>
59 59 <td class="size">{size}</td>
60 60 <td class="permissions">{permissions|permissions}</td>
61 61 </tr>'
62 62
63 63 filerevision = ../paper/filerevision.tmpl
64 64 fileannotate = ../paper/fileannotate.tmpl
65 65 filediff = ../paper/filediff.tmpl
66 66 filecomparison = ../paper/filecomparison.tmpl
67 67 filelog = ../paper/filelog.tmpl
68 68 fileline = '
69 69 <div class="parity{parity} source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</div>'
70 70 filelogentry = ../paper/filelogentry.tmpl
71 71
72 72 annotateline = '
73 73 <tr class="parity{parity}">
74 74 <td class="annotate">
75 75 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#{targetline}"
76 76 title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
77 77 </td>
78 78 <td class="source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</td>
79 79 </tr>'
80 80
81 81 diffblock = '<div class="source bottomline parity{parity}"><pre>{lines}</pre></div>'
82 82 difflineplus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="plusline">{line|escape}</span>'
83 83 difflineminus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="minusline">{line|escape}</span>'
84 84 difflineat = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="atline">{line|escape}</span>'
85 85 diffline = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}'
86 86
87 87 comparisonblock ='
88 88 <tbody class="block">
89 89 {lines}
90 90 </tbody>'
91 91 comparisonline = '
92 92 <tr>
93 93 <td class="source {type}"><a href="#{lineid}" id="{lineid}">{leftlinenumber}</a> {leftline|escape}</td>
94 94 <td class="source {type}"><a href="#{lineid}" id="{lineid}">{rightlinenumber}</a> {rightline|escape}</td>
95 95 </tr>'
96 96
97 97 changelogparent = '
98 98 <tr>
99 99 <th class="parent">parent {rev}:</th>
100 100 <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
101 101 </tr>'
102 102
103 103 changesetparent = '<a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> '
104 104
105 105 filerevparent = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rename%filerename}{node|short}</a> '
106 106 filerevchild = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> '
107 107
108 108 filerename = '{file|escape}@'
109 109 filelogrename = '
110 110 <span class="base">
111 111 base
112 112 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
113 113 {file|escape}@{node|short}
114 114 </a>
115 115 </span>'
116 116 fileannotateparent = '
117 117 <tr>
118 118 <td class="metatag">parent:</td>
119 119 <td>
120 120 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
121 121 {rename%filerename}{node|short}
122 122 </a>
123 123 </td>
124 124 </tr>'
125 125 changesetchild = ' <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
126 126 changelogchild = '
127 127 <tr>
128 128 <th class="child">child</th>
129 129 <td class="child">
130 130 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
131 131 {node|short}
132 132 </a>
133 133 </td>
134 134 </tr>'
135 135 fileannotatechild = '
136 136 <tr>
137 137 <td class="metatag">child:</td>
138 138 <td>
139 139 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
140 140 {node|short}
141 141 </a>
142 142 </td>
143 143 </tr>'
144 144 tags = ../paper/tags.tmpl
145 145 tagentry = '
146 146 <tr class="tagEntry parity{parity}">
147 147 <td>
148 148 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
149 149 {tag|escape}
150 150 </a>
151 151 </td>
152 152 <td class="node">
153 153 {node|short}
154 154 </td>
155 155 </tr>'
156 156 bookmarks = ../paper/bookmarks.tmpl
157 157 bookmarkentry = '
158 158 <tr class="tagEntry parity{parity}">
159 159 <td>
160 160 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
161 161 {bookmark|escape}
162 162 </a>
163 163 </td>
164 164 <td class="node">
165 165 {node|short}
166 166 </td>
167 167 </tr>'
168 168 branches = ../paper/branches.tmpl
169 169 branchentry = '
170 170 <tr class="tagEntry parity{parity}">
171 171 <td>
172 172 <a href="{url}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">
173 173 {branch|escape}
174 174 </a>
175 175 </td>
176 176 <td class="node">
177 177 {node|short}
178 178 </td>
179 179 </tr>'
180 180 changelogtag = '<span class="tag">{name|escape}</span> '
181 181 changesettag = '<span class="tag">{tag|escape}</span> '
182 182 changesetbookmark = '<span class="tag">{bookmark|escape}</span> '
183 183 changelogbranchhead = '<span class="branchhead">{name|escape}</span> '
184 184 changelogbranchname = '<span class="branchname">{name|escape}</span> '
185 185
186 186 filediffparent = '
187 187 <tr>
188 188 <th class="parent">parent {rev}:</th>
189 189 <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
190 190 </tr>'
191 191 filelogparent = '
192 192 <tr>
193 193 <th>parent {rev}:</th>
194 194 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
195 195 </tr>'
196 196 filediffchild = '
197 197 <tr>
198 198 <th class="child">child {rev}:</th>
199 199 <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
200 200 </td>
201 201 </tr>'
202 202 filelogchild = '
203 203 <tr>
204 204 <th>child {rev}:</th>
205 205 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
206 206 </tr>'
207 207
208 208 indexentry = '
209 209 <tr class="parity{parity}">
210 210 <td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td>
211 211 <td>{description}</td>
212 212 <td>{contact|obfuscate}</td>
213 213 <td class="age">{lastchange|rfc822date}</td>
214 214 <td class="indexlinks">{archives%indexarchiveentry}</td>
215 215 </tr>\n'
216 216 indexarchiveentry = '<a href="{url}archive/{node|short}{extension|urlescape}">&nbsp;&darr;{type|escape}</a>'
217 217 index = ../paper/index.tmpl
218 218 archiveentry = '
219 219 <li>
220 220 <a href="{url}archive/{node|short}{extension|urlescape}">{type|escape}</a>
221 221 </li>'
222 222 notfound = ../paper/notfound.tmpl
223 223 error = ../paper/error.tmpl
224 224 urlparameter = '{separator}{name}={value|urlescape}'
225 225 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
226 breadcrumb = '&gt; <a href="{url}">{name}</a> '
@@ -1,32 +1,33 b''
1 1 {header}
2 2 <title>{repo|escape}: Bookmarks</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url}atom-bookmarks" title="Atom feed for {repo|escape}"/>
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url}rss-bookmarks" title="RSS feed for {repo|escape}"/>
7 7 </head>
8 8 <body>
9 9
10 10 <div class="page_header">
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / bookmarks
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
12 <a href="/">Mercurial</a> {pathdef%breadcrumb} / bookmarks
12 13 </div>
13 14
14 15 <div class="page_nav">
15 16 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 17 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 18 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 19 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 20 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 21 bookmarks |
21 22 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 23 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
23 24 <a href="{url}help{sessionvars%urlparameter}">help</a>
24 25 <br/>
25 26 </div>
26 27
27 28 <div class="title">&nbsp;</div>
28 29 <table cellspacing="0">
29 30 {entries%bookmarkentry}
30 31 </table>
31 32
32 33 {footer}
@@ -1,32 +1,33 b''
1 1 {header}
2 2 <title>{repo|escape}: Branches</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url}atom-branches" title="Atom feed for {repo|escape}"/>
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url}rss-branches" title="RSS feed for {repo|escape}"/>
7 7 </head>
8 8 <body>
9 9
10 10 <div class="page_header">
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / branches
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
12 <a href="/">Mercurial</a> {pathdef%breadcrumb} / branches
12 13 </div>
13 14
14 15 <div class="page_nav">
15 16 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 17 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 18 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 19 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 20 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 21 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 22 branches |
22 23 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
23 24 <a href="{url}help{sessionvars%urlparameter}">help</a>
24 25 <br/>
25 26 </div>
26 27
27 28 <div class="title">&nbsp;</div>
28 29 <table cellspacing="0">
29 30 {entries%branchentry}
30 31 </table>
31 32
32 33 {footer}
@@ -1,41 +1,42 b''
1 1 {header}
2 2 <title>{repo|escape}: Changelog</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 7 </head>
8 8 <body>
9 9
10 10 <div class="page_header">
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / changelog
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
12 <a href="/">Mercurial</a> {pathdef%breadcrumb} / changelog
12 13 </div>
13 14
14 15 <form action="{url}log">
15 16 {sessionvars%hiddenformentry}
16 17 <div class="search">
17 18 <input type="text" name="rev" />
18 19 </div>
19 20 </form>
20 21
21 22 <div class="page_nav">
22 23 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
23 24 <a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a> |
24 25 changelog |
25 26 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
26 27 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
27 28 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
28 29 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
29 30 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry} |
30 31 <a href="{url}help{sessionvars%urlparameter}">help</a>
31 32 <br/>
32 33 {changenav%nav}<br/>
33 34 </div>
34 35
35 36 {entries%changelogentry}
36 37
37 38 <div class="page_nav">
38 39 {changenav%nav}<br/>
39 40 </div>
40 41
41 42 {footer}
@@ -1,53 +1,54 b''
1 1 {header}
2 2 <title>{repo|escape}: changeset {rev}:{node|short}</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 7 </head>
8 8 <body>
9 9
10 10 <div class="page_header">
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / changeset
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
12 <a href="/">Mercurial</a> {pathdef%breadcrumb} / changeset
12 13 </div>
13 14
14 15 <div class="page_nav">
15 16 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 17 <a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a> |
17 18 <a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> |
18 19 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 20 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 21 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 22 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 23 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
23 24 changeset |
24 25 <a href="{url}raw-rev/{node|short}">raw</a> {archives%archiveentry} |
25 26 <a href="{url}help{sessionvars%urlparameter}">help</a>
26 27 <br/>
27 28 </div>
28 29
29 30 <div>
30 31 <a class="title" href="{url}raw-rev/{node|short}">{desc|strip|escape|firstline|nonempty} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span></a>
31 32 </div>
32 33 <div class="title_text">
33 34 <table cellspacing="0">
34 35 <tr><td>author</td><td>{author|obfuscate}</td></tr>
35 36 <tr><td></td><td class="date age">{date|rfc822date}</td></tr>
36 37 {branch%changesetbranch}
37 38 <tr><td>changeset {rev}</td><td style="font-family:monospace">{node|short}</td></tr>
38 39 {parent%changesetparent}
39 40 {child%changesetchild}
40 41 </table></div>
41 42
42 43 <div class="page_body">
43 44 {desc|strip|escape|addbreaks|nonempty}
44 45 </div>
45 46 <div class="list_head"></div>
46 47 <div class="title_text">
47 48 <table cellspacing="0">
48 49 {files}
49 50 </table></div>
50 51
51 52 <div class="page_body">{diff}</div>
52 53
53 54 {footer}
@@ -1,33 +1,34 b''
1 1 {header}
2 2 <title>{repo|escape}: Error</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 7 </head>
8 8 <body>
9 9
10 10 <div class="page_header">
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / error
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
12 <a href="/">Mercurial</a> {pathdef%breadcrumb} / error
12 13 </div>
13 14
14 15 <div class="page_nav">
15 16 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 17 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 18 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 19 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
19 20 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
20 21 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
21 22 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
22 23 <a href="{url}help{sessionvars%urlparameter}">help</a>
23 24 <br/>
24 25 </div>
25 26
26 27 <div class="page_body">
27 28 <br/>
28 29 <i>An error occurred while processing your request</i><br/>
29 30 <br/>
30 31 {error|escape}
31 32 </div>
32 33
33 34 {footer}
@@ -1,66 +1,67 b''
1 1 {header}
2 2 <title>{repo|escape}: {file|escape}@{node|short} (annotated)</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 7 </head>
8 8 <body>
9 9
10 10 <div class="page_header">
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / annotate
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
12 <a href="/">Mercurial</a> {pathdef%breadcrumb} / annotate
12 13 </div>
13 14
14 15 <div class="page_nav">
15 16 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 17 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 18 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 19 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 20 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 21 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 22 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 23 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> |
23 24 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
24 25 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
25 26 <a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a> |
26 27 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
27 28 annotate |
28 29 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
29 30 <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
30 31 <a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a> |
31 32 <a href="{url}help{sessionvars%urlparameter}">help</a>
32 33 <br/>
33 34 </div>
34 35
35 36 <div class="title">{file|escape}</div>
36 37
37 38 <div class="title_text">
38 39 <table cellspacing="0">
39 40 <tr>
40 41 <td>author</td>
41 42 <td>{author|obfuscate}</td></tr>
42 43 <tr>
43 44 <td></td>
44 45 <td class="date age">{date|rfc822date}</td></tr>
45 46 {branch%filerevbranch}
46 47 <tr>
47 48 <td>changeset {rev}</td>
48 49 <td style="font-family:monospace"><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr>
49 50 {parent%fileannotateparent}
50 51 {child%fileannotatechild}
51 52 <tr>
52 53 <td>permissions</td>
53 54 <td style="font-family:monospace">{permissions|permissions}</td></tr>
54 55 </table>
55 56 </div>
56 57
57 58 <div class="page_path">
58 59 {desc|strip|escape|addbreaks|nonempty}
59 60 </div>
60 61 <div class="page_body">
61 62 <table>
62 63 {annotate%annotateline}
63 64 </table>
64 65 </div>
65 66
66 67 {footer}
@@ -1,71 +1,72 b''
1 1 {header}
2 2 <title>{repo|escape}: comparison {file|escape}</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 7 </head>
8 8 <body>
9 9
10 10 <div class="page_header">
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / comparison
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
12 <a href="/">Mercurial</a> {pathdef%breadcrumb} / comparison
12 13 </div>
13 14
14 15 <div class="page_nav">
15 16 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 17 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 18 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 19 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 20 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 21 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 22 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 23 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> |
23 24 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
24 25 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
25 26 <a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a> |
26 27 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
27 28 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
28 29 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
29 30 comparison |
30 31 <a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a> |
31 32 <a href="{url}help{sessionvars%urlparameter}">help</a>
32 33 <br/>
33 34 </div>
34 35
35 36 <div class="title">{file|escape}</div>
36 37
37 38 <table>
38 39 {branch%filerevbranch}
39 40 <tr>
40 41 <td>changeset {rev}</td>
41 42 <td style="font-family:monospace"><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr>
42 43 {parent%filecompparent}
43 44 {child%filecompchild}
44 45 </table>
45 46
46 47 <div class="list_head"></div>
47 48
48 49 <div class="page_body">
49 50
50 51 <div class="legend">
51 52 <span class="legendinfo equal">equal</span>
52 53 <span class="legendinfo delete">deleted</span>
53 54 <span class="legendinfo insert">inserted</span>
54 55 <span class="legendinfo replace">replaced</span>
55 56 </div>
56 57
57 58 <div class="comparison">
58 59 <table style="border-collapse:collapse;">
59 60 <thead class="header">
60 61 <tr>
61 62 <th>{leftrev}:{leftnode|short}</th>
62 63 <th>{rightrev}:{rightnode|short}</th>
63 64 </tr>
64 65 </thead>
65 66 {comparison}
66 67 </table>
67 68 </div>
68 69
69 70 </div>
70 71
71 72 {footer}
@@ -1,52 +1,53 b''
1 1 {header}
2 2 <title>{repo|escape}: diff {file|escape}</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 7 </head>
8 8 <body>
9 9
10 10 <div class="page_header">
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / diff
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
12 <a href="/">Mercurial</a> {pathdef%breadcrumb} / diff
12 13 </div>
13 14
14 15 <div class="page_nav">
15 16 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 17 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 18 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 19 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 20 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 21 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 22 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 23 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> |
23 24 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
24 25 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
25 26 <a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a> |
26 27 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
27 28 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
28 29 diff |
29 30 <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
30 31 <a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a> |
31 32 <a href="{url}help{sessionvars%urlparameter}">help</a>
32 33 <br/>
33 34 </div>
34 35
35 36 <div class="title">{file|escape}</div>
36 37
37 38 <table>
38 39 {branch%filerevbranch}
39 40 <tr>
40 41 <td>changeset {rev}</td>
41 42 <td style="font-family:monospace"><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr>
42 43 {parent%filediffparent}
43 44 {child%filediffchild}
44 45 </table>
45 46
46 47 <div class="list_head"></div>
47 48
48 49 <div class="page_body">
49 50 {diff}
50 51 </div>
51 52
52 53 {footer}
@@ -1,43 +1,44 b''
1 1 {header}
2 2 <title>{repo|escape}: File revisions</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 7 </head>
8 8 <body>
9 9
10 10 <div class="page_header">
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revisions
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
12 <a href="/">Mercurial</a> {pathdef%breadcrumb} / file revisions
12 13 </div>
13 14
14 15 <div class="page_nav">
15 16 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 17 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 18 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 19 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 20 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 21 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 22 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 23 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
23 24 revisions |
24 25 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
25 26 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
26 27 <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
27 28 <a href="{url}rss-log/tip/{file|urlescape}">rss</a> |
28 29 <a href="{url}help{sessionvars%urlparameter}">help</a>
29 30 <br/>
30 31 {nav%filenav}
31 32 </div>
32 33
33 34 <div class="title" >{file|urlescape}</div>
34 35
35 36 <table>
36 37 {entries%filelogentry}
37 38 </table>
38 39
39 40 <div class="page_nav">
40 41 {nav%filenav}
41 42 </div>
42 43
43 44 {footer}
@@ -1,65 +1,66 b''
1 1 {header}
2 2 <title>{repo|escape}: {file|escape}@{node|short}</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 7 </head>
8 8 <body>
9 9
10 10 <div class="page_header">
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revision
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
12 <a href="/">Mercurial</a> {pathdef%breadcrumb} / file revision
12 13 </div>
13 14
14 15 <div class="page_nav">
15 16 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 17 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 18 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 19 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 20 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 21 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 22 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 23 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> |
23 24 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
24 25 file |
25 26 <a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a> |
26 27 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
27 28 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
28 29 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
29 30 <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
30 31 <a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a> |
31 32 <a href="{url}help{sessionvars%urlparameter}">help</a>
32 33 <br/>
33 34 </div>
34 35
35 36 <div class="title">{file|escape}</div>
36 37
37 38 <div class="title_text">
38 39 <table cellspacing="0">
39 40 <tr>
40 41 <td>author</td>
41 42 <td>{author|obfuscate}</td></tr>
42 43 <tr>
43 44 <td></td>
44 45 <td class="date age">{date|rfc822date}</td></tr>
45 46 {branch%filerevbranch}
46 47 <tr>
47 48 <td>changeset {rev}</td>
48 49 <td style="font-family:monospace"><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr>
49 50 {parent%filerevparent}
50 51 {child%filerevchild}
51 52 <tr>
52 53 <td>permissions</td>
53 54 <td style="font-family:monospace">{permissions|permissions}</td></tr>
54 55 </table>
55 56 </div>
56 57
57 58 <div class="page_path">
58 59 {desc|strip|escape|addbreaks|nonempty}
59 60 </div>
60 61
61 62 <div class="page_body">
62 63 {text%fileline}
63 64 </div>
64 65
65 66 {footer}
@@ -1,110 +1,111 b''
1 1 {header}
2 2 <title>{repo|escape}: Graph</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 7 <!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]-->
8 8 </head>
9 9 <body>
10 10
11 11 <div class="page_header">
12 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / graph
12 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
13 <a href="/">Mercurial</a> {pathdef%breadcrumb} / graph
13 14 </div>
14 15
15 16 <form action="{url}log">
16 17 {sessionvars%hiddenformentry}
17 18 <div class="search">
18 19 <input type="text" name="rev" />
19 20 </div>
20 21 </form>
21 22 <div class="page_nav">
22 23 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
23 24 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
24 25 <a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> |
25 26 graph |
26 27 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
27 28 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
28 29 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
29 30 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
30 31 <a href="{url}help{sessionvars%urlparameter}">help</a>
31 32 <br/>
32 33 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
33 34 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
34 35 | {changenav%navgraph}<br/>
35 36 </div>
36 37
37 38 <div class="title">&nbsp;</div>
38 39
39 40 <noscript>The revision graph only works with JavaScript-enabled browsers.</noscript>
40 41
41 42 <div id="wrapper">
42 43 <ul id="nodebgs"></ul>
43 44 <canvas id="graph" width="480" height="{canvasheight}"></canvas>
44 45 <ul id="graphnodes"></ul>
45 46 </div>
46 47
47 48 <script>
48 49 <!-- hide script content
49 50
50 51 var data = {jsdata|json};
51 52 var graph = new Graph();
52 53 graph.scale({bg_height});
53 54
54 55 graph.vertex = function(x, y, color, parity, cur) \{
55 56
56 57 this.ctx.beginPath();
57 58 color = this.setColor(color, 0.25, 0.75);
58 59 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
59 60 this.ctx.fill();
60 61
61 62 var bg = '<li class="bg parity' + parity + '"></li>';
62 63 var left = (this.bg_height - this.box_size) + (this.columns + 1) * this.box_size;
63 64 var nstyle = 'padding-left: ' + left + 'px;';
64 65
65 66 var tagspan = '';
66 67 if (cur[7].length || cur[8].length || (cur[6][0] != 'default' || cur[6][1])) \{
67 68 tagspan = '<span class="logtags">';
68 69 if (cur[6][1]) \{
69 70 tagspan += '<span class="branchtag" title="' + cur[6][0] + '">';
70 71 tagspan += cur[6][0] + '</span> ';
71 72 } else if (!cur[6][1] && cur[6][0] != 'default') \{
72 73 tagspan += '<span class="inbranchtag" title="' + cur[6][0] + '">';
73 74 tagspan += cur[6][0] + '</span> ';
74 75 }
75 76 if (cur[7].length) \{
76 77 for (var t in cur[7]) \{
77 78 var tag = cur[7][t];
78 79 tagspan += '<span class="tagtag">' + tag + '</span> ';
79 80 }
80 81 }
81 82 if (cur[8].length) \{
82 83 for (var t in cur[8]) \{
83 84 var bookmark = cur[8][t];
84 85 tagspan += '<span class="bookmarktag">' + bookmark + '</span> ';
85 86 }
86 87 }
87 88 tagspan += '</span>';
88 89 }
89 90
90 91 var item = '<li style="' + nstyle + '"><span class="desc">';
91 92 item += '<a class="list" href="{url}rev/' + cur[0] + '{sessionvars%urlparameter}" title="' + cur[0] + '"><b>' + cur[3] + '</b></a>';
92 93 item += '</span> ' + tagspan + '';
93 94 item += '<span class="info">' + cur[5] + ', by ' + cur[4] + '</span></li>';
94 95
95 96 return [bg, item];
96 97
97 98 }
98 99
99 100 graph.render(data);
100 101
101 102 // stop hiding script -->
102 103 </script>
103 104
104 105 <div class="page_nav">
105 106 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
106 107 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
107 108 | {changenav%navgraph}
108 109 </div>
109 110
110 111 {footer}
@@ -1,33 +1,34 b''
1 1 {header}
2 2 <title>{repo|escape}: Branches</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url}atom-tags" title="Atom feed for {repo|escape}"/>
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url}rss-tags" title="RSS feed for {repo|escape}"/>
7 7 </head>
8 8 <body>
9 9
10 10 <div class="page_header">
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / help
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
12 <a href="/">Mercurial</a> {pathdef%breadcrumb} / help
12 13 </div>
13 14
14 15 <div class="page_nav">
15 16 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 17 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 18 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 19 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 20 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 21 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 22 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 23 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
23 24 help
24 25 <br/>
25 26 </div>
26 27
27 28 <div class="title">&nbsp;</div>
28 29
29 30 <pre>
30 31 {doc|escape}
31 32 </pre>
32 33
33 34 {footer}
@@ -1,39 +1,40 b''
1 1 {header}
2 2 <title>{repo|escape}: Branches</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url}atom-tags" title="Atom feed for {repo|escape}"/>
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url}rss-tags" title="RSS feed for {repo|escape}"/>
7 7 </head>
8 8 <body>
9 9
10 10 <div class="page_header">
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / help
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
12 <a href="/">Mercurial</a> {pathdef%breadcrumb} / help
12 13 </div>
13 14
14 15 <div class="page_nav">
15 16 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 17 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 18 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 19 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 20 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 21 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 22 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 23 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
23 24 help
24 25 <br/>
25 26 </div>
26 27
27 28 <div class="title">&nbsp;</div>
28 29 <table cellspacing="0">
29 30 <tr><td colspan="2"><h2><a name="main" href="#topics">Topics</a></h2></td></tr>
30 31 {topics % helpentry}
31 32
32 33 <tr><td colspan="2"><h2><a name="main" href="#main">Main Commands</a></h2></td></tr>
33 34 {earlycommands % helpentry}
34 35
35 36 <tr><td colspan="2"><h2><a name="other" href="#other">Other Commands</a></h2></td></tr>
36 37 {othercommands % helpentry}
37 38 </table>
38 39
39 40 {footer}
@@ -1,26 +1,26 b''
1 1 {header}
2 2 <title>Mercurial repositories index</title>
3 3 </head>
4 4 <body>
5 5
6 6 <div class="page_header">
7 7 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
8 Repositories list
8 <a href="/">Mercurial</a> {pathdef%breadcrumb}
9 9 </div>
10 10
11 11 <table cellspacing="0">
12 12 <tr>
13 13 <td><a href="?sort={sort_name}">Name</a></td>
14 14 <td><a href="?sort={sort_description}">Description</a></td>
15 15 <td><a href="?sort={sort_contact}">Contact</a></td>
16 16 <td><a href="?sort={sort_lastchange}">Last modified</a></td>
17 17 <td>&nbsp;</td>
18 18 <td>&nbsp;</td>
19 19 </tr>
20 20 {entries%indexentry}
21 21 </table>
22 22 <div class="page_footer">
23 23 {motd}
24 24 </div>
25 25 </body>
26 26 </html>
@@ -1,41 +1,42 b''
1 1 {header}
2 2 <title>{repo|escape}: files</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 7 </head>
8 8 <body>
9 9
10 10 <div class="page_header">
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / files
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
12 <a href="/">Mercurial</a> {pathdef%breadcrumb} / files
12 13 </div>
13 14
14 15 <div class="page_nav">
15 16 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 17 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 18 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 19 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 20 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 21 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 22 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 23 files |
23 24 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> {archives%archiveentry} |
24 25 <a href="{url}help{sessionvars%urlparameter}">help</a>
25 26 <br/>
26 27 </div>
27 28
28 29 <div class="title">{path|escape} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span></div>
29 30 <table cellspacing="0">
30 31 <tr class="parity{upparity}">
31 32 <td style="font-family:monospace">drwxr-xr-x</td>
32 33 <td style="font-family:monospace"></td>
33 34 <td style="font-family:monospace"></td>
34 35 <td><a href="{url}file/{node|short}{up|urlescape}{sessionvars%urlparameter}">[up]</a></td>
35 36 <td class="link">&nbsp;</td>
36 37 </tr>
37 38 {dentries%direntry}
38 39 {fentries%fileentry}
39 40 </table>
40 41
41 42 {footer}
@@ -1,307 +1,308 b''
1 1 default = 'summary'
2 2 mimetype = 'text/html; charset={encoding}'
3 3 header = header.tmpl
4 4 footer = footer.tmpl
5 5 search = search.tmpl
6 6 changelog = changelog.tmpl
7 7 summary = summary.tmpl
8 8 error = error.tmpl
9 9 notfound = notfound.tmpl
10 10
11 11 help = help.tmpl
12 12 helptopics = helptopics.tmpl
13 13
14 14 helpentry = '<tr><td><a href="{url}help/{topic|escape}{sessionvars%urlparameter}">{topic|escape}</a></td><td>{summary|escape}</td></tr>'
15 15
16 16 naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
17 17 navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
18 18 navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
19 19 filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
20 20 filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
21 21 filenodelink = '
22 22 <tr class="parity{parity}">
23 23 <td><a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
24 24 <td></td>
25 25 <td class="link">
26 26 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
27 27 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
28 28 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
29 29 <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
30 30 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
31 31 </td>
32 32 </tr>'
33 33 filenolink = '
34 34 <tr class="parity{parity}">
35 35 <td><a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
36 36 <td></td>
37 37 <td class="link">
38 38 file |
39 39 annotate |
40 40 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
41 41 <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
42 42 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
43 43 </td>
44 44 </tr>'
45 45
46 46 nav = '{before%naventry} {after%naventry}'
47 47 navshort = '{before%navshortentry}{after%navshortentry}'
48 48 navgraph = '{before%navgraphentry}{after%navgraphentry}'
49 49 filenav = '{before%filenaventry}{after%filenaventry}'
50 50
51 51 fileellipses = '...'
52 52 changelogentry = changelogentry.tmpl
53 53 searchentry = changelogentry.tmpl
54 54 changeset = changeset.tmpl
55 55 manifest = manifest.tmpl
56 56 direntry = '
57 57 <tr class="parity{parity}">
58 58 <td style="font-family:monospace">drwxr-xr-x</td>
59 59 <td style="font-family:monospace"></td>
60 60 <td style="font-family:monospace"></td>
61 61 <td>
62 62 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
63 63 <a href="{url}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">{emptydirs|escape}</a>
64 64 </td>
65 65 <td class="link">
66 66 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a>
67 67 </td>
68 68 </tr>'
69 69 fileentry = '
70 70 <tr class="parity{parity}">
71 71 <td style="font-family:monospace">{permissions|permissions}</td>
72 72 <td style="font-family:monospace" align=right>{date|isodate}</td>
73 73 <td style="font-family:monospace" align=right>{size}</td>
74 74 <td class="list">
75 75 <a class="list" href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
76 76 </td>
77 77 <td class="link">
78 78 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
79 79 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
80 80 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
81 81 </td>
82 82 </tr>'
83 83 filerevision = filerevision.tmpl
84 84 fileannotate = fileannotate.tmpl
85 85 filediff = filediff.tmpl
86 86 filecomparison = filecomparison.tmpl
87 87 filelog = filelog.tmpl
88 88 fileline = '
89 89 <div style="font-family:monospace" class="parity{parity}">
90 90 <pre><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</pre>
91 91 </div>'
92 92 annotateline = '
93 93 <tr style="font-family:monospace" class="parity{parity}">
94 94 <td class="linenr" style="text-align: right;">
95 95 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"
96 96 title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
97 97 </td>
98 98 <td><pre><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a></pre></td>
99 99 <td><pre>{line|escape}</pre></td>
100 100 </tr>'
101 101 difflineplus = '<span style="color:#008800;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
102 102 difflineminus = '<span style="color:#cc0000;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
103 103 difflineat = '<span style="color:#990099;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
104 104 diffline = '<span><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
105 105
106 106 comparisonblock ='
107 107 <tbody class="block">
108 108 {lines}
109 109 </tbody>'
110 110 comparisonline = '
111 111 <tr style="font-family:monospace">
112 112 <td class="{type}"><pre><a class="linenr" href="#{lineid}" id="{lineid}">{leftlinenumber}</a> {leftline|escape}</pre></td>
113 113 <td class="{type}"><pre><a class="linenr" href="#{lineid}" id="{lineid}">{rightlinenumber}</a> {rightline|escape}</pre></td>
114 114 </tr>'
115 115
116 116 changelogparent = '
117 117 <tr>
118 118 <th class="parent">parent {rev}:</th>
119 119 <td class="parent">
120 120 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
121 121 </td>
122 122 </tr>'
123 123 changesetbranch = '<tr><td>branch</td><td>{name}</td></tr>'
124 124 changesetparent = '
125 125 <tr>
126 126 <td>parent {rev}</td>
127 127 <td style="font-family:monospace">
128 128 <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
129 129 </td>
130 130 </tr>'
131 131 filerevbranch = '<tr><td>branch</td><td>{name}</td></tr>'
132 132 filerevparent = '
133 133 <tr>
134 134 <td>parent {rev}</td>
135 135 <td style="font-family:monospace">
136 136 <a class="list" href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
137 137 {rename%filerename}{node|short}
138 138 </a>
139 139 </td>
140 140 </tr>'
141 141 filerename = '{file|escape}@'
142 142 filelogrename = '| <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>'
143 143 fileannotateparent = '
144 144 <tr>
145 145 <td>parent {rev}</td>
146 146 <td style="font-family:monospace">
147 147 <a class="list" href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
148 148 {rename%filerename}{node|short}
149 149 </a>
150 150 </td>
151 151 </tr>'
152 152 changelogchild = '
153 153 <tr>
154 154 <th class="child">child {rev}:</th>
155 155 <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
156 156 </tr>'
157 157 changesetchild = '
158 158 <tr>
159 159 <td>child {rev}</td>
160 160 <td style="font-family:monospace">
161 161 <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
162 162 </td>
163 163 </tr>'
164 164 filerevchild = '
165 165 <tr>
166 166 <td>child {rev}</td>
167 167 <td style="font-family:monospace">
168 168 <a class="list" href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
169 169 </tr>'
170 170 fileannotatechild = '
171 171 <tr>
172 172 <td>child {rev}</td>
173 173 <td style="font-family:monospace">
174 174 <a class="list" href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
175 175 </tr>'
176 176 tags = tags.tmpl
177 177 tagentry = '
178 178 <tr class="parity{parity}">
179 179 <td class="age"><i class="age">{date|rfc822date}</i></td>
180 180 <td><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}"><b>{tag|escape}</b></a></td>
181 181 <td class="link">
182 182 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
183 183 <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
184 184 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
185 185 </td>
186 186 </tr>'
187 187 bookmarks = bookmarks.tmpl
188 188 bookmarkentry = '
189 189 <tr class="parity{parity}">
190 190 <td class="age"><i class="age">{date|rfc822date}</i></td>
191 191 <td><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}"><b>{bookmark|escape}</b></a></td>
192 192 <td class="link">
193 193 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
194 194 <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
195 195 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
196 196 </td>
197 197 </tr>'
198 198 branches = branches.tmpl
199 199 branchentry = '
200 200 <tr class="parity{parity}">
201 201 <td class="age"><i class="age">{date|rfc822date}</i></td>
202 202 <td><a class="list" href="{url}shortlog/{node|short}{sessionvars%urlparameter}"><b>{node|short}</b></a></td>
203 203 <td class="{status}">{branch|escape}</td>
204 204 <td class="link">
205 205 <a href="{url}changeset/{node|short}{sessionvars%urlparameter}">changeset</a> |
206 206 <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
207 207 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
208 208 </td>
209 209 </tr>'
210 210 diffblock = '<pre>{lines}</pre>'
211 211 filediffparent = '
212 212 <tr>
213 213 <td>parent {rev}</td>
214 214 <td style="font-family:monospace">
215 215 <a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
216 216 {node|short}
217 217 </a>
218 218 </td>
219 219 </tr>'
220 220 filecompparent = '
221 221 <tr>
222 222 <td>parent {rev}</td>
223 223 <td style="font-family:monospace">
224 224 <a class="list" href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
225 225 {node|short}
226 226 </a>
227 227 </td>
228 228 </tr>'
229 229 filelogparent = '
230 230 <tr>
231 231 <td align="right">parent {rev}:&nbsp;</td>
232 232 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
233 233 </tr>'
234 234 filediffchild = '
235 235 <tr>
236 236 <td>child {rev}</td>
237 237 <td style="font-family:monospace">
238 238 <a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
239 239 </td>
240 240 </tr>'
241 241 filecompchild = '
242 242 <tr>
243 243 <td>child {rev}</td>
244 244 <td style="font-family:monospace">
245 245 <a class="list" href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
246 246 </td>
247 247 </tr>'
248 248 filelogchild = '
249 249 <tr>
250 250 <td align="right">child {rev}:&nbsp;</td>
251 251 <td><a href="{url}file{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
252 252 </tr>'
253 253 shortlog = shortlog.tmpl
254 254 graph = graph.tmpl
255 255 tagtag = '<span class="tagtag" title="{name}">{name}</span> '
256 256 branchtag = '<span class="branchtag" title="{name}">{name}</span> '
257 257 inbranchtag = '<span class="inbranchtag" title="{name}">{name}</span> '
258 258 bookmarktag = '<span class="bookmarktag" title="{name}">{name}</span> '
259 259 shortlogentry = '
260 260 <tr class="parity{parity}">
261 261 <td class="age"><i class="age">{date|rfc822date}</i></td>
262 262 <td><i>{author|person}</i></td>
263 263 <td>
264 264 <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">
265 265 <b>{desc|strip|firstline|escape|nonempty}</b>
266 266 <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>
267 267 </a>
268 268 </td>
269 269 <td class="link" nowrap>
270 270 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
271 271 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
272 272 </td>
273 273 </tr>'
274 274 filelogentry = '
275 275 <tr class="parity{parity}">
276 276 <td class="age"><i class="age">{date|rfc822date}</i></td>
277 277 <td>
278 278 <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">
279 279 <b>{desc|strip|firstline|escape|nonempty}</b>
280 280 </a>
281 281 </td>
282 282 <td class="link">
283 283 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a>&nbsp;|&nbsp;<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>&nbsp;|&nbsp;<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> {rename%filelogrename}</td>
284 284 </tr>'
285 285 archiveentry = ' | <a href="{url}archive/{node|short}{extension}">{type|escape}</a> '
286 286 indexentry = '
287 287 <tr class="parity{parity}">
288 288 <td>
289 289 <a class="list" href="{url}{sessionvars%urlparameter}">
290 290 <b>{name|escape}</b>
291 291 </a>
292 292 </td>
293 293 <td>{description}</td>
294 294 <td>{contact|obfuscate}</td>
295 295 <td class="age">{lastchange|rfc822date}</td>
296 296 <td class="indexlinks">{archives%indexarchiveentry}</td>
297 297 <td>{if(isdirectory, '',
298 298 '<div class="rss_logo">
299 299 <a href="{url}rss-log">RSS</a> <a href="{url}atom-log">Atom</a>
300 300 </div>'
301 301 )}
302 302 </td>
303 303 </tr>\n'
304 304 indexarchiveentry = ' <a href="{url}archive/{node|short}{extension}">{type|escape}</a> '
305 305 index = index.tmpl
306 306 urlparameter = '{separator}{name}={value|urlescape}'
307 307 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
308 breadcrumb = '&gt; <a href="{url}">{name}</a> '
@@ -1,39 +1,40 b''
1 1 {header}
2 2 <title>{repo|escape}: Search</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 7 </head>
8 8 <body>
9 9
10 10 <div class="page_header">
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / search
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
12 <a href="/">Mercurial</a> {pathdef%breadcrumb} / search
12 13
13 14 <form action="{url}log">
14 15 {sessionvars%hiddenformentry}
15 16 <div class="search">
16 17 <input type="text" name="rev" value="{query|escape}" />
17 18 </div>
18 19 </form>
19 20 </div>
20 21
21 22 <div class="page_nav">
22 23 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
23 24 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
24 25 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
25 26 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
26 27 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
27 28 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
28 29 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
29 30 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}
30 31 |
31 32 <a href="{url}help{sessionvars%urlparameter}">help</a>
32 33 <br/>
33 34 </div>
34 35
35 36 <div class="title">searching for {query|escape}</div>
36 37
37 38 {entries}
38 39
39 40 {footer}
@@ -1,42 +1,43 b''
1 1 {header}
2 2 <title>{repo|escape}: Shortlog</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 7 </head>
8 8 <body>
9 9
10 10 <div class="page_header">
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / shortlog
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
12 <a href="/">Mercurial</a> {pathdef%breadcrumb} / shortlog
12 13 </div>
13 14
14 15 <form action="{url}log">
15 16 {sessionvars%hiddenformentry}
16 17 <div class="search">
17 18 <input type="text" name="rev" />
18 19 </div>
19 20 </form>
20 21 <div class="page_nav">
21 22 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
22 23 shortlog |
23 24 <a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> |
24 25 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
25 26 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
26 27 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
27 28 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
28 29 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry} |
29 30 <a href="{url}help{sessionvars%urlparameter}">help</a>
30 31 <br/>{changenav%navshort}<br/>
31 32 </div>
32 33
33 34 <div class="title">&nbsp;</div>
34 35 <table cellspacing="0">
35 36 {entries%shortlogentry}
36 37 </table>
37 38
38 39 <div class="page_nav">
39 40 {changenav%navshort}
40 41 </div>
41 42
42 43 {footer}
@@ -1,66 +1,66 b''
1 1 {header}
2 2 <title>{repo|escape}: Summary</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 7 </head>
8 8 <body>
9 9
10 10 <div class="page_header">
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / summary
12
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
12 <a href="/">Mercurial</a> {pathdef%breadcrumb} / summary
13 13 <form action="{url}log">
14 14 {sessionvars%hiddenformentry}
15 15 <div class="search">
16 16 <input type="text" name="rev" />
17 17 </div>
18 18 </form>
19 19 </div>
20 20
21 21 <div class="page_nav">
22 22 summary |
23 23 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
24 24 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
25 25 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
26 26 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
27 27 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
28 28 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
29 29 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry} |
30 30 <a href="{url}help{sessionvars%urlparameter}">help</a>
31 31 <br/>
32 32 </div>
33 33
34 34 <div class="title">&nbsp;</div>
35 35 <table cellspacing="0">
36 36 <tr><td>description</td><td>{desc}</td></tr>
37 37 <tr><td>owner</td><td>{owner|obfuscate}</td></tr>
38 38 <tr><td>last change</td><td>{lastchange|rfc822date}</td></tr>
39 39 </table>
40 40
41 41 <div><a class="title" href="{url}shortlog{sessionvars%urlparameter}">changes</a></div>
42 42 <table cellspacing="0">
43 43 {shortlog}
44 44 <tr class="light"><td colspan="4"><a class="list" href="{url}shortlog{sessionvars%urlparameter}">...</a></td></tr>
45 45 </table>
46 46
47 47 <div><a class="title" href="{url}tags{sessionvars%urlparameter}">tags</a></div>
48 48 <table cellspacing="0">
49 49 {tags}
50 50 <tr class="light"><td colspan="3"><a class="list" href="{url}tags{sessionvars%urlparameter}">...</a></td></tr>
51 51 </table>
52 52
53 53 <div><a class="title" href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></div>
54 54 <table cellspacing="0">
55 55 {bookmarks%bookmarkentry}
56 56 <tr class="light"><td colspan="3"><a class="list" href="{url}bookmarks{sessionvars%urlparameter}">...</a></td></tr>
57 57 </table>
58 58
59 59 <div><a class="title" href="{url}branches{sessionvars%urlparameter}">branches</a></div>
60 60 <table cellspacing="0">
61 61 {branches%branchentry}
62 62 <tr class="light">
63 63 <td colspan="4"><a class="list" href="{url}branches{sessionvars%urlparameter}">...</a></td>
64 64 </tr>
65 65 </table>
66 66 {footer}
@@ -1,32 +1,33 b''
1 1 {header}
2 2 <title>{repo|escape}: Tags</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url}atom-tags" title="Atom feed for {repo|escape}"/>
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url}rss-tags" title="RSS feed for {repo|escape}"/>
7 7 </head>
8 8 <body>
9 9
10 10 <div class="page_header">
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / tags
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
12 <a href="/">Mercurial</a> {pathdef%breadcrumb} / tags
12 13 </div>
13 14
14 15 <div class="page_nav">
15 16 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 17 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 18 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 19 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 20 tags |
20 21 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 22 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 23 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
23 24 <a href="{url}help{sessionvars%urlparameter}">help</a>
24 25 <br/>
25 26 </div>
26 27
27 28 <div class="title">&nbsp;</div>
28 29 <table cellspacing="0">
29 30 {entries%tagentry}
30 31 </table>
31 32
32 33 {footer}
@@ -1,38 +1,38 b''
1 1 {header}
2 2 <title>{repo|escape}: Bookmarks</title>
3 3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 5 </head>
6 6
7 7 <body>
8 8 <div id="container">
9 9 <div class="page-header">
10 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / bookmarks</h1>
10 <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / bookmarks</h1>
11 11
12 12 <form action="{url}log">
13 13 {sessionvars%hiddenformentry}
14 14 <dl class="search">
15 15 <dt><label>Search: </label></dt>
16 16 <dd><input type="text" name="rev" /></dd>
17 17 </dl>
18 18 </form>
19 19
20 20 <ul class="page-nav">
21 21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
24 24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 26 <li class="current">bookmarks</li>
27 27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
29 29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 30 </ul>
31 31 </div>
32 32
33 33 <h2 class="no-link no-border">bookmarks</h2>
34 34 <table cellspacing="0">
35 35 {entries%bookmarkentry}
36 36 </table>
37 37
38 38 {footer}
@@ -1,38 +1,38 b''
1 1 {header}
2 2 <title>{repo|escape}: Branches</title>
3 3 <link rel="alternate" type="application/atom+xml" href="{url}atom-branches" title="Atom feed for {repo|escape}"/>
4 4 <link rel="alternate" type="application/rss+xml" href="{url}rss-branches" title="RSS feed for {repo|escape}"/>
5 5 </head>
6 6
7 7 <body>
8 8 <div id="container">
9 9 <div class="page-header">
10 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / branches</h1>
10 <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / branches</h1>
11 11
12 12 <form action="{url}log">
13 13 {sessionvars%hiddenformentry}
14 14 <dl class="search">
15 15 <dt><label>Search: </label></dt>
16 16 <dd><input type="text" name="rev" /></dd>
17 17 </dl>
18 18 </form>
19 19
20 20 <ul class="page-nav">
21 21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
24 24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 27 <li class="current">branches</li>
28 28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
29 29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 30 </ul>
31 31 </div>
32 32
33 33 <h2 class="no-link no-border">branches</h2>
34 34 <table cellspacing="0">
35 35 {entries%branchentry}
36 36 </table>
37 37
38 38 {footer}
@@ -1,42 +1,42 b''
1 1 {header}
2 2 <title>{repo|escape}: changelog</title>
3 3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 5 </head>
6 6
7 7 <body>
8 8 <div id="container">
9 9 <div class="page-header">
10 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / changelog</h1>
10 <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / changelog</h1>
11 11
12 12 <form action="{url}log">
13 13 {sessionvars%hiddenformentry}
14 14 <dl class="search">
15 15 <dt><label>Search: </label></dt>
16 16 <dd><input type="text" name="rev" /></dd>
17 17 </dl>
18 18 </form>
19 19
20 20 <ul class="page-nav">
21 21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 23 <li class="current">changelog</li>
24 24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}</li>
29 29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 30 </ul>
31 31 </div>
32 32
33 33 <h2 class="no-link no-border">changelog</h2>
34 34 <div>
35 35 {entries%changelogentry}
36 36 </div>
37 37
38 38 <div class="page-path">
39 39 {changenav%nav}
40 40 </div>
41 41
42 42 {footer}
@@ -1,65 +1,65 b''
1 1 {header}
2 2 <title>{repo|escape}: changeset {rev}:{node|short}</title>
3 3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 5 </head>
6 6
7 7 <body>
8 8 <div id="container">
9 9 <div class="page-header">
10 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / changeset</h1>
10 <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / changeset</h1>
11 11
12 12 <form action="{url}log">
13 13 {sessionvars%hiddenformentry}
14 14 <dl class="search">
15 15 <dt><label>Search: </label></dt>
16 16 <dd><input type="text" name="rev" /></dd>
17 17 </dl>
18 18 </form>
19 19
20 20 <ul class="page-nav">
21 21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
24 24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
29 29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 30 </ul>
31 31 </div>
32 32
33 33 <ul class="submenu">
34 34 <li class="current">changeset</li>
35 35 <li><a href="{url}raw-rev/{node|short}">raw</a> {archives%archiveentry}</li>
36 36 </ul>
37 37
38 38 <h2 class="no-link no-border">changeset</h2>
39 39
40 40 <h3 class="changeset"><a href="{url}raw-rev/{node|short}">{desc|strip|escape|firstline|nonempty} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span></a></h3>
41 41 <p class="changeset-age age">{date|rfc822date}</p>
42 42
43 43 <dl class="overview">
44 44 <dt>author</dt>
45 45 <dd>{author|obfuscate}</dd>
46 46 <dt>date</dt>
47 47 <dd>{date|rfc822date}</dd>
48 48 {branch%changesetbranch}
49 49 <dt>changeset {rev}</dt>
50 50 <dd>{node|short}</dd>
51 51 {parent%changesetparent}
52 52 {child%changesetchild}
53 53 </dl>
54 54
55 55 <p class="description">{desc|strip|escape|addbreaks|nonempty}</p>
56 56
57 57 <table>
58 58 {files}
59 59 </table>
60 60
61 61 <div class="diff">
62 62 {diff}
63 63 </div>
64 64
65 65 {footer}
@@ -1,36 +1,36 b''
1 1 {header}
2 2 <title>{repo|escape}: Error</title>
3 3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 5 </head>
6 6
7 7 <body>
8 8 <div id="container">
9 9 <div class="page-header">
10 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / not found: {repo|escape}</h1>
10 <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / not found: {repo|escape}</h1>
11 11
12 12 <form action="{url}log">
13 13 {sessionvars%hiddenformentry}
14 14 <dl class="search">
15 15 <dt><label>Search: </label></dt>
16 16 <dd><input type="text" name="rev" /></dd>
17 17 </dl>
18 18 </form>
19 19
20 20 <ul class="page-nav">
21 21 <li class="current">summary</li>
22 22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
29 29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 30 </ul>
31 31 </div>
32 32
33 33 <h2 class="no-link no-border">An error occurred while processing your request</h2>
34 34 <p class="normal">{error|escape}</p>
35 35
36 36 {footer}
@@ -1,66 +1,66 b''
1 1 {header}
2 2 <title>{repo|escape}: {file|escape}@{node|short} (annotated)</title>
3 3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 5 </head>
6 6
7 7 <body>
8 8 <div id="container">
9 9 <div class="page-header">
10 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / annotate</h1>
10 <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / annotate</h1>
11 11
12 12 <form action="{url}log">
13 13 {sessionvars%hiddenformentry}
14 14 <dl class="search">
15 15 <dt><label>Search: </label></dt>
16 16 <dd><input type="text" name="rev" /></dd>
17 17 </dl>
18 18 </form>
19 19
20 20 <ul class="page-nav">
21 21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 28 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
29 29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 30 </ul>
31 31 </div>
32 32
33 33 <ul class="submenu">
34 34 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
35 35 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
36 36 <li class="current">annotate</li>
37 37 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
38 38 <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
39 39 <li><a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a></li>
40 40 </ul>
41 41
42 42 <h2 class="no-link no-border">{file|escape}@{node|short} (annotated)</h2>
43 43 <h3 class="changeset">{file|escape}</h3>
44 44 <p class="changeset-age age">{date|rfc822date}</p>
45 45
46 46 <dl class="overview">
47 47 <dt>author</dt>
48 48 <dd>{author|obfuscate}</dd>
49 49 <dt>date</dt>
50 50 <dd>{date|rfc822date}</dd>
51 51 {branch%filerevbranch}
52 52 <dt>changeset {rev}</dt>
53 53 <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
54 54 {parent%fileannotateparent}
55 55 {child%fileannotatechild}
56 56 <dt>permissions</dt>
57 57 <dd>{permissions|permissions}</dd>
58 58 </dl>
59 59
60 60 <p class="description">{desc|strip|escape|addbreaks|nonempty}</p>
61 61
62 62 <table class="annotated">
63 63 {annotate%annotateline}
64 64 </table>
65 65
66 66 {footer}
@@ -1,72 +1,72 b''
1 1 {header}
2 2 <title>{repo|escape}: comparison {file|escape}</title>
3 3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 5 </head>
6 6
7 7 <body>
8 8 <div id="container">
9 9 <div class="page-header">
10 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file comparison</h1>
10 <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / file comparison</h1>
11 11
12 12 <form action="{url}log">
13 13 {sessionvars%hiddenformentry}
14 14 <dl class="search">
15 15 <dt><label>Search: </label></dt>
16 16 <dd><input type="text" name="rev" /></dd>
17 17 </dl>
18 18 </form>
19 19
20 20 <ul class="page-nav">
21 21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 28 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
29 29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 30 </ul>
31 31 </div>
32 32
33 33 <ul class="submenu">
34 34 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
35 35 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
36 36 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
37 37 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
38 38 <li class="current">comparison</li>
39 39 <li><a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a></li>
40 40 </ul>
41 41
42 42 <h2 class="no-link no-border">comparison: {file|escape}</h2>
43 43 <h3 class="changeset">{file|escape}</h3>
44 44
45 45 <dl class="overview">
46 46 {branch%filerevbranch}
47 47 <dt>changeset {rev}</dt>
48 48 <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
49 49 {parent%filecompparent}
50 50 {child%filecompchild}
51 51 </dl>
52 52
53 53 <div class="legend">
54 54 <span class="legendinfo equal">equal</span>
55 55 <span class="legendinfo delete">deleted</span>
56 56 <span class="legendinfo insert">inserted</span>
57 57 <span class="legendinfo replace">replaced</span>
58 58 </div>
59 59
60 60 <div class="comparison">
61 61 <table class="bigtable">
62 62 <thead class="header">
63 63 <tr>
64 64 <th>{leftrev}:{leftnode|short}</th>
65 65 <th>{rightrev}:{rightnode|short}</th>
66 66 </tr>
67 67 </thead>
68 68 {comparison}
69 69 </table>
70 70 </div>
71 71
72 72 {footer}
@@ -1,57 +1,57 b''
1 1 {header}
2 2 <title>{repo|escape}: diff {file|escape}</title>
3 3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 5 </head>
6 6
7 7 <body>
8 8 <div id="container">
9 9 <div class="page-header">
10 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file diff</h1>
10 <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / file diff</h1>
11 11
12 12 <form action="{url}log">
13 13 {sessionvars%hiddenformentry}
14 14 <dl class="search">
15 15 <dt><label>Search: </label></dt>
16 16 <dd><input type="text" name="rev" /></dd>
17 17 </dl>
18 18 </form>
19 19
20 20 <ul class="page-nav">
21 21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 28 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
29 29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 30 </ul>
31 31 </div>
32 32
33 33 <ul class="submenu">
34 34 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
35 35 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
36 36 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
37 37 <li class="current">diff</li>
38 38 <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
39 39 <li><a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a></li>
40 40 </ul>
41 41
42 42 <h2 class="no-link no-border">diff: {file|escape}</h2>
43 43 <h3 class="changeset">{file|escape}</h3>
44 44
45 45 <dl class="overview">
46 46 {branch%filerevbranch}
47 47 <dt>changeset {rev}</dt>
48 48 <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
49 49 {parent%filediffparent}
50 50 {child%filediffchild}
51 51 </dl>
52 52
53 53 <div class="diff">
54 54 {diff}
55 55 </div>
56 56
57 57 {footer}
@@ -1,52 +1,52 b''
1 1 {header}
2 2 <title>{repo|escape}: File revisions</title>
3 3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 5 </head>
6 6
7 7 <body>
8 8 <div id="container">
9 9 <div class="page-header">
10 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revisions</h1>
10 <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / file revisions</h1>
11 11
12 12 <form action="{url}log">
13 13 {sessionvars%hiddenformentry}
14 14 <dl class="search">
15 15 <dt><label>Search: </label></dt>
16 16 <dd><input type="text" name="rev" /></dd>
17 17 </dl>
18 18 </form>
19 19
20 20 <ul class="page-nav">
21 21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 28 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
29 29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 30 </ul>
31 31 </div>
32 32
33 33 <ul class="submenu">
34 34 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
35 35 <li class="current">revisions</li>
36 36 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
37 37 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
38 38 <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
39 39 <li><a href="{url}rss-log/tip/{file|urlescape}">rss</a></li>
40 40 </ul>
41 41
42 42 <h2 class="no-link no-border">{file|urlescape}</h2>
43 43
44 44 <table>
45 45 {entries%filelogentry}
46 46 </table>
47 47
48 48 <div class="page-path">
49 49 {nav%filenav}
50 50 </div>
51 51
52 52 {footer}
@@ -1,66 +1,66 b''
1 1 {header}
2 2 <title>{repo|escape}: {file|escape}@{node|short}</title>
3 3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 5 </head>
6 6
7 7 <body>
8 8 <div id="container">
9 9 <div class="page-header">
10 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revision</h1>
10 <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / file revision</h1>
11 11
12 12 <form action="{url}log">
13 13 {sessionvars%hiddenformentry}
14 14 <dl class="search">
15 15 <dt><label>Search: </label></dt>
16 16 <dd><input type="text" name="rev" /></dd>
17 17 </dl>
18 18 </form>
19 19
20 20 <ul class="page-nav">
21 21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
24 24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 28 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
29 29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 30 </ul>
31 31 </div>
32 32
33 33 <ul class="submenu">
34 34 <li class="current">file</li>
35 35 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
36 36 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
37 37 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
38 38 <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
39 39 <li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li>
40 40 </ul>
41 41
42 42 <h2 class="no-link no-border">{file|escape}@{node|short}</h2>
43 43 <h3 class="changeset">{file|escape}</h3>
44 44 <p class="changeset-age age">{date|rfc822date}</p>
45 45
46 46 <dl class="overview">
47 47 <dt>author</dt>
48 48 <dd>{author|obfuscate}</dd>
49 49 <dt>date</dt>
50 50 <dd>{date|rfc822date}</dd>
51 51 {branch%filerevbranch}
52 52 <dt>changeset {rev}</dt>
53 53 <dd><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
54 54 {parent%filerevparent}
55 55 {child%filerevchild}
56 56 <dt>permissions</dt>
57 57 <dd>{permissions|permissions}</dd>
58 58 </dl>
59 59
60 60 <p class="description">{desc|strip|escape|addbreaks|nonempty}</p>
61 61
62 62 <div class="source">
63 63 {text%fileline}
64 64 </div>
65 65
66 66 {footer}
@@ -1,107 +1,107 b''
1 1 {header}
2 2 <title>{repo|escape}: graph</title>
3 3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 5 <!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]-->
6 6 </head>
7 7
8 8 <body>
9 9 <div id="container">
10 10 <div class="page-header">
11 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / graph</h1>
11 <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / graph</h1>
12 12
13 13 <form action="{url}log">
14 14 {sessionvars%hiddenformentry}
15 15 <dl class="search">
16 16 <dt><label>Search: </label></dt>
17 17 <dd><input type="text" name="rev" /></dd>
18 18 </dl>
19 19 </form>
20 20
21 21 <ul class="page-nav">
22 22 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
23 23 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
24 24 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
25 25 <li class="current">graph</li>
26 26 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
27 27 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
28 28 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
29 29 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
30 30 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
31 31 </ul>
32 32 </div>
33 33
34 34 <h2 class="no-link no-border">graph</h2>
35 35
36 36 <div id="noscript">The revision graph only works with JavaScript-enabled browsers.</div>
37 37 <div id="wrapper">
38 38 <ul id="nodebgs"></ul>
39 39 <canvas id="graph" width="480" height="{canvasheight}"></canvas>
40 40 <ul id="graphnodes"></ul>
41 41 </div>
42 42
43 43 <script>
44 44 <!-- hide script content
45 45
46 46 document.getElementById('noscript').style.display = 'none';
47 47
48 48 var data = {jsdata|json};
49 49 var graph = new Graph();
50 50 graph.scale({bg_height});
51 51
52 52 graph.vertex = function(x, y, color, parity, cur) \{
53 53
54 54 this.ctx.beginPath();
55 55 color = this.setColor(color, 0.25, 0.75);
56 56 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
57 57 this.ctx.fill();
58 58
59 59 var bg = '<li class="bg parity' + parity + '"></li>';
60 60 var left = (this.bg_height - this.box_size) + (this.columns + 1) * this.box_size;
61 61 var nstyle = 'padding-left: ' + left + 'px;';
62 62
63 63 var tagspan = '';
64 64 if (cur[7].length || cur[8].length || (cur[6][0] != 'default' || cur[6][1])) \{
65 65 tagspan = '<span class="logtags">';
66 66 if (cur[6][1]) \{
67 67 tagspan += '<span class="branchtag" title="' + cur[6][0] + '">';
68 68 tagspan += cur[6][0] + '</span> ';
69 69 } else if (!cur[6][1] && cur[6][0] != 'default') \{
70 70 tagspan += '<span class="inbranchtag" title="' + cur[6][0] + '">';
71 71 tagspan += cur[6][0] + '</span> ';
72 72 }
73 73 if (cur[7].length) \{
74 74 for (var t in cur[7]) \{
75 75 var tag = cur[7][t];
76 76 tagspan += '<span class="tagtag">' + tag + '</span> ';
77 77 }
78 78 }
79 79 if (cur[8].length) \{
80 80 for (var t in cur[8]) \{
81 81 var bookmark = cur[8][t];
82 82 tagspan += '<span class="bookmarktag">' + bookmark + '</span> ';
83 83 }
84 84 }
85 85 tagspan += '</span>';
86 86 }
87 87
88 88 var item = '<li style="' + nstyle + '"><span class="desc">';
89 89 item += '<a href="{url}rev/' + cur[0] + '{sessionvars%urlparameter}" title="' + cur[0] + '">' + cur[3] + '</a>';
90 90 item += '</span>' + tagspan + '<span class="info">' + cur[5] + ', by ' + cur[4] + '</span></li>';
91 91
92 92 return [bg, item];
93 93
94 94 }
95 95
96 96 graph.render(data);
97 97
98 98 // stop hiding script -->
99 99 </script>
100 100
101 101 <div class="page-path">
102 102 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
103 103 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
104 104 | {changenav%navgraph}
105 105 </div>
106 106
107 107 {footer}
@@ -1,38 +1,38 b''
1 1 {header}
2 2 <title>{repo|escape}: Branches</title>
3 3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 5 </head>
6 6
7 7 <body>
8 8 <div id="container">
9 9 <div class="page-header">
10 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / help</h1>
10 <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / help</h1>
11 11
12 12 <form action="{url}log">
13 13 {sessionvars%hiddenformentry}
14 14 <dl class="search">
15 15 <dt><label>Search: </label></dt>
16 16 <dd><input type="text" name="rev" /></dd>
17 17 </dl>
18 18 </form>
19 19
20 20 <ul class="page-nav">
21 21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
24 24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
29 29 <li class="current">help</li>
30 30 </ul>
31 31 </div>
32 32
33 33 <h2 class="no-link no-border">branches</h2>
34 34 <pre>
35 35 {doc|escape}
36 36 </pre>
37 37
38 38 {footer}
@@ -1,45 +1,45 b''
1 1 {header}
2 2 <title>{repo|escape}: Branches</title>
3 3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 5 </head>
6 6
7 7 <body>
8 8 <div id="container">
9 9 <div class="page-header">
10 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / help</h1>
10 <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / help</h1>
11 11
12 12 <form action="{url}log">
13 13 {sessionvars%hiddenformentry}
14 14 <dl class="search">
15 15 <dt><label>Search: </label></dt>
16 16 <dd><input type="text" name="rev" /></dd>
17 17 </dl>
18 18 </form>
19 19
20 20 <ul class="page-nav">
21 21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
24 24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 27 <li><a href="{url}help{sessionvars%urlparameter}">branches</a></li>
28 28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
29 29 <li class="current">help</li>
30 30 </ul>
31 31 </div>
32 32
33 33 <h2 class="no-link no-border">branches</h2>
34 34 <table cellspacing="0">
35 35 <tr><td colspan="2"><h2><a name="main" href="#topics">Topics</a></h2></td></tr>
36 36 {topics % helpentry}
37 37
38 38 <tr><td colspan="2"><h2><a name="main" href="#main">Main Commands</a></h2></td></tr>
39 39 {earlycommands % helpentry}
40 40
41 41 <tr><td colspan="2"><h2><a name="other" href="#other">Other Commands</a></h2></td></tr>
42 42 {othercommands % helpentry}
43 43 </table>
44 44
45 45 {footer}
@@ -1,39 +1,39 b''
1 1 {header}
2 2 <title>{repo|escape}: Mercurial repositories index</title>
3 3 </head>
4 4
5 5 <body>
6 6 <div id="container">
7 7 <div class="page-header">
8 <h1>Mercurial Repositories</h1>
8 <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h1>
9 9 <ul class="page-nav">
10 10 </ul>
11 11 </div>
12 12
13 13 <table cellspacing="0">
14 14 <tr>
15 15 <td><a href="?sort={sort_name}">Name</a></td>
16 16 <td><a href="?sort={sort_description}">Description</a></td>
17 17 <td><a href="?sort={sort_contact}">Contact</a></td>
18 18 <td><a href="?sort={sort_lastchange}">Last modified</a></td>
19 19 <td>&nbsp;</td>
20 20 <td>&nbsp;</td>
21 21 </tr>
22 22 {entries%indexentry}
23 23 </table>
24 24 <div class="page-footer">
25 25 {motd}
26 26 </div>
27 27
28 28 <div id="powered-by">
29 29 <p><a href="{logourl}" title="Mercurial"><img src="{staticurl}{logoimg}" width=75 height=90 border=0 alt="mercurial"></a></p>
30 30 </div>
31 31
32 32 <div id="corner-top-left"></div>
33 33 <div id="corner-top-right"></div>
34 34 <div id="corner-bottom-left"></div>
35 35 <div id="corner-bottom-right"></div>
36 36
37 37 </div>
38 38 </body>
39 39 </html>
@@ -1,53 +1,53 b''
1 1 {header}
2 2 <title>{repo|escape}: files</title>
3 3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 5 </head>
6 6
7 7 <body>
8 8 <div id="container">
9 9 <div class="page-header">
10 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / files</h1>
10 <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / files</h1>
11 11
12 12 <form action="{url}log">
13 13 {sessionvars%hiddenformentry}
14 14 <dl class="search">
15 15 <dt><label>Search: </label></dt>
16 16 <dd><input type="text" name="rev" /></dd>
17 17 </dl>
18 18 </form>
19 19
20 20 <ul class="page-nav">
21 21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
24 24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 28 <li class="current">files</li>
29 29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 30 </ul>
31 31 </div>
32 32
33 33 <ul class="submenu">
34 34 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> {archives%archiveentry}</li>
35 35 {archives%archiveentry}
36 36 </ul>
37 37
38 38 <h2 class="no-link no-border">files</h2>
39 39 <p class="files">{path|escape} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span></p>
40 40
41 41 <table>
42 42 <tr class="parity{upparity}">
43 43 <td>drwxr-xr-x</td>
44 44 <td></td>
45 45 <td></td>
46 46 <td><a href="{url}file/{node|short}{up|urlescape}{sessionvars%urlparameter}">[up]</a></td>
47 47 <td class="link">&nbsp;</td>
48 48 </tr>
49 49 {dentries%direntry}
50 50 {fentries%fileentry}
51 51 </table>
52 52
53 53 {footer}
@@ -1,261 +1,262 b''
1 1 default = 'summary'
2 2 mimetype = 'text/html; charset={encoding}'
3 3 header = header.tmpl
4 4 footer = footer.tmpl
5 5 search = search.tmpl
6 6 changelog = changelog.tmpl
7 7 summary = summary.tmpl
8 8 error = error.tmpl
9 9 notfound = notfound.tmpl
10 10
11 11 help = help.tmpl
12 12 helptopics = helptopics.tmpl
13 13
14 14 helpentry = '<tr><td><a href="{url}help/{topic|escape}{sessionvars%urlparameter}">{topic|escape}</a></td><td>{summary|escape}</td></tr>'
15 15
16 16 naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
17 17 navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
18 18 navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
19 19 filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a>'
20 20 filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
21 21 filenodelink = '
22 22 <tr class="parity{parity}">
23 23 <td><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
24 24 <td></td>
25 25 <td>
26 26 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
27 27 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
28 28 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
29 29 <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
30 30 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
31 31 </td>
32 32 </tr>'
33 33 filenolink = '
34 34 <tr class="parity{parity}">
35 35 <td><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
36 36 <td></td>
37 37 <td>
38 38 file |
39 39 annotate |
40 40 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
41 41 <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
42 42 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
43 43 </td>
44 44 </tr>'
45 45
46 46 nav = '{before%naventry} {after%naventry}'
47 47 navshort = '{before%navshortentry}{after%navshortentry}'
48 48 navgraph = '{before%navgraphentry}{after%navgraphentry}'
49 49 filenav = '{before%filenaventry}{after%filenaventry}'
50 50
51 51 fileellipses = '...'
52 52 changelogentry = changelogentry.tmpl
53 53 searchentry = changelogentry.tmpl
54 54 changeset = changeset.tmpl
55 55 manifest = manifest.tmpl
56 56 direntry = '
57 57 <tr class="parity{parity}">
58 58 <td>drwxr-xr-x</td>
59 59 <td></td>
60 60 <td></td>
61 61 <td><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a></td>
62 62 <td><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></td>
63 63 </tr>'
64 64 fileentry = '
65 65 <tr class="parity{parity}">
66 66 <td>{permissions|permissions}</td>
67 67 <td>{date|isodate}</td>
68 68 <td>{size}</td>
69 69 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a></td>
70 70 <td>
71 71 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
72 72 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
73 73 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
74 74 </td>
75 75 </tr>'
76 76 filerevision = filerevision.tmpl
77 77 fileannotate = fileannotate.tmpl
78 78 filediff = filediff.tmpl
79 79 filecomparison = filecomparison.tmpl
80 80 filelog = filelog.tmpl
81 81 fileline = '
82 82 <div style="font-family:monospace" class="parity{parity}">
83 83 <pre><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</pre>
84 84 </div>'
85 85 annotateline = '
86 86 <tr class="parity{parity}">
87 87 <td class="linenr">
88 88 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"
89 89 title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
90 90 </td>
91 91 <td class="lineno">
92 92 <a href="#{lineid}" id="{lineid}">{linenumber}</a>
93 93 </td>
94 94 <td class="source">{line|escape}</td>
95 95 </tr>'
96 96 difflineplus = '<span style="color:#008800;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
97 97 difflineminus = '<span style="color:#cc0000;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
98 98 difflineat = '<span style="color:#990099;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
99 99 diffline = '<span><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
100 100
101 101 comparisonblock ='
102 102 <tbody class="block">
103 103 {lines}
104 104 </tbody>'
105 105 comparisonline = '
106 106 <tr>
107 107 <td class="source {type}"><a class="linenr" href="#{lineid}" id="{lineid}">{leftlinenumber}</a> {leftline|escape}</td>
108 108 <td class="source {type}"><a class="linenr" href="#{lineid}" id="{lineid}">{rightlinenumber}</a> {rightline|escape}</td>
109 109 </tr>'
110 110
111 111 changelogparent = '
112 112 <tr>
113 113 <th class="parent">parent {rev}:</th>
114 114 <td class="parent">
115 115 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
116 116 </td>
117 117 </tr>'
118 118 changesetbranch = '<dt>branch</dt><dd>{name}</dd>'
119 119 changesetparent = '
120 120 <dt>parent {rev}</dt>
121 121 <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>'
122 122 filerevbranch = '<dt>branch</dt><dd>{name}</dd>'
123 123 filerevparent = '
124 124 <dt>parent {rev}</dt>
125 125 <dd>
126 126 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
127 127 {rename%filerename}{node|short}
128 128 </a>
129 129 </dd>'
130 130 filerename = '{file|escape}@'
131 131 filelogrename = '| <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>'
132 132 fileannotateparent = '
133 133 <dt>parent {rev}</dt>
134 134 <dd>
135 135 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
136 136 {rename%filerename}{node|short}
137 137 </a>
138 138 </dd>'
139 139 changelogchild = '
140 140 <dt>child {rev}:</dt>
141 141 <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>'
142 142 changesetchild = '
143 143 <dt>child {rev}</dt>
144 144 <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>'
145 145 filerevchild = '
146 146 <dt>child {rev}</dt>
147 147 <dd>
148 148 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
149 149 </dd>'
150 150 fileannotatechild = '
151 151 <dt>child {rev}</dt>
152 152 <dd>
153 153 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
154 154 </dd>'
155 155 tags = tags.tmpl
156 156 tagentry = '
157 157 <tr class="parity{parity}">
158 158 <td class="nowrap age">{date|rfc822date}</td>
159 159 <td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{tag|escape}</a></td>
160 160 <td class="nowrap">
161 161 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
162 162 <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
163 163 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
164 164 </td>
165 165 </tr>'
166 166 bookmarks = bookmarks.tmpl
167 167 bookmarkentry = '
168 168 <tr class="parity{parity}">
169 169 <td class="nowrap date">{date|rfc822date}</td>
170 170 <td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{bookmark|escape}</a></td>
171 171 <td class="nowrap">
172 172 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
173 173 <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
174 174 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
175 175 </td>
176 176 </tr>'
177 177 branches = branches.tmpl
178 178 branchentry = '
179 179 <tr class="parity{parity}">
180 180 <td class="nowrap age">{date|rfc822date}</td>
181 181 <td><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
182 182 <td class="{status}">{branch|escape}</td>
183 183 <td class="nowrap">
184 184 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
185 185 <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
186 186 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
187 187 </td>
188 188 </tr>'
189 189 diffblock = '<pre>{lines}</pre>'
190 190 filediffparent = '
191 191 <dt>parent {rev}</dt>
192 192 <dd><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
193 193 filecompparent = '
194 194 <dt>parent {rev}</dt>
195 195 <dd><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
196 196 filelogparent = '
197 197 <tr>
198 198 <td align="right">parent {rev}:&nbsp;</td>
199 199 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
200 200 </tr>'
201 201 filediffchild = '
202 202 <dt>child {rev}</dt>
203 203 <dd><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
204 204 filecompchild = '
205 205 <dt>child {rev}</dt>
206 206 <dd><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
207 207 filelogchild = '
208 208 <tr>
209 209 <td align="right">child {rev}:&nbsp;</td>
210 210 <td><a href="{url}file{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
211 211 </tr>'
212 212 shortlog = shortlog.tmpl
213 213 tagtag = '<span class="tagtag" title="{name}">{name}</span> '
214 214 branchtag = '<span class="branchtag" title="{name}">{name}</span> '
215 215 inbranchtag = '<span class="inbranchtag" title="{name}">{name}</span> '
216 216 bookmarktag = '<span class="bookmarktag" title="{name}">{name}</span> '
217 217 shortlogentry = '
218 218 <tr class="parity{parity}">
219 219 <td class="nowrap age">{date|rfc822date}</td>
220 220 <td>{author|person}</td>
221 221 <td>
222 222 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
223 223 {desc|strip|firstline|escape|nonempty}
224 224 <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>
225 225 </a>
226 226 </td>
227 227 <td class="nowrap">
228 228 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
229 229 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
230 230 </td>
231 231 </tr>'
232 232 filelogentry = '
233 233 <tr class="parity{parity}">
234 234 <td class="nowrap age">{date|rfc822date}</td>
235 235 <td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a></td>
236 236 <td class="nowrap">
237 237 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a>&nbsp;|&nbsp;<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>&nbsp;|&nbsp;<a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
238 238 {rename%filelogrename}
239 239 </td>
240 240 </tr>'
241 241 archiveentry = '<li><a href="{url}archive/{node|short}{extension}">{type|escape}</a></li>'
242 242 indexentry = '
243 243 <tr class="parity{parity}">
244 244 <td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td>
245 245 <td>{description}</td>
246 246 <td>{contact|obfuscate}</td>
247 247 <td class="age">{lastchange|rfc822date}</td>
248 248 <td class="indexlinks">{archives%indexarchiveentry}</td>
249 249 <td>
250 250 {if(isdirectory, '',
251 251 '<div class="rss_logo">
252 252 <a href="{url}rss-log">RSS</a> <a href="{url}atom-log">Atom</a>
253 253 </div>'
254 254 )}
255 255 </td>
256 256 </tr>\n'
257 257 indexarchiveentry = '<a href="{url}archive/{node|short}{extension}">{type|escape}</a> '
258 258 index = index.tmpl
259 259 urlparameter = '{separator}{name}={value|urlescape}'
260 260 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
261 261 graph = graph.tmpl
262 breadcrumb = '&gt; <a href="{url}">{name}</a> '
@@ -1,37 +1,37 b''
1 1 {header}
2 2 <title>{repo|escape}: Mercurial repository not found</title>
3 3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 5 </head>
6 6
7 7 <body>
8 8 <div id="container">
9 9 <div class="page-header">
10 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / not found: {repo|escape}</h1>
10 <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / not found: {repo|escape}</h1>
11 11
12 12 <form action="{url}log">
13 13 {sessionvars%hiddenformentry}
14 14 <dl class="search">
15 15 <dt><label>Search: </label></dt>
16 16 <dd><input type="text" name="rev" /></dd>
17 17 </dl>
18 18 </form>
19 19
20 20 <ul class="page-nav">
21 21 <li class="current">summary</li>
22 22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}</li>
29 29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 30 </ul>
31 31 </div>
32 32
33 33 <h2 class="no-link no-border">Not Found</h2>
34 34 <p class="normal">The specified repository "{repo|escape}" is unknown, sorry.</p>
35 35 <p class="normal">Please go back to the <a href="{url}">main repository list page</a>.</p>
36 36
37 37 {footer}
@@ -1,36 +1,36 b''
1 1 {header}
2 2 <title>{repo|escape}: Search</title>
3 3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 5 </head>
6 6
7 7 <body>
8 8 <div id="container">
9 9 <div class="page-header">
10 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / search</h1>
10 <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / search</h1>
11 11
12 12 <form action="{url}log">
13 13 {sessionvars%hiddenformentry}
14 14 <dl class="search">
15 15 <dt><label>Search: </label></dt>
16 16 <dd><input type="text" name="rev" value="{query|escape}" /></dd>
17 17 </dl>
18 18 </form>
19 19
20 20 <ul class="page-nav">
21 21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}
29 29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 30 </ul>
31 31 </div>
32 32
33 33 <h2 class="no-link no-border">searching for {query|escape}</h2>
34 34 {entries}
35 35
36 36 {footer}
@@ -1,44 +1,44 b''
1 1 {header}
2 2 <title>{repo|escape}: shortlog</title>
3 3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 5 </head>
6 6
7 7 <body>
8 8 <div id="container">
9 9 <div class="page-header">
10 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / shortlog</h1>
10 <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / shortlog</h1>
11 11
12 12 <form action="{url}log">
13 13 {sessionvars%hiddenformentry}
14 14 <dl class="search">
15 15 <dt><label>Search: </label></dt>
16 16 <dd><input type="text" name="rev" /></dd>
17 17 </dl>
18 18 </form>
19 19
20 20 <ul class="page-nav">
21 21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 22 <li class="current">shortlog</li>
23 23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
29 29 {archives%archiveentry}
30 30 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
31 31 </ul>
32 32 </div>
33 33
34 34 <h2 class="no-link no-border">shortlog</h2>
35 35
36 36 <table>
37 37 {entries%shortlogentry}
38 38 </table>
39 39
40 40 <div class="page-path">
41 41 {changenav%navshort}
42 42 </div>
43 43
44 44 {footer}
@@ -1,76 +1,76 b''
1 1 {header}
2 2 <title>{repo|escape}: Summary</title>
3 3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 5 </head>
6 6
7 7 <body>
8 8 <div id="container">
9 9 <div class="page-header">
10 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / summary</h1>
10 <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / summary</h1>
11 11
12 12 <form action="{url}log">
13 13 {sessionvars%hiddenformentry}
14 14 <dl class="search">
15 15 <dt><label>Search: </label></dt>
16 16 <dd><input type="text" name="rev" /></dd>
17 17 </dl>
18 18 </form>
19 19
20 20 <ul class="page-nav">
21 21 <li class="current">summary</li>
22 22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
29 29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 30 </ul>
31 31 </div>
32 32
33 33 <h2 class="no-link no-border">Mercurial Repository Overview</h2>
34 34 <dl class="overview">
35 35 <dt>name</dt>
36 36 <dd>{repo|escape}</dd>
37 37 <dt>description</dt>
38 38 <dd>{desc}</dd>
39 39 <dt>owner</dt>
40 40 <dd>{owner|obfuscate}</dd>
41 41 <dt>last change</dt>
42 42 <dd>{lastchange|rfc822date}</dd>
43 43 </dl>
44 44
45 45 <h2><a href="{url}shortlog{sessionvars%urlparameter}">Changes</a></h2>
46 46 <table>
47 47 {shortlog}
48 48 <tr class="light">
49 49 <td colspan="4"><a class="list" href="{url}shortlog{sessionvars%urlparameter}">...</a></td>
50 50 </tr>
51 51 </table>
52 52
53 53 <h2><a href="{url}tags{sessionvars%urlparameter}">Tags</a></h2>
54 54 <table>
55 55 {tags}
56 56 <tr class="light">
57 57 <td colspan="3"><a class="list" href="{url}tags{sessionvars%urlparameter}">...</a></td>
58 58 </tr>
59 59 </table>
60 60
61 61 <h2><a href="{url}bookmarks{sessionvars%urlparameter}">Bookmarks</a></h2>
62 62 <table>
63 63 {bookmarks%bookmarkentry}
64 64 <tr class="light">
65 65 <td colspan="3"><a class="list" href="{url}bookmarks{sessionvars%urlparameter}">...</a></td>
66 66 </tr>
67 67 </table>
68 68
69 69 <h2 class="no-link">Branches</h2>
70 70 <table>
71 71 {branches%branchentry}
72 72 <tr class="light">
73 73 <td colspan="4"><a class="list" href="#">...</a></td>
74 74 </tr>
75 75 </table>
76 76 {footer}
@@ -1,38 +1,38 b''
1 1 {header}
2 2 <title>{repo|escape}: Tags</title>
3 3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 5 </head>
6 6
7 7 <body>
8 8 <div id="container">
9 9 <div class="page-header">
10 <h1><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / tags</h1>
10 <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / tags</h1>
11 11
12 12 <form action="{url}log">
13 13 {sessionvars%hiddenformentry}
14 14 <dl class="search">
15 15 <dt><label>Search: </label></dt>
16 16 <dd><input type="text" name="rev" /></dd>
17 17 </dl>
18 18 </form>
19 19
20 20 <ul class="page-nav">
21 21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
24 24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 25 <li class="current">tags</li>
26 26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
29 29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 30 </ul>
31 31 </div>
32 32
33 33 <h2 class="no-link no-border">tags</h2>
34 34 <table cellspacing="0">
35 35 {entries%tagentry}
36 36 </table>
37 37
38 38 {footer}
@@ -1,55 +1,55 b''
1 1 {header}
2 2 <title>{repo|escape}: bookmarks</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url}atom-bookmarks" title="Atom feed for {repo|escape}: bookmarks" />
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url}rss-bookmarks" title="RSS feed for {repo|escape}: bookmarks" />
7 7 </head>
8 8 <body>
9 9
10 10 <div class="container">
11 11 <div class="menu">
12 12 <div class="logo">
13 13 <a href="{logourl}">
14 14 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
15 15 </div>
16 16 <ul>
17 17 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
18 18 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
19 19 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
20 20 <li class="active">bookmarks</li>
21 21 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
22 22 </ul>
23 23 <ul>
24 24 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
25 25 </ul>
26 26 <p>
27 27 <div class="atom-logo">
28 28 <a href="{url}atom-bookmarks" title="subscribe to atom feed">
29 29 <img class="atom-logo" src="{staticurl}feed-icon-14x14.png" alt="atom feed">
30 30 </a>
31 31 </div>
32 32 </div>
33 33
34 34 <div class="main">
35 <h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
35 <h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
36 36 <h3>bookmarks</h3>
37 37
38 38 <form class="search" action="{url}log">
39 39 {sessionvars%hiddenformentry}
40 40 <p><input name="rev" id="search1" type="text" size="30" /></p>
41 41 <div id="hint">find changesets by author, revision,
42 42 files, or words in the commit message</div>
43 43 </form>
44 44
45 45 <table class="bigtable">
46 46 <tr>
47 47 <th>bookmark</th>
48 48 <th>node</th>
49 49 </tr>
50 50 {entries%bookmarkentry}
51 51 </table>
52 52 </div>
53 53 </div>
54 54
55 55 {footer}
@@ -1,66 +1,66 b''
1 1 {header}
2 2 <title>{repo|escape}: branches</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url}atom-branches" title="Atom feed for {repo|escape}: branches" />
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url}rss-branches" title="RSS feed for {repo|escape}: branches" />
7 7 </head>
8 8 <body>
9 9
10 10 <div class="container">
11 11 <div class="menu">
12 12 <div class="logo">
13 13 <a href="{logourl}">
14 14 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
15 15 </div>
16 16 <ul>
17 17 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
18 18 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
19 19 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
20 20 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
21 21 <li class="active">branches</li>
22 22 </ul>
23 23 <ul>
24 24 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
25 25 </ul>
26 26 <p>
27 27 <div class="atom-logo">
28 28 <a href="{url}atom-branches" title="subscribe to atom feed">
29 29 <img class="atom-logo" src="{staticurl}feed-icon-14x14.png" alt="atom feed">
30 30 </a>
31 31 </div>
32 32 </div>
33 33
34 34 <div class="main">
35 <h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
35 <h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
36 36 <h3>branches</h3>
37 37
38 38 <form class="search" action="{url}log">
39 39 {sessionvars%hiddenformentry}
40 40 <p><input name="rev" id="search1" type="text" size="30" /></p>
41 41 <div id="hint">find changesets by author, revision,
42 42 files, or words in the commit message</div>
43 43 </form>
44 44
45 45 <table class="bigtable">
46 46 <tr>
47 47 <th>branch</th>
48 48 <th>node</th>
49 49 </tr>
50 50 {entries %
51 51 ' <tr class="tagEntry parity{parity}">
52 52 <td>
53 53 <a href="{url}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">
54 54 {branch|escape}
55 55 </a>
56 56 </td>
57 57 <td class="node">
58 58 {node|short}
59 59 </td>
60 60 </tr>'
61 61 }
62 62 </table>
63 63 </div>
64 64 </div>
65 65
66 66 {footer}
@@ -1,95 +1,95 b''
1 1 {header}
2 2 <title>{repo|escape}: {node|short}</title>
3 3 </head>
4 4 <body>
5 5 <div class="container">
6 6 <div class="menu">
7 7 <div class="logo">
8 8 <a href="{logourl}">
9 9 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
10 10 </div>
11 11 <ul>
12 12 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
13 13 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
14 14 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
15 15 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
16 16 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
17 17 </ul>
18 18 <ul>
19 19 <li class="active">changeset</li>
20 20 <li><a href="{url}raw-rev/{node|short}{sessionvars%urlparameter}">raw</a></li>
21 21 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">browse</a></li>
22 22 </ul>
23 23 <ul>
24 24 {archives%archiveentry}
25 25 </ul>
26 26 <ul>
27 27 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
28 28 </ul>
29 29 </div>
30 30
31 31 <div class="main">
32 32
33 <h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
33 <h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
34 34 <h3>changeset {rev}:{node|short} {changesetbranch%changelogbranchname} {changesettag} {changesetbookmark}</h3>
35 35
36 36 <form class="search" action="{url}log">
37 37 {sessionvars%hiddenformentry}
38 38 <p><input name="rev" id="search1" type="text" size="30" /></p>
39 39 <div id="hint">find changesets by author, revision,
40 40 files, or words in the commit message</div>
41 41 </form>
42 42
43 43 <div class="description">{desc|strip|escape|nonempty}</div>
44 44
45 45 <table id="changesetEntry">
46 46 <tr>
47 47 <th class="author">author</th>
48 48 <td class="author">{author|obfuscate}</td>
49 49 </tr>
50 50 <tr>
51 51 <th class="date">date</th>
52 52 <td class="date age">{date|rfc822date}</td></tr>
53 53 <tr>
54 54 <th class="author">parents</th>
55 55 <td class="author">{parent%changesetparent}</td>
56 56 </tr>
57 57 <tr>
58 58 <th class="author">children</th>
59 59 <td class="author">{child%changesetchild}</td>
60 60 </tr>
61 61 <tr>
62 62 <th class="files">files</th>
63 63 <td class="files">{files}</td>
64 64 </tr>
65 65 <tr>
66 66 <th class="diffstat">diffstat</th>
67 67 <td class="diffstat">
68 68 {diffsummary}
69 69 <a id="diffstatexpand" href="javascript:showDiffstat()"/>[<tt>+</tt>]</a>
70 70 <div id="diffstatdetails" style="display:none;">
71 71 <a href="javascript:hideDiffstat()"/>[<tt>-</tt>]</a>
72 72 <p>
73 73 <table>{diffstat}</table>
74 74 </div>
75 75 </td>
76 76 </tr>
77 77 <tr>
78 78 <th class="author">change baseline</th>
79 79 <td class="author">{parent%changesetbaseline}</td>
80 80 </tr>
81 81 <tr>
82 82 <th class="author">current baseline</th>
83 83 <td class="author"><a href="{url}rev/{currentbaseline|short}{sessionvars%urlparameter}">{currentbaseline|short}</a></td>
84 84 </tr>
85 85 </table>
86 86
87 87 <div class="overflow">
88 88 <div class="sourcefirst"> line diff</div>
89 89
90 90 {diff}
91 91 </div>
92 92
93 93 </div>
94 94 </div>
95 95 {footer}
@@ -1,47 +1,47 b''
1 1 {header}
2 2 <title>{repo|escape}: error</title>
3 3 </head>
4 4 <body>
5 5
6 6 <div class="container">
7 7 <div class="menu">
8 8 <div class="logo">
9 9 <a href="{logourl}">
10 10 <img src="{staticurl}{logoimg}" width=75 height=90 border=0 alt="mercurial" /></a>
11 11 </div>
12 12 <ul>
13 13 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
14 14 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
15 15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
16 16 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
17 17 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
18 18 </ul>
19 19 <ul>
20 20 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
21 21 </ul>
22 22 </div>
23 23
24 24 <div class="main">
25 25
26 <h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
26 <h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
27 27 <h3>error</h3>
28 28
29 29 <form class="search" action="{url}log">
30 30 {sessionvars%hiddenformentry}
31 31 <p><input name="rev" id="search1" type="text" size="30"></p>
32 32 <div id="hint">find changesets by author, revision,
33 33 files, or words in the commit message</div>
34 34 </form>
35 35
36 36 <div class="description">
37 37 <p>
38 38 An error occurred while processing your request:
39 39 </p>
40 40 <p>
41 41 {error|escape}
42 42 </p>
43 43 </div>
44 44 </div>
45 45 </div>
46 46
47 47 {footer}
@@ -1,83 +1,83 b''
1 1 {header}
2 2 <title>{repo|escape}: {file|escape} annotate</title>
3 3 </head>
4 4 <body>
5 5
6 6 <div class="container">
7 7 <div class="menu">
8 8 <div class="logo">
9 9 <a href="{logourl}">
10 10 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
11 11 </div>
12 12 <ul>
13 13 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
14 14 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
15 15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
16 16 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
17 17 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
18 18 </ul>
19 19
20 20 <ul>
21 21 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
22 22 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
23 23 </ul>
24 24 <ul>
25 25 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
26 26 <li><a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li>
27 27 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
28 28 <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
29 29 <li class="active">annotate</li>
30 30 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li>
31 31 <li><a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a></li>
32 32 </ul>
33 33 <ul>
34 34 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
35 35 </ul>
36 36 </div>
37 37
38 38 <div class="main">
39 <h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
39 <h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
40 40 <h3>annotate {file|escape} @ {rev}:{node|short}</h3>
41 41
42 42 <form class="search" action="{url}log">
43 43 {sessionvars%hiddenformentry}
44 44 <p><input name="rev" id="search1" type="text" size="30" /></p>
45 45 <div id="hint">find changesets by author, revision,
46 46 files, or words in the commit message</div>
47 47 </form>
48 48
49 49 <div class="description">{desc|strip|escape|nonempty}</div>
50 50
51 51 <table id="changesetEntry">
52 52 <tr>
53 53 <th class="author">author</th>
54 54 <td class="author">{author|obfuscate}</td>
55 55 </tr>
56 56 <tr>
57 57 <th class="date">date</th>
58 58 <td class="date age">{date|rfc822date}</td>
59 59 </tr>
60 60 <tr>
61 61 <th class="author">parents</th>
62 62 <td class="author">{parent%filerevparent}</td>
63 63 </tr>
64 64 <tr>
65 65 <th class="author">children</th>
66 66 <td class="author">{child%filerevchild}</td>
67 67 </tr>
68 68 {changesettag}
69 69 </table>
70 70
71 71 <div class="overflow">
72 72 <table class="bigtable">
73 73 <tr>
74 74 <th class="annotate">rev</th>
75 75 <th class="line">&nbsp;&nbsp;line source</th>
76 76 </tr>
77 77 {annotate%annotateline}
78 78 </table>
79 79 </div>
80 80 </div>
81 81 </div>
82 82
83 83 {footer}
@@ -1,93 +1,93 b''
1 1 {header}
2 2 <title>{repo|escape}: {file|escape} comparison</title>
3 3 </head>
4 4 <body>
5 5
6 6 <div class="container">
7 7 <div class="menu">
8 8 <div class="logo">
9 9 <a href="{logourl}">
10 10 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
11 11 </div>
12 12 <ul>
13 13 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
14 14 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
15 15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
16 16 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
17 17 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
18 18 </ul>
19 19 <ul>
20 20 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
21 21 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
22 22 </ul>
23 23 <ul>
24 24 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
25 25 <li><a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li>
26 26 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
27 27 <li class="active">comparison</li>
28 28 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
29 29 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li>
30 30 <li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li>
31 31 </ul>
32 32 <ul>
33 33 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
34 34 </ul>
35 35 </div>
36 36
37 37 <div class="main">
38 <h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
38 <h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
39 39 <h3>comparison {file|escape} @ {rev}:{node|short}</h3>
40 40
41 41 <form class="search" action="{url}log">
42 42 <p>{sessionvars%hiddenformentry}</p>
43 43 <p><input name="rev" id="search1" type="text" size="30" /></p>
44 44 <div id="hint">find changesets by author, revision,
45 45 files, or words in the commit message</div>
46 46 </form>
47 47
48 48 <div class="description">{desc|strip|escape|nonempty}</div>
49 49
50 50 <table id="changesetEntry">
51 51 <tr>
52 52 <th>author</th>
53 53 <td>{author|obfuscate}</td>
54 54 </tr>
55 55 <tr>
56 56 <th>date</th>
57 57 <td class="date age">{date|rfc822date}</td>
58 58 </tr>
59 59 <tr>
60 60 <th>parents</th>
61 61 <td>{parent%filerevparent}</td>
62 62 </tr>
63 63 <tr>
64 64 <th>children</th>
65 65 <td>{child%filerevchild}</td>
66 66 </tr>
67 67 {changesettag}
68 68 </table>
69 69
70 70 <div class="overflow">
71 71 <div class="sourcefirst"> comparison</div>
72 72 <div class="legend">
73 73 <span class="legendinfo equal">equal</span>
74 74 <span class="legendinfo delete">deleted</span>
75 75 <span class="legendinfo insert">inserted</span>
76 76 <span class="legendinfo replace">replaced</span>
77 77 </div>
78 78
79 79 <table class="bigtable">
80 80 <thead class="header">
81 81 <tr>
82 82 <th>{leftrev}:{leftnode|short}</th>
83 83 <th>{rightrev}:{rightnode|short}</th>
84 84 </tr>
85 85 </thead>
86 86 {comparison}
87 87 </table>
88 88
89 89 </div>
90 90 </div>
91 91 </div>
92 92
93 93 {footer}
@@ -1,78 +1,78 b''
1 1 {header}
2 2 <title>{repo|escape}: {file|escape} diff</title>
3 3 </head>
4 4 <body>
5 5
6 6 <div class="container">
7 7 <div class="menu">
8 8 <div class="logo">
9 9 <a href="{logourl}">
10 10 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
11 11 </div>
12 12 <ul>
13 13 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
14 14 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
15 15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
16 16 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
17 17 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
18 18 </ul>
19 19 <ul>
20 20 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
21 21 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
22 22 </ul>
23 23 <ul>
24 24 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
25 25 <li><a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li>
26 26 <li class="active">diff</li>
27 27 <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
28 28 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
29 29 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li>
30 30 <li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li>
31 31 </ul>
32 32 <ul>
33 33 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
34 34 </ul>
35 35 </div>
36 36
37 37 <div class="main">
38 <h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
38 <h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
39 39 <h3>diff {file|escape} @ {rev}:{node|short}</h3>
40 40
41 41 <form class="search" action="{url}log">
42 42 <p>{sessionvars%hiddenformentry}</p>
43 43 <p><input name="rev" id="search1" type="text" size="30" /></p>
44 44 <div id="hint">find changesets by author, revision,
45 45 files, or words in the commit message</div>
46 46 </form>
47 47
48 48 <div class="description">{desc|strip|escape|nonempty}</div>
49 49
50 50 <table id="changesetEntry">
51 51 <tr>
52 52 <th>author</th>
53 53 <td>{author|obfuscate}</td>
54 54 </tr>
55 55 <tr>
56 56 <th>date</th>
57 57 <td class="date age">{date|rfc822date}</td>
58 58 </tr>
59 59 <tr>
60 60 <th>parents</th>
61 61 <td>{parent%filerevparent}</td>
62 62 </tr>
63 63 <tr>
64 64 <th>children</th>
65 65 <td>{child%filerevchild}</td>
66 66 </tr>
67 67 {changesettag}
68 68 </table>
69 69
70 70 <div class="overflow">
71 71 <div class="sourcefirst"> line diff</div>
72 72
73 73 {diff}
74 74 </div>
75 75 </div>
76 76 </div>
77 77
78 78 {footer}
@@ -1,79 +1,79 b''
1 1 {header}
2 2 <title>{repo|escape}: {file|escape} history</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url}atom-log/tip/{file|urlescape}" title="Atom feed for {repo|escape}:{file}" />
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url}rss-log/tip/{file|urlescape}" title="RSS feed for {repo|escape}:{file}" />
7 7 </head>
8 8 <body>
9 9
10 10 <div class="container">
11 11 <div class="menu">
12 12 <div class="logo">
13 13 <a href="{logourl}">
14 14 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
15 15 </div>
16 16 <ul>
17 17 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
18 18 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
19 19 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
20 20 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
21 21 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
22 22 </ul>
23 23 <ul>
24 24 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
25 25 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
26 26 </ul>
27 27 <ul>
28 28 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
29 29 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
30 30 <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
31 31 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
32 32 <li class="active">file log</li>
33 33 <li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li>
34 34 </ul>
35 35 <ul>
36 36 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
37 37 </ul>
38 38 <p>
39 39 <div class="atom-logo">
40 40 <a href="{url}atom-log/{node|short}/{file|urlescape}" title="subscribe to atom feed">
41 41 <img class="atom-logo" src="{staticurl}feed-icon-14x14.png" alt="atom feed"></a>
42 42 </div>
43 43 </div>
44 44
45 45 <div class="main">
46 <h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
46 <h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
47 47 <h3>log {file|escape}</h3>
48 48
49 49 <form class="search" action="{url}log">
50 50 {sessionvars%hiddenformentry}
51 51 <p><input name="rev" id="search1" type="text" size="30" /></p>
52 52 <div id="hint">find changesets by author, revision,
53 53 files, or words in the commit message</div>
54 54 </form>
55 55
56 56 <div class="navigate">
57 57 <a href="{url}log/{node|short}/{file|urlescape}{lessvars%urlparameter}">less</a>
58 58 <a href="{url}log/{node|short}/{file|urlescape}{morevars%urlparameter}">more</a>
59 59 | {nav%filenav}</div>
60 60
61 61 <table class="bigtable">
62 62 <tr>
63 63 <th class="age">age</th>
64 64 <th class="author">author</th>
65 65 <th class="description">description</th>
66 66 </tr>
67 67 {entries%filelogentry}
68 68 </table>
69 69
70 70 <div class="navigate">
71 71 <a href="{url}log/{node|short}/{file|urlescape}{lessvars%urlparameter}">less</a>
72 72 <a href="{url}log/{node|short}/{file|urlescape}{morevars%urlparameter}">more</a>
73 73 | {nav%filenav}
74 74 </div>
75 75
76 76 </div>
77 77 </div>
78 78
79 79 {footer}
@@ -1,77 +1,77 b''
1 1 {header}
2 2 <title>{repo|escape}: {node|short} {file|escape}</title>
3 3 </head>
4 4 <body>
5 5
6 6 <div class="container">
7 7 <div class="menu">
8 8 <div class="logo">
9 9 <a href="{logourl}">
10 10 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
11 11 </div>
12 12 <ul>
13 13 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
14 14 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
15 15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
16 16 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
17 17 </ul>
18 18 <ul>
19 19 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
20 20 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
21 21 </ul>
22 22 <ul>
23 23 <li class="active">file</li>
24 24 <li><a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li>
25 25 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
26 26 <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
27 27 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
28 28 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li>
29 29 <li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li>
30 30 </ul>
31 31 <ul>
32 32 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
33 33 </ul>
34 34 </div>
35 35
36 36 <div class="main">
37 <h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
37 <h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
38 38 <h3>view {file|escape} @ {rev}:{node|short}</h3>
39 39
40 40 <form class="search" action="{url}log">
41 41 {sessionvars%hiddenformentry}
42 42 <p><input name="rev" id="search1" type="text" size="30" /></p>
43 43 <div id="hint">find changesets by author, revision,
44 44 files, or words in the commit message</div>
45 45 </form>
46 46
47 47 <div class="description">{desc|strip|escape|nonempty}</div>
48 48
49 49 <table id="changesetEntry">
50 50 <tr>
51 51 <th class="author">author</th>
52 52 <td class="author">{author|obfuscate}</td>
53 53 </tr>
54 54 <tr>
55 55 <th class="date">date</th>
56 56 <td class="date age">{date|rfc822date}</td>
57 57 </tr>
58 58 <tr>
59 59 <th class="author">parents</th>
60 60 <td class="author">{parent%filerevparent}</td>
61 61 </tr>
62 62 <tr>
63 63 <th class="author">children</th>
64 64 <td class="author">{child%filerevchild}</td>
65 65 </tr>
66 66 {changesettag}
67 67 </table>
68 68
69 69 <div class="overflow">
70 70 <div class="sourcefirst"> line source</div>
71 71 {text%fileline}
72 72 <div class="sourcelast"></div>
73 73 </div>
74 74 </div>
75 75 </div>
76 76
77 77 {footer}
@@ -1,129 +1,129 b''
1 1 {header}
2 2 <title>{repo|escape}: revision graph</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url}atom-log" title="Atom feed for {repo|escape}: log" />
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url}rss-log" title="RSS feed for {repo|escape}: log" />
7 7 <!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]-->
8 8 </head>
9 9 <body>
10 10
11 11 <div class="container">
12 12 <div class="menu">
13 13 <div class="logo">
14 14 <a href="{logourl}">
15 15 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
16 16 </div>
17 17 <ul>
18 18 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
19 19 <li class="active">graph</li>
20 20 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
21 21 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
22 22 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
23 23 </ul>
24 24 <ul>
25 25 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
26 26 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
27 27 </ul>
28 28 <ul>
29 29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 30 </ul>
31 31 <p>
32 32 <div class="atom-logo">
33 33 <a href="{url}atom-log" title="subscribe to atom feed">
34 34 <img class="atom-logo" src="{staticurl}feed-icon-14x14.png" alt="atom feed">
35 35 </a>
36 36 </div>
37 37 </div>
38 38
39 39 <div class="main">
40 <h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
40 <h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
41 41 <h3>graph</h3>
42 42
43 43 <form class="search" action="{url}log">
44 44 {sessionvars%hiddenformentry}
45 45 <p><input name="rev" id="search1" type="text" size="30" /></p>
46 46 <div id="hint">find changesets by author, revision,
47 47 files, or words in the commit message</div>
48 48 </form>
49 49
50 50 <div class="navigate">
51 51 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
52 52 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
53 53 | rev {rev}: {changenav%navgraph}
54 54 </div>
55 55
56 56 <noscript><p>The revision graph only works with JavaScript-enabled browsers.</p></noscript>
57 57
58 58 <div id="wrapper">
59 59 <ul id="nodebgs"></ul>
60 60 <canvas id="graph" width="480" height="{canvasheight}"></canvas>
61 61 <ul id="graphnodes"></ul>
62 62 </div>
63 63
64 64 <script type="text/javascript">
65 65 <!-- hide script content
66 66
67 67 var data = {jsdata|json};
68 68 var graph = new Graph();
69 69 graph.scale({bg_height});
70 70
71 71 graph.vertex = function(x, y, color, parity, cur) \{
72 72
73 73 this.ctx.beginPath();
74 74 color = this.setColor(color, 0.25, 0.75);
75 75 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
76 76 this.ctx.fill();
77 77
78 78 var bg = '<li class="bg parity' + parity + '"></li>';
79 79 var left = (this.bg_height - this.box_size) + (this.columns + 1) * this.box_size;
80 80 var nstyle = 'padding-left: ' + left + 'px;';
81 81
82 82 var tagspan = '';
83 83 if (cur[7].length || cur[8].length || (cur[6][0] != 'default' || cur[6][1])) \{
84 84 tagspan = '<span class="logtags">';
85 85 if (cur[6][1]) \{
86 86 tagspan += '<span class="branchhead" title="' + cur[6][0] + '">';
87 87 tagspan += cur[6][0] + '</span> ';
88 88 } else if (!cur[6][1] && cur[6][0] != 'default') \{
89 89 tagspan += '<span class="branchname" title="' + cur[6][0] + '">';
90 90 tagspan += cur[6][0] + '</span> ';
91 91 }
92 92 if (cur[7].length) \{
93 93 for (var t in cur[7]) \{
94 94 var tag = cur[7][t];
95 95 tagspan += '<span class="tag">' + tag + '</span> ';
96 96 }
97 97 }
98 98 if (cur[8].length) \{
99 99 for (var b in cur[8]) \{
100 100 var bookmark = cur[8][b];
101 101 tagspan += '<span class="tag">' + bookmark + '</span> ';
102 102 }
103 103 }
104 104 tagspan += '</span>';
105 105 }
106 106
107 107 var item = '<li style="' + nstyle + '"><span class="desc">';
108 108 item += '<a href="{url}rev/' + cur[0] + '{sessionvars%urlparameter}" title="' + cur[0] + '">' + cur[3] + '</a>';
109 109 item += '</span>' + tagspan + '<span class="info">' + cur[5] + ', by ' + cur[4] + '</span></li>';
110 110
111 111 return [bg, item];
112 112
113 113 }
114 114
115 115 graph.render(data);
116 116
117 117 // stop hiding script -->
118 118 </script>
119 119
120 120 <div class="navigate">
121 121 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
122 122 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
123 123 | rev {rev}: {changenav%navgraph}
124 124 </div>
125 125
126 126 </div>
127 127 </div>
128 128
129 129 {footer}
@@ -1,40 +1,40 b''
1 1 {header}
2 2 <title>Help: {topic}</title>
3 3 </head>
4 4 <body>
5 5
6 6 <div class="container">
7 7 <div class="menu">
8 8 <div class="logo">
9 9 <a href="{logourl}">
10 10 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
11 11 </div>
12 12 <ul>
13 13 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
14 14 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
15 15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
16 16 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
17 17 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
18 18 </ul>
19 19 <ul>
20 20 <li class="active"><a href="{url}help{sessionvars%urlparameter}">help</a></li>
21 21 </ul>
22 22 </div>
23 23
24 24 <div class="main">
25 <h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
25 <h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
26 26 <h3>Help: {topic}</h3>
27 27
28 28 <form class="search" action="{url}log">
29 29 {sessionvars%hiddenformentry}
30 30 <p><input name="rev" id="search1" type="text" size="30" /></p>
31 31 <div id="hint">find changesets by author, revision,
32 32 files, or words in the commit message</div>
33 33 </form>
34 34 <pre>
35 35 {doc|escape}
36 36 </pre>
37 37 </div>
38 38 </div>
39 39
40 40 {footer}
@@ -1,45 +1,45 b''
1 1 {header}
2 2 <title>Help: {title}</title>
3 3 </head>
4 4 <body>
5 5
6 6 <div class="container">
7 7 <div class="menu">
8 8 <div class="logo">
9 9 <a href="{logourl}">
10 10 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
11 11 </div>
12 12 <ul>
13 13 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
14 14 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
15 15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
16 16 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
17 17 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
18 18 </ul>
19 19 <ul>
20 20 <li class="active">help</li>
21 21 </ul>
22 22 </div>
23 23
24 24 <div class="main">
25 <h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
25 <h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
26 26 <form class="search" action="{url}log">
27 27 {sessionvars%hiddenformentry}
28 28 <p><input name="rev" id="search1" type="text" size="30" /></p>
29 29 <div id="hint">find changesets by author, revision,
30 30 files, or words in the commit message</div>
31 31 </form>
32 32 <table class="bigtable">
33 33 <tr><td colspan="2"><h2><a name="main" href="#topics">Topics</a></h2></td></tr>
34 34 {topics % helpentry}
35 35
36 36 <tr><td colspan="2"><h2><a name="main" href="#main">Main Commands</a></h2></td></tr>
37 37 {earlycommands % helpentry}
38 38
39 39 <tr><td colspan="2"><h2><a name="other" href="#other">Other Commands</a></h2></td></tr>
40 40 {othercommands % helpentry}
41 41 </table>
42 42 </div>
43 43 </div>
44 44
45 45 {footer}
@@ -1,27 +1,27 b''
1 1 {header}
2 2 <title>Mercurial repositories index</title>
3 3 </head>
4 4 <body>
5 5
6 6 <div class="container">
7 7 <div class="menu">
8 8 <a href="{logourl}">
9 9 <img src="{staticurl}{logoimg}" width=75 height=90 border=0 alt="mercurial" /></a>
10 10 </div>
11 11 <div class="main">
12 <h2>Mercurial Repositories</h2>
12 <h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
13 13
14 14 <table class="bigtable">
15 15 <tr>
16 16 <th><a href="?sort={sort_name}">Name</a></th>
17 17 <th><a href="?sort={sort_description}">Description</a></th>
18 18 <th><a href="?sort={sort_contact}">Contact</a></th>
19 19 <th><a href="?sort={sort_lastchange}">Last modified</a></th>
20 20 <th>&nbsp;</th>
21 21 <th>&nbsp;</th>
22 22 </tr>
23 23 {entries%indexentry}
24 24 </table>
25 25 </div>
26 26 </div>
27 27 {footer}
@@ -1,58 +1,58 b''
1 1 {header}
2 2 <title>{repo|escape}: {node|short} {path|escape}</title>
3 3 </head>
4 4 <body>
5 5
6 6 <div class="container">
7 7 <div class="menu">
8 8 <div class="logo">
9 9 <a href="{logourl}">
10 10 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
11 11 </div>
12 12 <ul>
13 13 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
14 14 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
15 15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
16 16 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
17 17 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
18 18 </ul>
19 19 <ul>
20 20 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
21 21 <li class="active">browse</li>
22 22 </ul>
23 23 <ul>
24 24 {archives%archiveentry}
25 25 </ul>
26 26 <ul>
27 27 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
28 28 </ul>
29 29 </div>
30 30
31 31 <div class="main">
32 <h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
32 <h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
33 33 <h3>directory {path|escape} @ {rev}:{node|short} {tags%changelogtag}</h3>
34 34
35 35 <form class="search" action="{url}log">
36 36 {sessionvars%hiddenformentry}
37 37 <p><input name="rev" id="search1" type="text" size="30" /></p>
38 38 <div id="hint">find changesets by author, revision,
39 39 files, or words in the commit message</div>
40 40 </form>
41 41
42 42 <table class="bigtable">
43 43 <tr>
44 44 <th class="name">name</th>
45 45 <th class="size">size</th>
46 46 <th class="permissions">permissions</th>
47 47 </tr>
48 48 <tr class="fileline parity{upparity}">
49 49 <td class="name"><a href="{url}file/{node|short}{up|urlescape}{sessionvars%urlparameter}">[up]</a></td>
50 50 <td class="size"></td>
51 51 <td class="permissions">drwxr-xr-x</td>
52 52 </tr>
53 53 {dentries%direntry}
54 54 {fentries%fileentry}
55 55 </table>
56 56 </div>
57 57 </div>
58 58 {footer}
@@ -1,233 +1,234 b''
1 1 default = 'shortlog'
2 2
3 3 mimetype = 'text/html; charset={encoding}'
4 4 header = header.tmpl
5 5 footer = footer.tmpl
6 6 search = search.tmpl
7 7
8 8 changelog = shortlog.tmpl
9 9 shortlog = shortlog.tmpl
10 10 shortlogentry = shortlogentry.tmpl
11 11 graph = graph.tmpl
12 12 help = help.tmpl
13 13 helptopics = helptopics.tmpl
14 14
15 15 helpentry = '<tr><td><a href="{url}help/{topic|escape}{sessionvars%urlparameter}">{topic|escape}</a></td><td>{summary|escape}</td></tr>'
16 16
17 17 naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
18 18 navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
19 19 navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
20 20 filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
21 21 filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
22 22 filenodelink = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
23 23 filenolink = '{file|escape} '
24 24 fileellipses = '...'
25 25 diffstatlink = diffstat.tmpl
26 26 diffstatnolink = diffstat.tmpl
27 27 changelogentry = shortlogentry.tmpl
28 28 searchentry = shortlogentry.tmpl
29 29 changeset = changeset.tmpl
30 30 manifest = manifest.tmpl
31 31
32 32 nav = '{before%naventry} {after%naventry}'
33 33 navshort = '{before%navshortentry}{after%navshortentry}'
34 34 navgraph = '{before%navgraphentry}{after%navgraphentry}'
35 35 filenav = '{before%filenaventry}{after%filenaventry}'
36 36
37 37 direntry = '
38 38 <tr class="fileline parity{parity}">
39 39 <td class="name">
40 40 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">
41 41 <img src="{staticurl}coal-folder.png" alt="dir."/> {basename|escape}/
42 42 </a>
43 43 <a href="{url}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">
44 44 {emptydirs|escape}
45 45 </a>
46 46 </td>
47 47 <td class="size"></td>
48 48 <td class="permissions">drwxr-xr-x</td>
49 49 </tr>'
50 50
51 51 fileentry = '
52 52 <tr class="fileline parity{parity}">
53 53 <td class="filename">
54 54 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
55 55 <img src="{staticurl}coal-file.png" alt="file"/> {basename|escape}
56 56 </a>
57 57 </td>
58 58 <td class="size">{size}</td>
59 59 <td class="permissions">{permissions|permissions}</td>
60 60 </tr>'
61 61
62 62 filerevision = filerevision.tmpl
63 63 fileannotate = fileannotate.tmpl
64 64 filediff = filediff.tmpl
65 65 filecomparison = filecomparison.tmpl
66 66 filelog = filelog.tmpl
67 67 fileline = '
68 68 <div class="parity{parity} source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</div>'
69 69 filelogentry = filelogentry.tmpl
70 70
71 71 annotateline = '
72 72 <tr class="parity{parity}">
73 73 <td class="annotate">
74 74 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"
75 75 title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
76 76 </td>
77 77 <td class="source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</td>
78 78 </tr>'
79 79
80 80 diffblock = '<div class="source bottomline parity{parity}"><pre>{lines}</pre></div>'
81 81 difflineplus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="plusline">{line|escape}</span>'
82 82 difflineminus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="minusline">{line|escape}</span>'
83 83 difflineat = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="atline">{line|escape}</span>'
84 84 diffline = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}'
85 85
86 86 comparisonblock ='
87 87 <tbody class="block">
88 88 {lines}
89 89 </tbody>'
90 90 comparisonline = '
91 91 <tr>
92 92 <td class="source {type}"><a href="#{lineid}" id="{lineid}">{leftlinenumber}</a> {leftline|escape}</td>
93 93 <td class="source {type}"><a href="#{lineid}" id="{lineid}">{rightlinenumber}</a> {rightline|escape}</td>
94 94 </tr>'
95 95
96 96 changelogparent = '
97 97 <tr>
98 98 <th class="parent">parent {rev}:</th>
99 99 <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
100 100 </tr>'
101 101
102 102 changesetparent = '<a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> '
103 103
104 104 changesetbaseline = '<a href="{url}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">{node|short}</a> '
105 105
106 106 filerevparent = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rename%filerename}{node|short}</a> '
107 107 filerevchild = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> '
108 108
109 109 filerename = '{file|escape}@'
110 110 filelogrename = '
111 111 <span class="base">
112 112 base
113 113 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
114 114 {file|escape}@{node|short}
115 115 </a>
116 116 </span>'
117 117 fileannotateparent = '
118 118 <tr>
119 119 <td class="metatag">parent:</td>
120 120 <td>
121 121 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
122 122 {rename%filerename}{node|short}
123 123 </a>
124 124 </td>
125 125 </tr>'
126 126 changesetchild = ' <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
127 127 changelogchild = '
128 128 <tr>
129 129 <th class="child">child</th>
130 130 <td class="child">
131 131 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
132 132 {node|short}
133 133 </a>
134 134 </td>
135 135 </tr>'
136 136 fileannotatechild = '
137 137 <tr>
138 138 <td class="metatag">child:</td>
139 139 <td>
140 140 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
141 141 {node|short}
142 142 </a>
143 143 </td>
144 144 </tr>'
145 145 tags = tags.tmpl
146 146 tagentry = '
147 147 <tr class="tagEntry parity{parity}">
148 148 <td>
149 149 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
150 150 {tag|escape}
151 151 </a>
152 152 </td>
153 153 <td class="node">
154 154 {node|short}
155 155 </td>
156 156 </tr>'
157 157 bookmarks = bookmarks.tmpl
158 158 bookmarkentry = '
159 159 <tr class="tagEntry parity{parity}">
160 160 <td>
161 161 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
162 162 {bookmark|escape}
163 163 </a>
164 164 </td>
165 165 <td class="node">
166 166 {node|short}
167 167 </td>
168 168 </tr>'
169 169 branches = branches.tmpl
170 170 branchentry = '
171 171 <tr class="tagEntry parity{parity}">
172 172 <td>
173 173 <a href="{url}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">
174 174 {branch|escape}
175 175 </a>
176 176 </td>
177 177 <td class="node">
178 178 {node|short}
179 179 </td>
180 180 </tr>'
181 181 changelogtag = '<span class="tag">{name|escape}</span> '
182 182 changesettag = '<span class="tag">{tag|escape}</span> '
183 183 changesetbookmark = '<span class="tag">{bookmark|escape}</span> '
184 184 changelogbranchhead = '<span class="branchhead">{name|escape}</span> '
185 185 changelogbranchname = '<span class="branchname">{name|escape}</span> '
186 186
187 187 filediffparent = '
188 188 <tr>
189 189 <th class="parent">parent {rev}:</th>
190 190 <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
191 191 </tr>'
192 192 filelogparent = '
193 193 <tr>
194 194 <th>parent {rev}:</th>
195 195 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
196 196 </tr>'
197 197 filediffchild = '
198 198 <tr>
199 199 <th class="child">child {rev}:</th>
200 200 <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
201 201 </td>
202 202 </tr>'
203 203 filelogchild = '
204 204 <tr>
205 205 <th>child {rev}:</th>
206 206 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
207 207 </tr>'
208 208
209 209 indexentry = '
210 210 <tr class="parity{parity}">
211 211 <td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td>
212 212 <td>{description}</td>
213 213 <td>{contact|obfuscate}</td>
214 214 <td class="age">{lastchange|rfc822date}</td>
215 215 <td class="indexlinks">{archives%indexarchiveentry}</td>
216 216 <td>
217 217 {if(isdirectory, '',
218 218 '<a href="{url}atom-log" title="subscribe to repository atom feed">
219 219 <img class="atom-logo" src="{staticurl}feed-icon-14x14.png" alt="subscribe to repository atom feed">
220 220 </a>'
221 221 )}
222 222 </td>
223 223 </tr>\n'
224 224 indexarchiveentry = '<a href="{url}archive/{node|short}{extension|urlescape}">&nbsp;&darr;{type|escape}</a>'
225 225 index = index.tmpl
226 226 archiveentry = '
227 227 <li>
228 228 <a href="{url}archive/{node|short}{extension|urlescape}">{type|escape}</a>
229 229 </li>'
230 230 notfound = notfound.tmpl
231 231 error = error.tmpl
232 232 urlparameter = '{separator}{name}={value|urlescape}'
233 233 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
234 breadcrumb = '&gt; <a href="{url}">{name}</a> '
@@ -1,55 +1,55 b''
1 1 {header}
2 2 <title>{repo|escape}: searching for {query|escape}</title>
3 3 </head>
4 4 <body>
5 5
6 6 <div class="container">
7 7 <div class="menu">
8 8 <div class="logo">
9 9 <a href="{logourl}">
10 10 <img src="{staticurl}{logoimg}" width=75 height=90 border=0 alt="mercurial"></a>
11 11 </div>
12 12 <ul>
13 13 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
14 14 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
15 15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
16 16 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
17 17 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
18 18 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
19 19 </ul>
20 20 </div>
21 21
22 22 <div class="main">
23 <h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
23 <h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
24 24 <h3>searching for '{query|escape}'</h3>
25 25
26 26 <form class="search" action="{url}log">
27 27 {sessionvars%hiddenformentry}
28 28 <p><input name="rev" id="search1" type="text" size="30"></p>
29 29 <div id="hint">find changesets by author, revision,
30 30 files, or words in the commit message</div>
31 31 </form>
32 32
33 33 <div class="navigate">
34 34 <a href="{url}search/{lessvars%urlparameter}">less</a>
35 35 <a href="{url}search/{morevars%urlparameter}">more</a>
36 36 </div>
37 37
38 38 <table class="bigtable">
39 39 <tr>
40 40 <th class="age">age</th>
41 41 <th class="author">author</th>
42 42 <th class="description">description</th>
43 43 </tr>
44 44 {entries}
45 45 </table>
46 46
47 47 <div class="navigate">
48 48 <a href="{url}search/{lessvars%urlparameter}">less</a>
49 49 <a href="{url}search/{morevars%urlparameter}">more</a>
50 50 </div>
51 51
52 52 </div>
53 53 </div>
54 54
55 55 {footer}
@@ -1,76 +1,76 b''
1 1 {header}
2 2 <title>{repo|escape}: log</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url}atom-log" title="Atom feed for {repo|escape}" />
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url}rss-log" title="RSS feed for {repo|escape}" />
7 7 </head>
8 8 <body>
9 9
10 10 <div class="container">
11 11 <div class="menu">
12 12 <div class="logo">
13 13 <a href="{logourl}">
14 14 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
15 15 </div>
16 16 <ul>
17 17 <li class="active">log</li>
18 18 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
19 19 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
20 20 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
21 21 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
22 22 </ul>
23 23 <ul>
24 24 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
25 25 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
26 26 </ul>
27 27 <ul>
28 28 {archives%archiveentry}
29 29 </ul>
30 30 <ul>
31 31 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
32 32 </ul>
33 33 <p>
34 34 <div class="atom-logo">
35 35 <a href="{url}atom-log" title="subscribe to atom feed">
36 36 <img class="atom-logo" src="{staticurl}feed-icon-14x14.png" alt="atom feed">
37 37 </a>
38 38 </div>
39 39 </div>
40 40
41 41 <div class="main">
42 <h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
42 <h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
43 43 <h3>log</h3>
44 44
45 45 <form class="search" action="{url}log">
46 46 {sessionvars%hiddenformentry}
47 47 <p><input name="rev" id="search1" type="text" size="30" /></p>
48 48 <div id="hint">find changesets by author, revision,
49 49 files, or words in the commit message</div>
50 50 </form>
51 51
52 52 <div class="navigate">
53 53 <a href="{url}shortlog/{rev}{lessvars%urlparameter}">less</a>
54 54 <a href="{url}shortlog/{rev}{morevars%urlparameter}">more</a>
55 55 | rev {rev}: {changenav%navshort}
56 56 </div>
57 57
58 58 <table class="bigtable">
59 59 <tr>
60 60 <th class="age">age</th>
61 61 <th class="author">author</th>
62 62 <th class="description">description</th>
63 63 </tr>
64 64 {entries%shortlogentry}
65 65 </table>
66 66
67 67 <div class="navigate">
68 68 <a href="{url}shortlog/{rev}{lessvars%urlparameter}">less</a>
69 69 <a href="{url}shortlog/{rev}{morevars%urlparameter}">more</a>
70 70 | rev {rev}: {changenav%navshort}
71 71 </div>
72 72
73 73 </div>
74 74 </div>
75 75
76 76 {footer}
@@ -1,54 +1,54 b''
1 1 {header}
2 2 <title>{repo|escape}: tags</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url}atom-tags" title="Atom feed for {repo|escape}: tags" />
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url}rss-tags" title="RSS feed for {repo|escape}: tags" />
7 7 </head>
8 8 <body>
9 9
10 10 <div class="container">
11 11 <div class="menu">
12 12 <div class="logo">
13 13 <a href="{logourl}">
14 14 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
15 15 </div>
16 16 <ul>
17 17 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
18 18 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
19 19 <li class="active">tags</li>
20 20 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
21 21 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
22 22 </ul>
23 23 <ul>
24 24 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
25 25 </ul>
26 26 <p>
27 27 <div class="atom-logo">
28 28 <a href="{url}atom-tags" title="subscribe to atom feed">
29 29 <img class="atom-logo" src="{staticurl}feed-icon-14x14.png" alt="atom feed"></a>
30 30 </div>
31 31 </div>
32 32
33 33 <div class="main">
34 <h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
34 <h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
35 35 <h3>tags</h3>
36 36
37 37 <form class="search" action="{url}log">
38 38 {sessionvars%hiddenformentry}
39 39 <p><input name="rev" id="search1" type="text" size="30" /></p>
40 40 <div id="hint">find changesets by author, revision,
41 41 files, or words in the commit message</div>
42 42 </form>
43 43
44 44 <table class="bigtable">
45 45 <tr>
46 46 <th>tag</th>
47 47 <th>node</th>
48 48 </tr>
49 49 {entries%tagentry}
50 50 </table>
51 51 </div>
52 52 </div>
53 53
54 54 {footer}
@@ -1,19 +1,19 b''
1 1 {header}
2 2 <title>Mercurial repositories index</title>
3 3 </head>
4 4 <body>
5 5
6 <h2>Mercurial Repositories</h2>
6 <h2><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
7 7
8 8 <table>
9 9 <tr>
10 10 <td><a href="?sort={sort_name}">Name</a></td>
11 11 <td><a href="?sort={sort_description}">Description</a></td>
12 12 <td><a href="?sort={sort_contact}">Contact</a></td>
13 13 <td><a href="?sort={sort_lastchange}">Last modified</a></td>
14 14 <td>&nbsp;</td>
15 15 </tr>
16 16 {entries%indexentry}
17 17 </table>
18 18
19 19 {footer}
@@ -1,183 +1,184 b''
1 1 default = 'shortlog'
2 2 mimetype = 'text/html; charset={encoding}'
3 3 header = header.tmpl
4 4 footer = footer.tmpl
5 5 search = search.tmpl
6 6 changelog = changelog.tmpl
7 7 shortlog = shortlog.tmpl
8 8 shortlogentry = shortlogentry.tmpl
9 9 graph = graph.tmpl
10 10 naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
11 11 navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
12 12 navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
13 13 filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
14 14 filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
15 15 filenodelink = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
16 16 filenolink = '{file|escape} '
17 17 fileellipses = '...'
18 18 changelogentry = changelogentry.tmpl
19 19 searchentry = changelogentry.tmpl
20 20 changeset = changeset.tmpl
21 21 manifest = manifest.tmpl
22 22
23 23 nav = '{before%naventry} {after%naventry}'
24 24 navshort = '{before%navshortentry}{after%navshortentry}'
25 25 navgraph = '{before%navgraphentry}{after%navgraphentry}'
26 26 filenav = '{before%filenaventry}{after%filenaventry}'
27 27
28 28 direntry = '
29 29 <tr class="parity{parity}">
30 30 <td><tt>drwxr-xr-x</tt>&nbsp;
31 31 <td>&nbsp;
32 32 <td>&nbsp;
33 33 <td>
34 34 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}/</a>
35 35 <a href="{url}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">
36 36 {emptydirs|urlescape}
37 37 </a>'
38 38
39 39 fileentry = '
40 40 <tr class="parity{parity}">
41 41 <td><tt>{permissions|permissions}</tt>&nbsp;
42 42 <td align=right><tt class="date">{date|isodate}</tt>&nbsp;
43 43 <td align=right><tt>{size}</tt>&nbsp;
44 44 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>'
45 45
46 46 filerevision = filerevision.tmpl
47 47 fileannotate = fileannotate.tmpl
48 48 filediff = filediff.tmpl
49 49 filelog = filelog.tmpl
50 50 fileline = '<div class="parity{parity}"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>&nbsp;{line|escape}</div>'
51 51 filelogentry = filelogentry.tmpl
52 52
53 53 # The &nbsp; ensures that all table cells have content (even if there
54 54 # is an empty line in the annotated file), which in turn ensures that
55 55 # all table rows have equal height.
56 56 annotateline = '
57 57 <tr class="parity{parity}">
58 58 <td class="annotate">
59 59 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"
60 60 title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
61 61 </td>
62 62 <td>
63 63 <a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>
64 64 </td>
65 65 <td><pre>&nbsp;{line|escape}</pre></td>
66 66 </tr>'
67 67 difflineplus = '<span class="plusline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>'
68 68 difflineminus = '<span class="minusline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>'
69 69 difflineat = '<span class="atline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>'
70 70 diffline = '<a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}'
71 71 changelogparent = '
72 72 <tr>
73 73 <th class="parent">parent {rev}:</th>
74 74 <td class="parent">
75 75 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
76 76 </td>
77 77 </tr>'
78 78 changesetparent = '
79 79 <tr>
80 80 <th class="parent">parent {rev}:</th>
81 81 <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
82 82 </tr>'
83 83 filerevparent = '
84 84 <tr>
85 85 <td class="metatag">parent:</td>
86 86 <td>
87 87 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
88 88 {rename%filerename}{node|short}
89 89 </a>
90 90 </td>
91 91 </tr>'
92 92 filerename = '{file|escape}@'
93 93 filelogrename = '
94 94 <tr>
95 95 <th>base:</th>
96 96 <td>
97 97 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
98 98 {file|escape}@{node|short}
99 99 </a>
100 100 </td>
101 101 </tr>'
102 102 fileannotateparent = '
103 103 <tr>
104 104 <td class="metatag">parent:</td>
105 105 <td>
106 106 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
107 107 {rename%filerename}{node|short}
108 108 </a>
109 109 </td>
110 110 </tr>'
111 111 changesetchild = '
112 112 <tr>
113 113 <th class="child">child {rev}:</th>
114 114 <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
115 115 </tr>'
116 116 changelogchild = '
117 117 <tr>
118 118 <th class="child">child {rev}:</th>
119 119 <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
120 120 </tr>'
121 121 filerevchild = '
122 122 <tr>
123 123 <td class="metatag">child:</td>
124 124 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
125 125 </tr>'
126 126 fileannotatechild = '
127 127 <tr>
128 128 <td class="metatag">child:</td>
129 129 <td><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
130 130 </tr>'
131 131 tags = tags.tmpl
132 132 tagentry = '
133 133 <li class="tagEntry parity{parity}">
134 134 <tt class="node">{node}</tt>
135 135 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{tag|escape}</a>
136 136 </li>'
137 137 branches = branches.tmpl
138 138 branchentry = '
139 139 <li class="tagEntry parity{parity}">
140 140 <tt class="node">{node}</tt>
141 141 <a href="{url}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">{branch|escape}</a>
142 142 </li>'
143 143 diffblock = '<pre class="parity{parity}">{lines}</pre>'
144 144 changelogtag = '<tr><th class="tag">tag:</th><td class="tag">{tag|escape}</td></tr>'
145 145 changesettag = '<tr><th class="tag">tag:</th><td class="tag">{tag|escape}</td></tr>'
146 146 filediffparent = '
147 147 <tr>
148 148 <th class="parent">parent {rev}:</th>
149 149 <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
150 150 </tr>'
151 151 filelogparent = '
152 152 <tr>
153 153 <th>parent {rev}:</th>
154 154 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
155 155 </tr>'
156 156 filediffchild = '
157 157 <tr>
158 158 <th class="child">child {rev}:</th>
159 159 <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
160 160 </tr>'
161 161 filelogchild = '
162 162 <tr>
163 163 <th>child {rev}:</th>
164 164 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
165 165 </tr>'
166 166 indexentry = '
167 167 <tr class="parity{parity}">
168 168 <td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td>
169 169 <td>{description}</td>
170 170 <td>{contact|obfuscate}</td>
171 171 <td class="age">{lastchange|rfc822date}</td>
172 172 <td class="indexlinks">
173 173 <a href="{url}rss-log">RSS</a>
174 174 <a href="{url}atom-log">Atom</a>
175 175 {archives%archiveentry}
176 176 </td>
177 177 </tr>'
178 178 index = index.tmpl
179 179 archiveentry = '<a href="{url}archive/{node|short}{extension|urlescape}">{type|escape}</a> '
180 180 notfound = notfound.tmpl
181 181 error = error.tmpl
182 182 urlparameter = '{separator}{name}={value|urlescape}'
183 183 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
184 breadcrumb = '&gt; <a href="{url}">{name}</a> '
@@ -1,325 +1,333 b''
1 1 body {
2 2 margin: 0;
3 3 padding: 0;
4 4 background: black url(background.png) repeat-x;
5 5 font-family: sans-serif;
6 6 }
7 7
8 8 .container {
9 9 padding-right: 150px;
10 10 }
11 11
12 12 .main {
13 13 position: relative;
14 14 background: white;
15 15 padding: 2em;
16 16 border-right: 15px solid black;
17 17 border-bottom: 15px solid black;
18 18 }
19 19
20 20 #.main {
21 21 width: 98%;
22 22 }
23 23
24 24 .overflow {
25 25 width: 100%;
26 26 overflow: auto;
27 27 }
28 28
29 29 .menu {
30 30 background: #999;
31 31 padding: 10px;
32 32 width: 75px;
33 33 margin: 0;
34 34 font-size: 80%;
35 35 text-align: left;
36 36 position: fixed;
37 37 top: 27px;
38 38 left: auto;
39 39 right: 27px;
40 40 }
41 41
42 42 #.menu {
43 43 position: absolute !important;
44 44 top:expression(eval(document.body.scrollTop + 27));
45 45 }
46 46
47 47 .menu ul {
48 48 list-style: none;
49 49 padding: 0;
50 50 margin: 10px 0 0 0;
51 51 }
52 52
53 53 .menu li {
54 54 margin-bottom: 3px;
55 55 padding: 2px 4px;
56 56 background: white;
57 57 color: black;
58 58 font-weight: normal;
59 59 }
60 60
61 61 .menu li.active {
62 62 background: black;
63 63 color: white;
64 64 }
65 65
66 66 .menu img {
67 67 width: 75px;
68 68 height: 90px;
69 69 border: 0;
70 70 }
71 71
72 72 .menu a { color: black; display: block; }
73 73
74 74 .search {
75 75 position: absolute;
76 76 top: .7em;
77 77 right: 2em;
78 78 }
79 79
80 80 form.search div#hint {
81 81 display: none;
82 82 position: absolute;
83 83 top: 40px;
84 84 right: 0px;
85 85 width: 190px;
86 86 padding: 5px;
87 87 background: #ffc;
88 88 font-size: 70%;
89 89 border: 1px solid yellow;
90 90 -moz-border-radius: 5px; /* this works only in camino/firefox */
91 91 -webkit-border-radius: 5px; /* this is just for Safari */
92 92 }
93 93
94 94 form.search:hover div#hint { display: block; }
95 95
96 96 a { text-decoration:none; }
97 97 .age { white-space:nowrap; }
98 98 .date { white-space:nowrap; }
99 99 .indexlinks { white-space:nowrap; }
100 100 .parity0 { background-color: #f0f0f0; }
101 101 .parity1 { background-color: white; }
102 102 .plusline { color: green; }
103 103 .minusline { color: #dc143c; } /* crimson */
104 104 .atline { color: purple; }
105 105
106 106 .diffstat-file {
107 107 white-space: nowrap;
108 108 font-size: 90%;
109 109 }
110 110 .diffstat-total {
111 111 white-space: nowrap;
112 112 font-size: 90%;
113 113 }
114 114 .diffstat-graph {
115 115 width: 100%;
116 116 }
117 117 .diffstat-add {
118 118 background-color: green;
119 119 float: left;
120 120 }
121 121 .diffstat-remove {
122 122 background-color: red;
123 123 float: left;
124 124 }
125 125
126 126 .navigate {
127 127 text-align: right;
128 128 font-size: 60%;
129 129 margin: 1em 0;
130 130 }
131 131
132 132 .tag {
133 133 color: #999;
134 134 font-size: 70%;
135 135 font-weight: normal;
136 136 margin-left: .5em;
137 137 vertical-align: baseline;
138 138 }
139 139
140 140 .branchhead {
141 141 color: #000;
142 142 font-size: 80%;
143 143 font-weight: normal;
144 144 margin-left: .5em;
145 145 vertical-align: baseline;
146 146 }
147 147
148 148 ul#graphnodes .branchhead {
149 149 font-size: 75%;
150 150 }
151 151
152 152 .branchname {
153 153 color: #000;
154 154 font-size: 60%;
155 155 font-weight: normal;
156 156 margin-left: .5em;
157 157 vertical-align: baseline;
158 158 }
159 159
160 160 h3 .branchname {
161 161 font-size: 80%;
162 162 }
163 163
164 164 /* Common */
165 165 pre { margin: 0; }
166 166
167 167 h2 { font-size: 120%; border-bottom: 1px solid #999; }
168 168 h2 a { color: #000; }
169 169 h3 {
170 170 margin-top: -.7em;
171 171 font-size: 100%;
172 172 }
173 173
174 174 /* log and tags tables */
175 175 .bigtable {
176 176 border-bottom: 1px solid #999;
177 177 border-collapse: collapse;
178 178 font-size: 90%;
179 179 width: 100%;
180 180 font-weight: normal;
181 181 text-align: left;
182 182 }
183 183
184 184 .bigtable td {
185 185 vertical-align: top;
186 186 }
187 187
188 188 .bigtable th {
189 189 padding: 1px 4px;
190 190 border-bottom: 1px solid #999;
191 191 }
192 192 .bigtable tr { border: none; }
193 193 .bigtable .age { width: 6em; }
194 194 .bigtable .author { width: 12em; }
195 195 .bigtable .description { }
196 196 .bigtable .description .base { font-size: 70%; float: right; line-height: 1.66; }
197 197 .bigtable .node { width: 5em; font-family: monospace;}
198 198 .bigtable .lineno { width: 2em; text-align: right;}
199 199 .bigtable .lineno a { color: #999; font-size: smaller; font-family: monospace;}
200 200 .bigtable .permissions { width: 8em; text-align: left;}
201 201 .bigtable .size { width: 5em; text-align: right; }
202 202 .bigtable .annotate { text-align: right; }
203 203 .bigtable td.annotate { font-size: smaller; }
204 204 .bigtable td.source { font-size: inherit; }
205 205
206 206 .source, .sourcefirst, .sourcelast {
207 207 font-family: monospace;
208 208 white-space: pre;
209 209 padding: 1px 4px;
210 210 font-size: 90%;
211 211 }
212 212 .sourcefirst { border-bottom: 1px solid #999; font-weight: bold; }
213 213 .sourcelast { border-top: 1px solid #999; }
214 214 .source a { color: #999; font-size: smaller; font-family: monospace;}
215 215 .bottomline { border-bottom: 1px solid #999; }
216 216
217 217 .fileline { font-family: monospace; }
218 218 .fileline img { border: 0; }
219 219
220 220 .tagEntry .closed { color: #99f; }
221 221
222 222 /* Changeset entry */
223 223 #changesetEntry {
224 224 border-collapse: collapse;
225 225 font-size: 90%;
226 226 width: 100%;
227 227 margin-bottom: 1em;
228 228 }
229 229
230 230 #changesetEntry th {
231 231 padding: 1px 4px;
232 232 width: 4em;
233 233 text-align: right;
234 234 font-weight: normal;
235 235 color: #999;
236 236 margin-right: .5em;
237 237 vertical-align: top;
238 238 }
239 239
240 240 div.description {
241 241 border-left: 3px solid #999;
242 242 margin: 1em 0 1em 0;
243 243 padding: .3em;
244 244 white-space: pre;
245 245 font-family: monospace;
246 246 }
247 247
248 248 /* Graph */
249 249 div#wrapper {
250 250 position: relative;
251 251 border-top: 1px solid black;
252 252 border-bottom: 1px solid black;
253 253 margin: 0;
254 254 padding: 0;
255 255 }
256 256
257 257 canvas {
258 258 position: absolute;
259 259 z-index: 5;
260 260 top: -0.7em;
261 261 margin: 0;
262 262 }
263 263
264 264 ul#graphnodes {
265 265 position: absolute;
266 266 z-index: 10;
267 267 top: -1.0em;
268 268 list-style: none inside none;
269 269 padding: 0;
270 270 }
271 271
272 272 ul#nodebgs {
273 273 list-style: none inside none;
274 274 padding: 0;
275 275 margin: 0;
276 276 top: -0.7em;
277 277 }
278 278
279 279 ul#graphnodes li, ul#nodebgs li {
280 280 height: 39px;
281 281 }
282 282
283 283 ul#graphnodes li .info {
284 284 display: block;
285 285 font-size: 70%;
286 286 position: relative;
287 287 top: -3px;
288 288 }
289 289
290 290 /* Comparison */
291 291 .legend {
292 292 padding: 1.5% 0 1.5% 0;
293 293 }
294 294
295 295 .legendinfo {
296 296 border: 1px solid #999;
297 297 font-size: 80%;
298 298 text-align: center;
299 299 padding: 0.5%;
300 300 }
301 301
302 302 .equal {
303 303 background-color: #ffffff;
304 304 }
305 305
306 306 .delete {
307 307 background-color: #faa;
308 308 color: #333;
309 309 }
310 310
311 311 .insert {
312 312 background-color: #ffa;
313 313 }
314 314
315 315 .replace {
316 316 background-color: #e8e8e8;
317 317 }
318 318
319 319 .header {
320 320 text-align: center;
321 321 }
322 322
323 323 .block {
324 324 border-top: 1px solid #999;
325 325 }
326
327 .breadcrumb {
328 color: gray;
329 }
330
331 .breadcrumb a {
332 color: blue;
333 }
@@ -1,526 +1,530 b''
1 1 /*** Initial Settings ***/
2 2 * {
3 3 margin: 0;
4 4 padding: 0;
5 5 font-weight: normal;
6 6 font-style: normal;
7 7 }
8 8
9 9 html {
10 10 font-size: 100%;
11 11 font-family: sans-serif;
12 12 }
13 13
14 14 body {
15 15 font-size: 77%;
16 16 margin: 15px 50px;
17 17 background: #4B4B4C;
18 18 }
19 19
20 20 a {
21 21 color:#0000cc;
22 22 text-decoration: none;
23 23 }
24 24 /*** end of Initial Settings ***/
25 25
26 26
27 27 /** common settings **/
28 28 div#container {
29 29 background: #FFFFFF;
30 30 position: relative;
31 31 color: #666;
32 32 }
33 33
34 34 div.page-header {
35 35 padding: 50px 20px 0;
36 36 background: #006699 top left repeat-x;
37 37 position: relative;
38 38 }
39 39 div.page-header h1 {
40 40 margin: 10px 0 30px;
41 41 font-size: 1.8em;
42 42 font-weight: bold;
43 43 font-family: osaka,'MS P Gothic', Georgia, serif;
44 44 letter-spacing: 1px;
45 45 color: #DDD;
46 46 }
47 47 div.page-header h1 a {
48 48 font-weight: bold;
49 49 color: #FFF;
50 50 }
51 51 div.page-header a {
52 52 text-decoration: none;
53 53 }
54 54
55 55 div.page-header form {
56 56 position: absolute;
57 57 margin-bottom: 2px;
58 58 bottom: 0;
59 59 right: 20px;
60 60 }
61 61 div.page-header form label {
62 62 color: #DDD;
63 63 }
64 64 div.page-header form input {
65 65 padding: 2px;
66 66 border: solid 1px #DDD;
67 67 }
68 68 div.page-header form dl {
69 69 overflow: hidden;
70 70 }
71 71 div.page-header form dl dt {
72 72 font-size: 1.2em;
73 73 }
74 74 div.page-header form dl dt,
75 75 div.page-header form dl dd {
76 76 margin: 0 0 0 5px;
77 77 float: left;
78 78 height: 24px;
79 79 line-height: 20px;
80 80 }
81 81
82 82 ul.page-nav {
83 83 margin: 10px 0 0 0;
84 84 list-style-type: none;
85 85 overflow: hidden;
86 86 width: 900px;
87 87 }
88 88 ul.page-nav li {
89 89 margin: 0 2px 0 0;
90 90 float: left;
91 91 width: 80px;
92 92 height: 24px;
93 93 font-size: 1.1em;
94 94 line-height: 24px;
95 95 text-align: center;
96 96 }
97 97 ul.page-nav li.current {
98 98 background: #FFF;
99 99 }
100 100 ul.page-nav li a {
101 101 height: 24px;
102 102 color: #666;
103 103 background: #DDD;
104 104 display: block;
105 105 text-decoration: none;
106 106 }
107 107 ul.page-nav li a:hover {
108 108 color:#333;
109 109 background: #FFF;
110 110 }
111 111
112 112 ul.submenu {
113 113 margin: 10px 0 -10px 20px;
114 114 list-style-type: none;
115 115 }
116 116 ul.submenu li {
117 117 margin: 0 10px 0 0;
118 118 font-size: 1.2em;
119 119 display: inline;
120 120 }
121 121
122 122 h2 {
123 123 margin: 20px 0 10px;
124 124 height: 30px;
125 125 line-height: 30px;
126 126 text-indent: 20px;
127 127 background: #FFF;
128 128 font-size: 1.2em;
129 129 border-top: dotted 1px #D5E1E6;
130 130 font-weight: bold;
131 131 }
132 132 h2.no-link {
133 133 color:#006699;
134 134 }
135 135 h2.no-border {
136 136 color: #FFF;
137 137 background: #006699;
138 138 border: 0;
139 139 }
140 140 h2 a {
141 141 font-weight:bold;
142 142 color:#006699;
143 143 }
144 144
145 145 div.page-path {
146 146 text-align: right;
147 147 padding: 20px 30px 10px 0;
148 148 border:solid #d9d8d1;
149 149 border-width:0px 0px 1px;
150 150 font-size: 1.2em;
151 151 }
152 152
153 153 div.page-footer {
154 154 margin: 50px 0 0;
155 155 position: relative;
156 156 }
157 157 div.page-footer p {
158 158 position: relative;
159 159 left: 20px;
160 160 bottom: 5px;
161 161 font-size: 1.2em;
162 162 }
163 163
164 164 ul.rss-logo {
165 165 position: absolute;
166 166 top: -10px;
167 167 right: 20px;
168 168 height: 20px;
169 169 list-style-type: none;
170 170 }
171 171 ul.rss-logo li {
172 172 display: inline;
173 173 }
174 174 ul.rss-logo li a {
175 175 padding: 3px 6px;
176 176 line-height: 10px;
177 177 border:1px solid;
178 178 border-color:#fcc7a5 #7d3302 #3e1a01 #ff954e;
179 179 color:#ffffff;
180 180 background-color:#ff6600;
181 181 font-weight:bold;
182 182 font-family:sans-serif;
183 183 font-size:10px;
184 184 text-align:center;
185 185 text-decoration:none;
186 186 }
187 187 div.rss-logo li a:hover {
188 188 background-color:#ee5500;
189 189 }
190 190
191 191 p.normal {
192 192 margin: 20px 0 20px 30px;
193 193 font-size: 1.2em;
194 194 }
195 195
196 196 table {
197 197 margin: 10px 0 0 20px;
198 198 width: 95%;
199 199 border-collapse: collapse;
200 200 }
201 201 table tr td {
202 202 font-size: 1.1em;
203 203 }
204 204 table tr td.nowrap {
205 205 white-space: nowrap;
206 206 }
207 207 table tr td.closed {
208 208 background-color: #99f;
209 209 }
210 210 /*
211 211 table tr.parity0:hover,
212 212 table tr.parity1:hover {
213 213 background: #D5E1E6;
214 214 }
215 215 */
216 216 table tr.parity0 {
217 217 background: #F1F6F7;
218 218 }
219 219 table tr.parity1 {
220 220 background: #FFFFFF;
221 221 }
222 222 table tr td {
223 223 padding: 5px 5px;
224 224 }
225 225 table.annotated tr td {
226 226 padding: 0px 5px;
227 227 }
228 228
229 229 span.logtags span {
230 230 padding: 2px 6px;
231 231 font-weight: normal;
232 232 font-size: 11px;
233 233 border: 1px solid;
234 234 background-color: #ffaaff;
235 235 border-color: #ffccff #ff00ee #ff00ee #ffccff;
236 236 }
237 237 span.logtags span.tagtag {
238 238 background-color: #ffffaa;
239 239 border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
240 240 }
241 241 span.logtags span.branchtag {
242 242 background-color: #aaffaa;
243 243 border-color: #ccffcc #00cc33 #00cc33 #ccffcc;
244 244 }
245 245 span.logtags span.inbranchtag {
246 246 background-color: #d5dde6;
247 247 border-color: #e3ecf4 #9398f4 #9398f4 #e3ecf4;
248 248 }
249 249 span.logtags span.bookmarktag {
250 250 background-color: #afdffa;
251 251 border-color: #ccecff #46ace6 #46ace6 #ccecff;
252 252 }
253 253
254 254 div.diff pre {
255 255 margin: 10px 0 0 0;
256 256 }
257 257 div.diff pre span {
258 258 font-family: monospace;
259 259 white-space: pre;
260 260 font-size: 1.2em;
261 261 padding: 3px 0;
262 262 }
263 263 td.source {
264 264 white-space: pre;
265 265 font-family: monospace;
266 266 margin: 10px 30px 0;
267 267 font-size: 1.2em;
268 268 font-family: monospace;
269 269 }
270 270 div.source div.parity0,
271 271 div.source div.parity1 {
272 272 padding: 1px;
273 273 font-size: 1.2em;
274 274 }
275 275 div.source div.parity0 {
276 276 background: #F1F6F7;
277 277 }
278 278 div.source div.parity1 {
279 279 background: #FFFFFF;
280 280 }
281 281 div.parity0:hover,
282 282 div.parity1:hover {
283 283 background: #D5E1E6;
284 284 }
285 285 .linenr {
286 286 color: #999;
287 287 text-align: right;
288 288 }
289 289 .lineno {
290 290 text-align: right;
291 291 }
292 292 .lineno a {
293 293 color: #999;
294 294 }
295 295 td.linenr {
296 296 width: 60px;
297 297 }
298 298
299 299 div#powered-by {
300 300 position: absolute;
301 301 width: 75px;
302 302 top: 15px;
303 303 right: 20px;
304 304 font-size: 1.2em;
305 305 }
306 306 div#powered-by a {
307 307 color: #EEE;
308 308 text-decoration: none;
309 309 }
310 310 div#powered-by a:hover {
311 311 text-decoration: underline;
312 312 }
313 313 /*
314 314 div#monoblue-corner-top-left {
315 315 position: absolute;
316 316 top: 0;
317 317 left: 0;
318 318 width: 10px;
319 319 height: 10px;
320 320 background: url(./monoblue-corner.png) top left no-repeat !important;
321 321 background: none;
322 322 }
323 323 div#monoblue-corner-top-right {
324 324 position: absolute;
325 325 top: 0;
326 326 right: 0;
327 327 width: 10px;
328 328 height: 10px;
329 329 background: url(./monoblue-corner.png) top right no-repeat !important;
330 330 background: none;
331 331 }
332 332 div#monoblue-corner-bottom-left {
333 333 position: absolute;
334 334 bottom: 0;
335 335 left: 0;
336 336 width: 10px;
337 337 height: 10px;
338 338 background: url(./monoblue-corner.png) bottom left no-repeat !important;
339 339 background: none;
340 340 }
341 341 div#monoblue-corner-bottom-right {
342 342 position: absolute;
343 343 bottom: 0;
344 344 right: 0;
345 345 width: 10px;
346 346 height: 10px;
347 347 background: url(./monoblue-corner.png) bottom right no-repeat !important;
348 348 background: none;
349 349 }
350 350 */
351 351 /** end of common settings **/
352 352
353 353 /** summary **/
354 354 dl.overview {
355 355 margin: 0 0 0 30px;
356 356 font-size: 1.1em;
357 357 overflow: hidden;
358 358 }
359 359 dl.overview dt,
360 360 dl.overview dd {
361 361 margin: 5px 0;
362 362 float: left;
363 363 }
364 364 dl.overview dt {
365 365 clear: left;
366 366 font-weight: bold;
367 367 width: 150px;
368 368 }
369 369 /** end of summary **/
370 370
371 371 /** chagelog **/
372 372 h3.changelog {
373 373 margin: 20px 0 5px 30px;
374 374 padding: 0 0 2px;
375 375 font-size: 1.4em;
376 376 border-bottom: dotted 1px #D5E1E6;
377 377 }
378 378 ul.changelog-entry {
379 379 margin: 0 0 10px 30px;
380 380 list-style-type: none;
381 381 position: relative;
382 382 }
383 383 ul.changelog-entry li span.revdate {
384 384 font-size: 1.1em;
385 385 }
386 386 ul.changelog-entry li.age {
387 387 position: absolute;
388 388 top: -25px;
389 389 right: 10px;
390 390 font-size: 1.4em;
391 391 color: #CCC;
392 392 font-weight: bold;
393 393 font-style: italic;
394 394 }
395 395 ul.changelog-entry li span.name {
396 396 font-size: 1.2em;
397 397 font-weight: bold;
398 398 }
399 399 ul.changelog-entry li.description {
400 400 margin: 10px 0 0;
401 401 font-size: 1.1em;
402 402 }
403 403 /** end of changelog **/
404 404
405 405 /** file **/
406 406 p.files {
407 407 margin: 0 0 0 20px;
408 408 font-size: 2.0em;
409 409 font-weight: bold;
410 410 }
411 411 /** end of file **/
412 412
413 413 /** changeset **/
414 414 h3.changeset {
415 415 margin: 20px 0 5px 20px;
416 416 padding: 0 0 2px;
417 417 font-size: 1.6em;
418 418 border-bottom: dotted 1px #D5E1E6;
419 419 }
420 420 p.changeset-age {
421 421 position: relative;
422 422 }
423 423 p.changeset-age span {
424 424 position: absolute;
425 425 top: -25px;
426 426 right: 10px;
427 427 font-size: 1.4em;
428 428 color: #CCC;
429 429 font-weight: bold;
430 430 font-style: italic;
431 431 }
432 432 p.description {
433 433 margin: 10px 30px 0 30px;
434 434 padding: 10px;
435 435 border: solid 1px #CCC;
436 436 font-size: 1.2em;
437 437 }
438 438 /** end of changeset **/
439 439
440 440 /** canvas **/
441 441 div#wrapper {
442 442 position: relative;
443 443 font-size: 1.2em;
444 444 }
445 445
446 446 canvas {
447 447 position: absolute;
448 448 z-index: 5;
449 449 top: -0.7em;
450 450 }
451 451
452 452 ul#nodebgs li.parity0 {
453 453 background: #F1F6F7;
454 454 }
455 455
456 456 ul#nodebgs li.parity1 {
457 457 background: #FFFFFF;
458 458 }
459 459
460 460 ul#graphnodes {
461 461 position: absolute;
462 462 z-index: 10;
463 463 top: 7px;
464 464 list-style: none inside none;
465 465 }
466 466
467 467 ul#nodebgs {
468 468 list-style: none inside none;
469 469 }
470 470
471 471 ul#graphnodes li, ul#nodebgs li {
472 472 height: 39px;
473 473 }
474 474
475 475 ul#graphnodes li .info {
476 476 display: block;
477 477 position: relative;
478 478 }
479 479 /** end of canvas **/
480 480
481 481 /** comparison **/
482 482 .legend {
483 483 margin-left: 20px;
484 484 padding: 1.5% 0 1.5% 0;
485 485 }
486 486
487 487 .legendinfo {
488 488 border: 1px solid #999;
489 489 font-size: 80%;
490 490 text-align: center;
491 491 padding: 0.5%;
492 492 }
493 493
494 494 .equal {
495 495 background-color: #ffffff;
496 496 }
497 497
498 498 .delete {
499 499 background-color: #faa;
500 500 color: #333;
501 501 }
502 502
503 503 .insert {
504 504 background-color: #ffa;
505 505 }
506 506
507 507 .replace {
508 508 background-color: #e8e8e8;
509 509 }
510 510
511 511 .comparison {
512 512 overflow-x: auto;
513 513 }
514 514
515 515 .comparison table td {
516 516 padding: 0px 5px;
517 517 }
518 518
519 519 .header th {
520 520 font-weight: bold;
521 521 }
522 522
523 523 .block {
524 524 border-top: 1px solid #999;
525 525 }
526 526 /** end of comparison **/
527
528 .breadcrumb a:hover {
529 text-decoration:underline;
530 }
@@ -1,320 +1,328 b''
1 1 body {
2 2 margin: 0;
3 3 padding: 0;
4 4 background: white;
5 5 font-family: sans-serif;
6 6 }
7 7
8 8 .container {
9 9 padding-left: 115px;
10 10 }
11 11
12 12 .main {
13 13 position: relative;
14 14 background: white;
15 15 padding: 2em 2em 2em 0;
16 16 }
17 17
18 18 #.main {
19 19 width: 98%;
20 20 }
21 21
22 22 .overflow {
23 23 width: 100%;
24 24 overflow: auto;
25 25 }
26 26
27 27 .menu {
28 28 width: 90px;
29 29 margin: 0;
30 30 font-size: 80%;
31 31 text-align: left;
32 32 position: absolute;
33 33 top: 20px;
34 34 left: 20px;
35 35 right: auto;
36 36 }
37 37
38 38 .menu ul {
39 39 list-style: none;
40 40 padding: 0;
41 41 margin: 10px 0 0 0;
42 42 border-left: 2px solid #999;
43 43 }
44 44
45 45 .menu li {
46 46 margin-bottom: 3px;
47 47 padding: 2px 4px;
48 48 background: white;
49 49 color: black;
50 50 font-weight: normal;
51 51 }
52 52
53 53 .menu li.active {
54 54 font-weight: bold;
55 55 }
56 56
57 57 .menu img {
58 58 width: 75px;
59 59 height: 90px;
60 60 border: 0;
61 61 }
62 62
63 63 .atom-logo img{
64 64 width: 14px;
65 65 height: 14px;
66 66 border: 0;
67 67 }
68 68
69 69 .menu a { color: black; display: block; }
70 70
71 71 .search {
72 72 position: absolute;
73 73 top: .7em;
74 74 right: 2em;
75 75 }
76 76
77 77 form.search div#hint {
78 78 display: none;
79 79 position: absolute;
80 80 top: 40px;
81 81 right: 0px;
82 82 width: 190px;
83 83 padding: 5px;
84 84 background: #ffc;
85 85 font-size: 70%;
86 86 border: 1px solid yellow;
87 87 -moz-border-radius: 5px; /* this works only in camino/firefox */
88 88 -webkit-border-radius: 5px; /* this is just for Safari */
89 89 }
90 90
91 91 form.search:hover div#hint { display: block; }
92 92
93 93 a { text-decoration:none; }
94 94 .age { white-space:nowrap; }
95 95 .date { white-space:nowrap; }
96 96 .indexlinks { white-space:nowrap; }
97 97 .parity0 { background-color: #f0f0f0; }
98 98 .parity1 { background-color: white; }
99 99 .plusline { color: green; }
100 100 .minusline { color: #dc143c; } /* crimson */
101 101 .atline { color: purple; }
102 102
103 103 .diffstat-file {
104 104 white-space: nowrap;
105 105 font-size: 90%;
106 106 }
107 107 .diffstat-total {
108 108 white-space: nowrap;
109 109 font-size: 90%;
110 110 }
111 111 .diffstat-graph {
112 112 width: 100%;
113 113 }
114 114 .diffstat-add {
115 115 background-color: green;
116 116 float: left;
117 117 }
118 118 .diffstat-remove {
119 119 background-color: red;
120 120 float: left;
121 121 }
122 122
123 123 .navigate {
124 124 text-align: right;
125 125 font-size: 60%;
126 126 margin: 1em 0;
127 127 }
128 128
129 129 .tag {
130 130 color: #999;
131 131 font-size: 70%;
132 132 font-weight: normal;
133 133 margin-left: .5em;
134 134 vertical-align: baseline;
135 135 }
136 136
137 137 .branchhead {
138 138 color: #000;
139 139 font-size: 80%;
140 140 font-weight: normal;
141 141 margin-left: .5em;
142 142 vertical-align: baseline;
143 143 }
144 144
145 145 ul#graphnodes .branchhead {
146 146 font-size: 75%;
147 147 }
148 148
149 149 .branchname {
150 150 color: #000;
151 151 font-size: 60%;
152 152 font-weight: normal;
153 153 margin-left: .5em;
154 154 vertical-align: baseline;
155 155 }
156 156
157 157 h3 .branchname {
158 158 font-size: 80%;
159 159 }
160 160
161 161 /* Common */
162 162 pre { margin: 0; }
163 163
164 164 h2 { font-size: 120%; border-bottom: 1px solid #999; }
165 165 h2 a { color: #000; }
166 166 h3 {
167 167 margin-top: -.7em;
168 168 font-size: 100%;
169 169 }
170 170
171 171 /* log and tags tables */
172 172 .bigtable {
173 173 border-bottom: 1px solid #999;
174 174 border-collapse: collapse;
175 175 font-size: 90%;
176 176 width: 100%;
177 177 font-weight: normal;
178 178 text-align: left;
179 179 }
180 180
181 181 .bigtable td {
182 182 vertical-align: top;
183 183 }
184 184
185 185 .bigtable th {
186 186 padding: 1px 4px;
187 187 border-bottom: 1px solid #999;
188 188 }
189 189 .bigtable tr { border: none; }
190 190 .bigtable .age { width: 7em; }
191 191 .bigtable .author { width: 12em; }
192 192 .bigtable .description { }
193 193 .bigtable .description .base { font-size: 70%; float: right; line-height: 1.66; }
194 194 .bigtable .node { width: 5em; font-family: monospace;}
195 195 .bigtable .permissions { width: 8em; text-align: left;}
196 196 .bigtable .size { width: 5em; text-align: right; }
197 197 .bigtable .annotate { text-align: right; }
198 198 .bigtable td.annotate { font-size: smaller; }
199 199 .bigtable td.source { font-size: inherit; }
200 200
201 201 .source, .sourcefirst, .sourcelast {
202 202 font-family: monospace;
203 203 white-space: pre;
204 204 padding: 1px 4px;
205 205 font-size: 90%;
206 206 }
207 207 .sourcefirst { border-bottom: 1px solid #999; font-weight: bold; }
208 208 .sourcelast { border-top: 1px solid #999; }
209 209 .source a { color: #999; font-size: smaller; font-family: monospace;}
210 210 .bottomline { border-bottom: 1px solid #999; }
211 211
212 212 .fileline { font-family: monospace; }
213 213 .fileline img { border: 0; }
214 214
215 215 .tagEntry .closed { color: #99f; }
216 216
217 217 /* Changeset entry */
218 218 #changesetEntry {
219 219 border-collapse: collapse;
220 220 font-size: 90%;
221 221 width: 100%;
222 222 margin-bottom: 1em;
223 223 }
224 224
225 225 #changesetEntry th {
226 226 padding: 1px 4px;
227 227 width: 4em;
228 228 text-align: right;
229 229 font-weight: normal;
230 230 color: #999;
231 231 margin-right: .5em;
232 232 vertical-align: top;
233 233 }
234 234
235 235 div.description {
236 236 border-left: 2px solid #999;
237 237 margin: 1em 0 1em 0;
238 238 padding: .3em;
239 239 white-space: pre;
240 240 font-family: monospace;
241 241 }
242 242
243 243 /* Graph */
244 244 div#wrapper {
245 245 position: relative;
246 246 border-top: 1px solid black;
247 247 border-bottom: 1px solid black;
248 248 margin: 0;
249 249 padding: 0;
250 250 }
251 251
252 252 canvas {
253 253 position: absolute;
254 254 z-index: 5;
255 255 top: -0.7em;
256 256 margin: 0;
257 257 }
258 258
259 259 ul#graphnodes {
260 260 position: absolute;
261 261 z-index: 10;
262 262 top: -1.0em;
263 263 list-style: none inside none;
264 264 padding: 0;
265 265 }
266 266
267 267 ul#nodebgs {
268 268 list-style: none inside none;
269 269 padding: 0;
270 270 margin: 0;
271 271 top: -0.7em;
272 272 }
273 273
274 274 ul#graphnodes li, ul#nodebgs li {
275 275 height: 39px;
276 276 }
277 277
278 278 ul#graphnodes li .info {
279 279 display: block;
280 280 font-size: 70%;
281 281 position: relative;
282 282 top: -3px;
283 283 }
284 284
285 285 /* Comparison */
286 286 .legend {
287 287 padding: 1.5% 0 1.5% 0;
288 288 }
289 289
290 290 .legendinfo {
291 291 border: 1px solid #999;
292 292 font-size: 80%;
293 293 text-align: center;
294 294 padding: 0.5%;
295 295 }
296 296
297 297 .equal {
298 298 background-color: #ffffff;
299 299 }
300 300
301 301 .delete {
302 302 background-color: #faa;
303 303 color: #333;
304 304 }
305 305
306 306 .insert {
307 307 background-color: #ffa;
308 308 }
309 309
310 310 .replace {
311 311 background-color: #e8e8e8;
312 312 }
313 313
314 314 .header {
315 315 text-align: center;
316 316 }
317 317
318 318 .block {
319 319 border-top: 1px solid #999;
320 320 }
321
322 .breadcrumb {
323 color: gray;
324 }
325
326 .breadcrumb a {
327 color: blue;
328 }
General Comments 0
You need to be logged in to leave comments. Login now