##// 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 # hgweb/hgweb_mod.py - Web interface for a repository.
1 # hgweb/hgweb_mod.py - Web interface for a repository.
2 #
2 #
3 # Copyright 21 May 2005 - (c) 2005 Jake Edge <jake@edge2.net>
3 # Copyright 21 May 2005 - (c) 2005 Jake Edge <jake@edge2.net>
4 # Copyright 2005-2007 Matt Mackall <mpm@selenic.com>
4 # Copyright 2005-2007 Matt Mackall <mpm@selenic.com>
5 #
5 #
6 # This software may be used and distributed according to the terms of the
6 # This software may be used and distributed according to the terms of the
7 # GNU General Public License version 2 or any later version.
7 # GNU General Public License version 2 or any later version.
8
8
9 import os
9 import os
10 from mercurial import ui, hg, hook, error, encoding, templater, util
10 from mercurial import ui, hg, hook, error, encoding, templater, util
11 from common import get_stat, ErrorResponse, permhooks, caching
11 from common import get_stat, ErrorResponse, permhooks, caching
12 from common import HTTP_OK, HTTP_NOT_MODIFIED, HTTP_BAD_REQUEST
12 from common import HTTP_OK, HTTP_NOT_MODIFIED, HTTP_BAD_REQUEST
13 from common import HTTP_NOT_FOUND, HTTP_SERVER_ERROR
13 from common import HTTP_NOT_FOUND, HTTP_SERVER_ERROR
14 from request import wsgirequest
14 from request import wsgirequest
15 import webcommands, protocol, webutil
15 import webcommands, protocol, webutil
16
16
17 perms = {
17 perms = {
18 'changegroup': 'pull',
18 'changegroup': 'pull',
19 'changegroupsubset': 'pull',
19 'changegroupsubset': 'pull',
20 'getbundle': 'pull',
20 'getbundle': 'pull',
21 'stream_out': 'pull',
21 'stream_out': 'pull',
22 'listkeys': 'pull',
22 'listkeys': 'pull',
23 'unbundle': 'push',
23 'unbundle': 'push',
24 'pushkey': 'push',
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 class hgweb(object):
51 class hgweb(object):
28 def __init__(self, repo, name=None, baseui=None):
52 def __init__(self, repo, name=None, baseui=None):
29 if isinstance(repo, str):
53 if isinstance(repo, str):
30 if baseui:
54 if baseui:
31 u = baseui.copy()
55 u = baseui.copy()
32 else:
56 else:
33 u = ui.ui()
57 u = ui.ui()
34 self.repo = hg.repository(u, repo)
58 self.repo = hg.repository(u, repo)
35 else:
59 else:
36 self.repo = repo
60 self.repo = repo
37
61
38 self.repo.ui.setconfig('ui', 'report_untrusted', 'off')
62 self.repo.ui.setconfig('ui', 'report_untrusted', 'off')
39 self.repo.ui.setconfig('ui', 'nontty', 'true')
63 self.repo.ui.setconfig('ui', 'nontty', 'true')
40 hook.redirect(True)
64 hook.redirect(True)
41 self.mtime = -1
65 self.mtime = -1
42 self.size = -1
66 self.size = -1
43 self.reponame = name
67 self.reponame = name
44 self.archives = 'zip', 'gz', 'bz2'
68 self.archives = 'zip', 'gz', 'bz2'
45 self.stripecount = 1
69 self.stripecount = 1
46 # a repo owner may set web.templates in .hg/hgrc to get any file
70 # a repo owner may set web.templates in .hg/hgrc to get any file
47 # readable by the user running the CGI script
71 # readable by the user running the CGI script
48 self.templatepath = self.config('web', 'templates')
72 self.templatepath = self.config('web', 'templates')
49
73
50 # The CGI scripts are often run by a user different from the repo owner.
74 # The CGI scripts are often run by a user different from the repo owner.
51 # Trust the settings from the .hg/hgrc files by default.
75 # Trust the settings from the .hg/hgrc files by default.
52 def config(self, section, name, default=None, untrusted=True):
76 def config(self, section, name, default=None, untrusted=True):
53 return self.repo.ui.config(section, name, default,
77 return self.repo.ui.config(section, name, default,
54 untrusted=untrusted)
78 untrusted=untrusted)
55
79
56 def configbool(self, section, name, default=False, untrusted=True):
80 def configbool(self, section, name, default=False, untrusted=True):
57 return self.repo.ui.configbool(section, name, default,
81 return self.repo.ui.configbool(section, name, default,
58 untrusted=untrusted)
82 untrusted=untrusted)
59
83
60 def configlist(self, section, name, default=None, untrusted=True):
84 def configlist(self, section, name, default=None, untrusted=True):
61 return self.repo.ui.configlist(section, name, default,
85 return self.repo.ui.configlist(section, name, default,
62 untrusted=untrusted)
86 untrusted=untrusted)
63
87
64 def refresh(self, request=None):
88 def refresh(self, request=None):
65 if request:
89 if request:
66 self.repo.ui.environ = request.env
90 self.repo.ui.environ = request.env
67 st = get_stat(self.repo.spath)
91 st = get_stat(self.repo.spath)
68 # compare changelog size in addition to mtime to catch
92 # compare changelog size in addition to mtime to catch
69 # rollbacks made less than a second ago
93 # rollbacks made less than a second ago
70 if st.st_mtime != self.mtime or st.st_size != self.size:
94 if st.st_mtime != self.mtime or st.st_size != self.size:
71 self.mtime = st.st_mtime
95 self.mtime = st.st_mtime
72 self.size = st.st_size
96 self.size = st.st_size
73 self.repo = hg.repository(self.repo.ui, self.repo.root)
97 self.repo = hg.repository(self.repo.ui, self.repo.root)
74 self.maxchanges = int(self.config("web", "maxchanges", 10))
98 self.maxchanges = int(self.config("web", "maxchanges", 10))
75 self.stripecount = int(self.config("web", "stripes", 1))
99 self.stripecount = int(self.config("web", "stripes", 1))
76 self.maxshortchanges = int(self.config("web", "maxshortchanges",
100 self.maxshortchanges = int(self.config("web", "maxshortchanges",
77 60))
101 60))
78 self.maxfiles = int(self.config("web", "maxfiles", 10))
102 self.maxfiles = int(self.config("web", "maxfiles", 10))
79 self.allowpull = self.configbool("web", "allowpull", True)
103 self.allowpull = self.configbool("web", "allowpull", True)
80 encoding.encoding = self.config("web", "encoding",
104 encoding.encoding = self.config("web", "encoding",
81 encoding.encoding)
105 encoding.encoding)
82
106
83 def run(self):
107 def run(self):
84 if not os.environ.get('GATEWAY_INTERFACE', '').startswith("CGI/1."):
108 if not os.environ.get('GATEWAY_INTERFACE', '').startswith("CGI/1."):
85 raise RuntimeError("This function is only intended to be "
109 raise RuntimeError("This function is only intended to be "
86 "called while running as a CGI script.")
110 "called while running as a CGI script.")
87 import mercurial.hgweb.wsgicgi as wsgicgi
111 import mercurial.hgweb.wsgicgi as wsgicgi
88 wsgicgi.launch(self)
112 wsgicgi.launch(self)
89
113
90 def __call__(self, env, respond):
114 def __call__(self, env, respond):
91 req = wsgirequest(env, respond)
115 req = wsgirequest(env, respond)
92 return self.run_wsgi(req)
116 return self.run_wsgi(req)
93
117
94 def run_wsgi(self, req):
118 def run_wsgi(self, req):
95
119
96 self.refresh(req)
120 self.refresh(req)
97
121
98 # work with CGI variables to create coherent structure
122 # work with CGI variables to create coherent structure
99 # use SCRIPT_NAME, PATH_INFO and QUERY_STRING as well as our REPO_NAME
123 # use SCRIPT_NAME, PATH_INFO and QUERY_STRING as well as our REPO_NAME
100
124
101 req.url = req.env['SCRIPT_NAME']
125 req.url = req.env['SCRIPT_NAME']
102 if not req.url.endswith('/'):
126 if not req.url.endswith('/'):
103 req.url += '/'
127 req.url += '/'
104 if 'REPO_NAME' in req.env:
128 if 'REPO_NAME' in req.env:
105 req.url += req.env['REPO_NAME'] + '/'
129 req.url += req.env['REPO_NAME'] + '/'
106
130
107 if 'PATH_INFO' in req.env:
131 if 'PATH_INFO' in req.env:
108 parts = req.env['PATH_INFO'].strip('/').split('/')
132 parts = req.env['PATH_INFO'].strip('/').split('/')
109 repo_parts = req.env.get('REPO_NAME', '').split('/')
133 repo_parts = req.env.get('REPO_NAME', '').split('/')
110 if parts[:len(repo_parts)] == repo_parts:
134 if parts[:len(repo_parts)] == repo_parts:
111 parts = parts[len(repo_parts):]
135 parts = parts[len(repo_parts):]
112 query = '/'.join(parts)
136 query = '/'.join(parts)
113 else:
137 else:
114 query = req.env['QUERY_STRING'].split('&', 1)[0]
138 query = req.env['QUERY_STRING'].split('&', 1)[0]
115 query = query.split(';', 1)[0]
139 query = query.split(';', 1)[0]
116
140
117 # process this if it's a protocol request
141 # process this if it's a protocol request
118 # protocol bits don't need to create any URLs
142 # protocol bits don't need to create any URLs
119 # and the clients always use the old URL structure
143 # and the clients always use the old URL structure
120
144
121 cmd = req.form.get('cmd', [''])[0]
145 cmd = req.form.get('cmd', [''])[0]
122 if protocol.iscmd(cmd):
146 if protocol.iscmd(cmd):
123 try:
147 try:
124 if query:
148 if query:
125 raise ErrorResponse(HTTP_NOT_FOUND)
149 raise ErrorResponse(HTTP_NOT_FOUND)
126 if cmd in perms:
150 if cmd in perms:
127 self.check_perm(req, perms[cmd])
151 self.check_perm(req, perms[cmd])
128 return protocol.call(self.repo, req, cmd)
152 return protocol.call(self.repo, req, cmd)
129 except ErrorResponse, inst:
153 except ErrorResponse, inst:
130 # A client that sends unbundle without 100-continue will
154 # A client that sends unbundle without 100-continue will
131 # break if we respond early.
155 # break if we respond early.
132 if (cmd == 'unbundle' and
156 if (cmd == 'unbundle' and
133 (req.env.get('HTTP_EXPECT',
157 (req.env.get('HTTP_EXPECT',
134 '').lower() != '100-continue') or
158 '').lower() != '100-continue') or
135 req.env.get('X-HgHttp2', '')):
159 req.env.get('X-HgHttp2', '')):
136 req.drain()
160 req.drain()
137 req.respond(inst, protocol.HGTYPE)
161 req.respond(inst, protocol.HGTYPE)
138 return '0\n%s\n' % inst.message
162 return '0\n%s\n' % inst.message
139
163
140 # translate user-visible url structure to internal structure
164 # translate user-visible url structure to internal structure
141
165
142 args = query.split('/', 2)
166 args = query.split('/', 2)
143 if 'cmd' not in req.form and args and args[0]:
167 if 'cmd' not in req.form and args and args[0]:
144
168
145 cmd = args.pop(0)
169 cmd = args.pop(0)
146 style = cmd.rfind('-')
170 style = cmd.rfind('-')
147 if style != -1:
171 if style != -1:
148 req.form['style'] = [cmd[:style]]
172 req.form['style'] = [cmd[:style]]
149 cmd = cmd[style + 1:]
173 cmd = cmd[style + 1:]
150
174
151 # avoid accepting e.g. style parameter as command
175 # avoid accepting e.g. style parameter as command
152 if util.safehasattr(webcommands, cmd):
176 if util.safehasattr(webcommands, cmd):
153 req.form['cmd'] = [cmd]
177 req.form['cmd'] = [cmd]
154 else:
178 else:
155 cmd = ''
179 cmd = ''
156
180
157 if cmd == 'static':
181 if cmd == 'static':
158 req.form['file'] = ['/'.join(args)]
182 req.form['file'] = ['/'.join(args)]
159 else:
183 else:
160 if args and args[0]:
184 if args and args[0]:
161 node = args.pop(0)
185 node = args.pop(0)
162 req.form['node'] = [node]
186 req.form['node'] = [node]
163 if args:
187 if args:
164 req.form['file'] = args
188 req.form['file'] = args
165
189
166 ua = req.env.get('HTTP_USER_AGENT', '')
190 ua = req.env.get('HTTP_USER_AGENT', '')
167 if cmd == 'rev' and 'mercurial' in ua:
191 if cmd == 'rev' and 'mercurial' in ua:
168 req.form['style'] = ['raw']
192 req.form['style'] = ['raw']
169
193
170 if cmd == 'archive':
194 if cmd == 'archive':
171 fn = req.form['node'][0]
195 fn = req.form['node'][0]
172 for type_, spec in self.archive_specs.iteritems():
196 for type_, spec in self.archive_specs.iteritems():
173 ext = spec[2]
197 ext = spec[2]
174 if fn.endswith(ext):
198 if fn.endswith(ext):
175 req.form['node'] = [fn[:-len(ext)]]
199 req.form['node'] = [fn[:-len(ext)]]
176 req.form['type'] = [type_]
200 req.form['type'] = [type_]
177
201
178 # process the web interface request
202 # process the web interface request
179
203
180 try:
204 try:
181 tmpl = self.templater(req)
205 tmpl = self.templater(req)
182 ctype = tmpl('mimetype', encoding=encoding.encoding)
206 ctype = tmpl('mimetype', encoding=encoding.encoding)
183 ctype = templater.stringify(ctype)
207 ctype = templater.stringify(ctype)
184
208
185 # check read permissions non-static content
209 # check read permissions non-static content
186 if cmd != 'static':
210 if cmd != 'static':
187 self.check_perm(req, None)
211 self.check_perm(req, None)
188
212
189 if cmd == '':
213 if cmd == '':
190 req.form['cmd'] = [tmpl.cache['default']]
214 req.form['cmd'] = [tmpl.cache['default']]
191 cmd = req.form['cmd'][0]
215 cmd = req.form['cmd'][0]
192
216
193 if self.configbool('web', 'cache', True):
217 if self.configbool('web', 'cache', True):
194 caching(self, req) # sets ETag header or raises NOT_MODIFIED
218 caching(self, req) # sets ETag header or raises NOT_MODIFIED
195 if cmd not in webcommands.__all__:
219 if cmd not in webcommands.__all__:
196 msg = 'no such method: %s' % cmd
220 msg = 'no such method: %s' % cmd
197 raise ErrorResponse(HTTP_BAD_REQUEST, msg)
221 raise ErrorResponse(HTTP_BAD_REQUEST, msg)
198 elif cmd == 'file' and 'raw' in req.form.get('style', []):
222 elif cmd == 'file' and 'raw' in req.form.get('style', []):
199 self.ctype = ctype
223 self.ctype = ctype
200 content = webcommands.rawfile(self, req, tmpl)
224 content = webcommands.rawfile(self, req, tmpl)
201 else:
225 else:
202 content = getattr(webcommands, cmd)(self, req, tmpl)
226 content = getattr(webcommands, cmd)(self, req, tmpl)
203 req.respond(HTTP_OK, ctype)
227 req.respond(HTTP_OK, ctype)
204
228
205 return content
229 return content
206
230
207 except error.LookupError, err:
231 except error.LookupError, err:
208 req.respond(HTTP_NOT_FOUND, ctype)
232 req.respond(HTTP_NOT_FOUND, ctype)
209 msg = str(err)
233 msg = str(err)
210 if 'manifest' not in msg:
234 if 'manifest' not in msg:
211 msg = 'revision not found: %s' % err.name
235 msg = 'revision not found: %s' % err.name
212 return tmpl('error', error=msg)
236 return tmpl('error', error=msg)
213 except (error.RepoError, error.RevlogError), inst:
237 except (error.RepoError, error.RevlogError), inst:
214 req.respond(HTTP_SERVER_ERROR, ctype)
238 req.respond(HTTP_SERVER_ERROR, ctype)
215 return tmpl('error', error=str(inst))
239 return tmpl('error', error=str(inst))
216 except ErrorResponse, inst:
240 except ErrorResponse, inst:
217 req.respond(inst, ctype)
241 req.respond(inst, ctype)
218 if inst.code == HTTP_NOT_MODIFIED:
242 if inst.code == HTTP_NOT_MODIFIED:
219 # Not allowed to return a body on a 304
243 # Not allowed to return a body on a 304
220 return ['']
244 return ['']
221 return tmpl('error', error=inst.message)
245 return tmpl('error', error=inst.message)
222
246
223 def templater(self, req):
247 def templater(self, req):
224
248
225 # determine scheme, port and server name
249 # determine scheme, port and server name
226 # this is needed to create absolute urls
250 # this is needed to create absolute urls
227
251
228 proto = req.env.get('wsgi.url_scheme')
252 proto = req.env.get('wsgi.url_scheme')
229 if proto == 'https':
253 if proto == 'https':
230 proto = 'https'
254 proto = 'https'
231 default_port = "443"
255 default_port = "443"
232 else:
256 else:
233 proto = 'http'
257 proto = 'http'
234 default_port = "80"
258 default_port = "80"
235
259
236 port = req.env["SERVER_PORT"]
260 port = req.env["SERVER_PORT"]
237 port = port != default_port and (":" + port) or ""
261 port = port != default_port and (":" + port) or ""
238 urlbase = '%s://%s%s' % (proto, req.env['SERVER_NAME'], port)
262 urlbase = '%s://%s%s' % (proto, req.env['SERVER_NAME'], port)
239 logourl = self.config("web", "logourl", "http://mercurial.selenic.com/")
263 logourl = self.config("web", "logourl", "http://mercurial.selenic.com/")
240 logoimg = self.config("web", "logoimg", "hglogo.png")
264 logoimg = self.config("web", "logoimg", "hglogo.png")
241 staticurl = self.config("web", "staticurl") or req.url + 'static/'
265 staticurl = self.config("web", "staticurl") or req.url + 'static/'
242 if not staticurl.endswith('/'):
266 if not staticurl.endswith('/'):
243 staticurl += '/'
267 staticurl += '/'
244
268
245 # some functions for the templater
269 # some functions for the templater
246
270
247 def header(**map):
271 def header(**map):
248 yield tmpl('header', encoding=encoding.encoding, **map)
272 yield tmpl('header', encoding=encoding.encoding, **map)
249
273
250 def footer(**map):
274 def footer(**map):
251 yield tmpl("footer", **map)
275 yield tmpl("footer", **map)
252
276
253 def motd(**map):
277 def motd(**map):
254 yield self.config("web", "motd", "")
278 yield self.config("web", "motd", "")
255
279
256 # figure out which style to use
280 # figure out which style to use
257
281
258 vars = {}
282 vars = {}
259 styles = (
283 styles = (
260 req.form.get('style', [None])[0],
284 req.form.get('style', [None])[0],
261 self.config('web', 'style'),
285 self.config('web', 'style'),
262 'paper',
286 'paper',
263 )
287 )
264 style, mapfile = templater.stylemap(styles, self.templatepath)
288 style, mapfile = templater.stylemap(styles, self.templatepath)
265 if style == styles[0]:
289 if style == styles[0]:
266 vars['style'] = style
290 vars['style'] = style
267
291
268 start = req.url[-1] == '?' and '&' or '?'
292 start = req.url[-1] == '?' and '&' or '?'
269 sessionvars = webutil.sessionvars(vars, start)
293 sessionvars = webutil.sessionvars(vars, start)
270
294
271 if not self.reponame:
295 if not self.reponame:
272 self.reponame = (self.config("web", "name")
296 self.reponame = (self.config("web", "name")
273 or req.env.get('REPO_NAME')
297 or req.env.get('REPO_NAME')
274 or req.url.strip('/') or self.repo.root)
298 or req.url.strip('/') or self.repo.root)
275
299
276 # create the templater
300 # create the templater
277
301
278 tmpl = templater.templater(mapfile,
302 tmpl = templater.templater(mapfile,
279 defaults={"url": req.url,
303 defaults={"url": req.url,
280 "logourl": logourl,
304 "logourl": logourl,
281 "logoimg": logoimg,
305 "logoimg": logoimg,
282 "staticurl": staticurl,
306 "staticurl": staticurl,
283 "urlbase": urlbase,
307 "urlbase": urlbase,
284 "repo": self.reponame,
308 "repo": self.reponame,
285 "header": header,
309 "header": header,
286 "footer": footer,
310 "footer": footer,
287 "motd": motd,
311 "motd": motd,
288 "sessionvars": sessionvars
312 "sessionvars": sessionvars,
313 "pathdef": makebreadcrumb(req.url),
289 })
314 })
290 return tmpl
315 return tmpl
291
316
292 def archivelist(self, nodeid):
317 def archivelist(self, nodeid):
293 allowed = self.configlist("web", "allow_archive")
318 allowed = self.configlist("web", "allow_archive")
294 for i, spec in self.archive_specs.iteritems():
319 for i, spec in self.archive_specs.iteritems():
295 if i in allowed or self.configbool("web", "allow" + i):
320 if i in allowed or self.configbool("web", "allow" + i):
296 yield {"type" : i, "extension" : spec[2], "node" : nodeid}
321 yield {"type" : i, "extension" : spec[2], "node" : nodeid}
297
322
298 archive_specs = {
323 archive_specs = {
299 'bz2': ('application/x-bzip2', 'tbz2', '.tar.bz2', None),
324 'bz2': ('application/x-bzip2', 'tbz2', '.tar.bz2', None),
300 'gz': ('application/x-gzip', 'tgz', '.tar.gz', None),
325 'gz': ('application/x-gzip', 'tgz', '.tar.gz', None),
301 'zip': ('application/zip', 'zip', '.zip', None),
326 'zip': ('application/zip', 'zip', '.zip', None),
302 }
327 }
303
328
304 def check_perm(self, req, op):
329 def check_perm(self, req, op):
305 for hook in permhooks:
330 for hook in permhooks:
306 hook(self, req, op)
331 hook(self, req, op)
@@ -1,458 +1,459 b''
1 # hgweb/hgwebdir_mod.py - Web interface for a directory of repositories.
1 # hgweb/hgwebdir_mod.py - Web interface for a directory of repositories.
2 #
2 #
3 # Copyright 21 May 2005 - (c) 2005 Jake Edge <jake@edge2.net>
3 # Copyright 21 May 2005 - (c) 2005 Jake Edge <jake@edge2.net>
4 # Copyright 2005, 2006 Matt Mackall <mpm@selenic.com>
4 # Copyright 2005, 2006 Matt Mackall <mpm@selenic.com>
5 #
5 #
6 # This software may be used and distributed according to the terms of the
6 # This software may be used and distributed according to the terms of the
7 # GNU General Public License version 2 or any later version.
7 # GNU General Public License version 2 or any later version.
8
8
9 import os, re, time
9 import os, re, time
10 from mercurial.i18n import _
10 from mercurial.i18n import _
11 from mercurial import ui, hg, scmutil, util, templater
11 from mercurial import ui, hg, scmutil, util, templater
12 from mercurial import error, encoding
12 from mercurial import error, encoding
13 from common import ErrorResponse, get_mtime, staticfile, paritygen, \
13 from common import ErrorResponse, get_mtime, staticfile, paritygen, \
14 get_contact, HTTP_OK, HTTP_NOT_FOUND, HTTP_SERVER_ERROR
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 from request import wsgirequest
16 from request import wsgirequest
17 import webutil
17 import webutil
18
18
19 def cleannames(items):
19 def cleannames(items):
20 return [(util.pconvert(name).strip('/'), path) for name, path in items]
20 return [(util.pconvert(name).strip('/'), path) for name, path in items]
21
21
22 def findrepos(paths):
22 def findrepos(paths):
23 repos = []
23 repos = []
24 for prefix, root in cleannames(paths):
24 for prefix, root in cleannames(paths):
25 roothead, roottail = os.path.split(root)
25 roothead, roottail = os.path.split(root)
26 # "foo = /bar/*" or "foo = /bar/**" lets every repo /bar/N in or below
26 # "foo = /bar/*" or "foo = /bar/**" lets every repo /bar/N in or below
27 # /bar/ be served as as foo/N .
27 # /bar/ be served as as foo/N .
28 # '*' will not search inside dirs with .hg (except .hg/patches),
28 # '*' will not search inside dirs with .hg (except .hg/patches),
29 # '**' will search inside dirs with .hg (and thus also find subrepos).
29 # '**' will search inside dirs with .hg (and thus also find subrepos).
30 try:
30 try:
31 recurse = {'*': False, '**': True}[roottail]
31 recurse = {'*': False, '**': True}[roottail]
32 except KeyError:
32 except KeyError:
33 repos.append((prefix, root))
33 repos.append((prefix, root))
34 continue
34 continue
35 roothead = os.path.normpath(os.path.abspath(roothead))
35 roothead = os.path.normpath(os.path.abspath(roothead))
36 paths = scmutil.walkrepos(roothead, followsym=True, recurse=recurse)
36 paths = scmutil.walkrepos(roothead, followsym=True, recurse=recurse)
37 repos.extend(urlrepos(prefix, roothead, paths))
37 repos.extend(urlrepos(prefix, roothead, paths))
38 return repos
38 return repos
39
39
40 def urlrepos(prefix, roothead, paths):
40 def urlrepos(prefix, roothead, paths):
41 """yield url paths and filesystem paths from a list of repo paths
41 """yield url paths and filesystem paths from a list of repo paths
42
42
43 >>> conv = lambda seq: [(v, util.pconvert(p)) for v,p in seq]
43 >>> conv = lambda seq: [(v, util.pconvert(p)) for v,p in seq]
44 >>> conv(urlrepos('hg', '/opt', ['/opt/r', '/opt/r/r', '/opt']))
44 >>> conv(urlrepos('hg', '/opt', ['/opt/r', '/opt/r/r', '/opt']))
45 [('hg/r', '/opt/r'), ('hg/r/r', '/opt/r/r'), ('hg', '/opt')]
45 [('hg/r', '/opt/r'), ('hg/r/r', '/opt/r/r'), ('hg', '/opt')]
46 >>> conv(urlrepos('', '/opt', ['/opt/r', '/opt/r/r', '/opt']))
46 >>> conv(urlrepos('', '/opt', ['/opt/r', '/opt/r/r', '/opt']))
47 [('r', '/opt/r'), ('r/r', '/opt/r/r'), ('', '/opt')]
47 [('r', '/opt/r'), ('r/r', '/opt/r/r'), ('', '/opt')]
48 """
48 """
49 for path in paths:
49 for path in paths:
50 path = os.path.normpath(path)
50 path = os.path.normpath(path)
51 yield (prefix + '/' +
51 yield (prefix + '/' +
52 util.pconvert(path[len(roothead):]).lstrip('/')).strip('/'), path
52 util.pconvert(path[len(roothead):]).lstrip('/')).strip('/'), path
53
53
54 def geturlcgivars(baseurl, port):
54 def geturlcgivars(baseurl, port):
55 """
55 """
56 Extract CGI variables from baseurl
56 Extract CGI variables from baseurl
57
57
58 >>> geturlcgivars("http://host.org/base", "80")
58 >>> geturlcgivars("http://host.org/base", "80")
59 ('host.org', '80', '/base')
59 ('host.org', '80', '/base')
60 >>> geturlcgivars("http://host.org:8000/base", "80")
60 >>> geturlcgivars("http://host.org:8000/base", "80")
61 ('host.org', '8000', '/base')
61 ('host.org', '8000', '/base')
62 >>> geturlcgivars('/base', 8000)
62 >>> geturlcgivars('/base', 8000)
63 ('', '8000', '/base')
63 ('', '8000', '/base')
64 >>> geturlcgivars("base", '8000')
64 >>> geturlcgivars("base", '8000')
65 ('', '8000', '/base')
65 ('', '8000', '/base')
66 >>> geturlcgivars("http://host", '8000')
66 >>> geturlcgivars("http://host", '8000')
67 ('host', '8000', '/')
67 ('host', '8000', '/')
68 >>> geturlcgivars("http://host/", '8000')
68 >>> geturlcgivars("http://host/", '8000')
69 ('host', '8000', '/')
69 ('host', '8000', '/')
70 """
70 """
71 u = util.url(baseurl)
71 u = util.url(baseurl)
72 name = u.host or ''
72 name = u.host or ''
73 if u.port:
73 if u.port:
74 port = u.port
74 port = u.port
75 path = u.path or ""
75 path = u.path or ""
76 if not path.startswith('/'):
76 if not path.startswith('/'):
77 path = '/' + path
77 path = '/' + path
78
78
79 return name, str(port), path
79 return name, str(port), path
80
80
81 class hgwebdir(object):
81 class hgwebdir(object):
82 refreshinterval = 20
82 refreshinterval = 20
83
83
84 def __init__(self, conf, baseui=None):
84 def __init__(self, conf, baseui=None):
85 self.conf = conf
85 self.conf = conf
86 self.baseui = baseui
86 self.baseui = baseui
87 self.lastrefresh = 0
87 self.lastrefresh = 0
88 self.motd = None
88 self.motd = None
89 self.refresh()
89 self.refresh()
90
90
91 def refresh(self):
91 def refresh(self):
92 if self.lastrefresh + self.refreshinterval > time.time():
92 if self.lastrefresh + self.refreshinterval > time.time():
93 return
93 return
94
94
95 if self.baseui:
95 if self.baseui:
96 u = self.baseui.copy()
96 u = self.baseui.copy()
97 else:
97 else:
98 u = ui.ui()
98 u = ui.ui()
99 u.setconfig('ui', 'report_untrusted', 'off')
99 u.setconfig('ui', 'report_untrusted', 'off')
100 u.setconfig('ui', 'nontty', 'true')
100 u.setconfig('ui', 'nontty', 'true')
101
101
102 if not isinstance(self.conf, (dict, list, tuple)):
102 if not isinstance(self.conf, (dict, list, tuple)):
103 map = {'paths': 'hgweb-paths'}
103 map = {'paths': 'hgweb-paths'}
104 if not os.path.exists(self.conf):
104 if not os.path.exists(self.conf):
105 raise util.Abort(_('config file %s not found!') % self.conf)
105 raise util.Abort(_('config file %s not found!') % self.conf)
106 u.readconfig(self.conf, remap=map, trust=True)
106 u.readconfig(self.conf, remap=map, trust=True)
107 paths = []
107 paths = []
108 for name, ignored in u.configitems('hgweb-paths'):
108 for name, ignored in u.configitems('hgweb-paths'):
109 for path in u.configlist('hgweb-paths', name):
109 for path in u.configlist('hgweb-paths', name):
110 paths.append((name, path))
110 paths.append((name, path))
111 elif isinstance(self.conf, (list, tuple)):
111 elif isinstance(self.conf, (list, tuple)):
112 paths = self.conf
112 paths = self.conf
113 elif isinstance(self.conf, dict):
113 elif isinstance(self.conf, dict):
114 paths = self.conf.items()
114 paths = self.conf.items()
115
115
116 repos = findrepos(paths)
116 repos = findrepos(paths)
117 for prefix, root in u.configitems('collections'):
117 for prefix, root in u.configitems('collections'):
118 prefix = util.pconvert(prefix)
118 prefix = util.pconvert(prefix)
119 for path in scmutil.walkrepos(root, followsym=True):
119 for path in scmutil.walkrepos(root, followsym=True):
120 repo = os.path.normpath(path)
120 repo = os.path.normpath(path)
121 name = util.pconvert(repo)
121 name = util.pconvert(repo)
122 if name.startswith(prefix):
122 if name.startswith(prefix):
123 name = name[len(prefix):]
123 name = name[len(prefix):]
124 repos.append((name.lstrip('/'), repo))
124 repos.append((name.lstrip('/'), repo))
125
125
126 self.repos = repos
126 self.repos = repos
127 self.ui = u
127 self.ui = u
128 encoding.encoding = self.ui.config('web', 'encoding',
128 encoding.encoding = self.ui.config('web', 'encoding',
129 encoding.encoding)
129 encoding.encoding)
130 self.style = self.ui.config('web', 'style', 'paper')
130 self.style = self.ui.config('web', 'style', 'paper')
131 self.templatepath = self.ui.config('web', 'templates', None)
131 self.templatepath = self.ui.config('web', 'templates', None)
132 self.stripecount = self.ui.config('web', 'stripes', 1)
132 self.stripecount = self.ui.config('web', 'stripes', 1)
133 if self.stripecount:
133 if self.stripecount:
134 self.stripecount = int(self.stripecount)
134 self.stripecount = int(self.stripecount)
135 self._baseurl = self.ui.config('web', 'baseurl')
135 self._baseurl = self.ui.config('web', 'baseurl')
136 self.lastrefresh = time.time()
136 self.lastrefresh = time.time()
137
137
138 def run(self):
138 def run(self):
139 if not os.environ.get('GATEWAY_INTERFACE', '').startswith("CGI/1."):
139 if not os.environ.get('GATEWAY_INTERFACE', '').startswith("CGI/1."):
140 raise RuntimeError("This function is only intended to be "
140 raise RuntimeError("This function is only intended to be "
141 "called while running as a CGI script.")
141 "called while running as a CGI script.")
142 import mercurial.hgweb.wsgicgi as wsgicgi
142 import mercurial.hgweb.wsgicgi as wsgicgi
143 wsgicgi.launch(self)
143 wsgicgi.launch(self)
144
144
145 def __call__(self, env, respond):
145 def __call__(self, env, respond):
146 req = wsgirequest(env, respond)
146 req = wsgirequest(env, respond)
147 return self.run_wsgi(req)
147 return self.run_wsgi(req)
148
148
149 def read_allowed(self, ui, req):
149 def read_allowed(self, ui, req):
150 """Check allow_read and deny_read config options of a repo's ui object
150 """Check allow_read and deny_read config options of a repo's ui object
151 to determine user permissions. By default, with neither option set (or
151 to determine user permissions. By default, with neither option set (or
152 both empty), allow all users to read the repo. There are two ways a
152 both empty), allow all users to read the repo. There are two ways a
153 user can be denied read access: (1) deny_read is not empty, and the
153 user can be denied read access: (1) deny_read is not empty, and the
154 user is unauthenticated or deny_read contains user (or *), and (2)
154 user is unauthenticated or deny_read contains user (or *), and (2)
155 allow_read is not empty and the user is not in allow_read. Return True
155 allow_read is not empty and the user is not in allow_read. Return True
156 if user is allowed to read the repo, else return False."""
156 if user is allowed to read the repo, else return False."""
157
157
158 user = req.env.get('REMOTE_USER')
158 user = req.env.get('REMOTE_USER')
159
159
160 deny_read = ui.configlist('web', 'deny_read', untrusted=True)
160 deny_read = ui.configlist('web', 'deny_read', untrusted=True)
161 if deny_read and (not user or deny_read == ['*'] or user in deny_read):
161 if deny_read and (not user or deny_read == ['*'] or user in deny_read):
162 return False
162 return False
163
163
164 allow_read = ui.configlist('web', 'allow_read', untrusted=True)
164 allow_read = ui.configlist('web', 'allow_read', untrusted=True)
165 # by default, allow reading if no allow_read option has been set
165 # by default, allow reading if no allow_read option has been set
166 if (not allow_read) or (allow_read == ['*']) or (user in allow_read):
166 if (not allow_read) or (allow_read == ['*']) or (user in allow_read):
167 return True
167 return True
168
168
169 return False
169 return False
170
170
171 def run_wsgi(self, req):
171 def run_wsgi(self, req):
172 try:
172 try:
173 try:
173 try:
174 self.refresh()
174 self.refresh()
175
175
176 virtual = req.env.get("PATH_INFO", "").strip('/')
176 virtual = req.env.get("PATH_INFO", "").strip('/')
177 tmpl = self.templater(req)
177 tmpl = self.templater(req)
178 ctype = tmpl('mimetype', encoding=encoding.encoding)
178 ctype = tmpl('mimetype', encoding=encoding.encoding)
179 ctype = templater.stringify(ctype)
179 ctype = templater.stringify(ctype)
180
180
181 # a static file
181 # a static file
182 if virtual.startswith('static/') or 'static' in req.form:
182 if virtual.startswith('static/') or 'static' in req.form:
183 if virtual.startswith('static/'):
183 if virtual.startswith('static/'):
184 fname = virtual[7:]
184 fname = virtual[7:]
185 else:
185 else:
186 fname = req.form['static'][0]
186 fname = req.form['static'][0]
187 static = self.ui.config("web", "static", None,
187 static = self.ui.config("web", "static", None,
188 untrusted=False)
188 untrusted=False)
189 if not static:
189 if not static:
190 tp = self.templatepath or templater.templatepath()
190 tp = self.templatepath or templater.templatepath()
191 if isinstance(tp, str):
191 if isinstance(tp, str):
192 tp = [tp]
192 tp = [tp]
193 static = [os.path.join(p, 'static') for p in tp]
193 static = [os.path.join(p, 'static') for p in tp]
194 return (staticfile(static, fname, req),)
194 return (staticfile(static, fname, req),)
195
195
196 # top-level index
196 # top-level index
197 elif not virtual:
197 elif not virtual:
198 req.respond(HTTP_OK, ctype)
198 req.respond(HTTP_OK, ctype)
199 return self.makeindex(req, tmpl)
199 return self.makeindex(req, tmpl)
200
200
201 # nested indexes and hgwebs
201 # nested indexes and hgwebs
202
202
203 repos = dict(self.repos)
203 repos = dict(self.repos)
204 virtualrepo = virtual
204 virtualrepo = virtual
205 while virtualrepo:
205 while virtualrepo:
206 real = repos.get(virtualrepo)
206 real = repos.get(virtualrepo)
207 if real:
207 if real:
208 req.env['REPO_NAME'] = virtualrepo
208 req.env['REPO_NAME'] = virtualrepo
209 try:
209 try:
210 repo = hg.repository(self.ui, real)
210 repo = hg.repository(self.ui, real)
211 return hgweb(repo).run_wsgi(req)
211 return hgweb(repo).run_wsgi(req)
212 except IOError, inst:
212 except IOError, inst:
213 msg = inst.strerror
213 msg = inst.strerror
214 raise ErrorResponse(HTTP_SERVER_ERROR, msg)
214 raise ErrorResponse(HTTP_SERVER_ERROR, msg)
215 except error.RepoError, inst:
215 except error.RepoError, inst:
216 raise ErrorResponse(HTTP_SERVER_ERROR, str(inst))
216 raise ErrorResponse(HTTP_SERVER_ERROR, str(inst))
217
217
218 up = virtualrepo.rfind('/')
218 up = virtualrepo.rfind('/')
219 if up < 0:
219 if up < 0:
220 break
220 break
221 virtualrepo = virtualrepo[:up]
221 virtualrepo = virtualrepo[:up]
222
222
223 # browse subdirectories
223 # browse subdirectories
224 subdir = virtual + '/'
224 subdir = virtual + '/'
225 if [r for r in repos if r.startswith(subdir)]:
225 if [r for r in repos if r.startswith(subdir)]:
226 req.respond(HTTP_OK, ctype)
226 req.respond(HTTP_OK, ctype)
227 return self.makeindex(req, tmpl, subdir)
227 return self.makeindex(req, tmpl, subdir)
228
228
229 # prefixes not found
229 # prefixes not found
230 req.respond(HTTP_NOT_FOUND, ctype)
230 req.respond(HTTP_NOT_FOUND, ctype)
231 return tmpl("notfound", repo=virtual)
231 return tmpl("notfound", repo=virtual)
232
232
233 except ErrorResponse, err:
233 except ErrorResponse, err:
234 req.respond(err, ctype)
234 req.respond(err, ctype)
235 return tmpl('error', error=err.message or '')
235 return tmpl('error', error=err.message or '')
236 finally:
236 finally:
237 tmpl = None
237 tmpl = None
238
238
239 def makeindex(self, req, tmpl, subdir=""):
239 def makeindex(self, req, tmpl, subdir=""):
240
240
241 def archivelist(ui, nodeid, url):
241 def archivelist(ui, nodeid, url):
242 allowed = ui.configlist("web", "allow_archive", untrusted=True)
242 allowed = ui.configlist("web", "allow_archive", untrusted=True)
243 archives = []
243 archives = []
244 for i in [('zip', '.zip'), ('gz', '.tar.gz'), ('bz2', '.tar.bz2')]:
244 for i in [('zip', '.zip'), ('gz', '.tar.gz'), ('bz2', '.tar.bz2')]:
245 if i[0] in allowed or ui.configbool("web", "allow" + i[0],
245 if i[0] in allowed or ui.configbool("web", "allow" + i[0],
246 untrusted=True):
246 untrusted=True):
247 archives.append({"type" : i[0], "extension": i[1],
247 archives.append({"type" : i[0], "extension": i[1],
248 "node": nodeid, "url": url})
248 "node": nodeid, "url": url})
249 return archives
249 return archives
250
250
251 def rawentries(subdir="", **map):
251 def rawentries(subdir="", **map):
252
252
253 descend = self.ui.configbool('web', 'descend', True)
253 descend = self.ui.configbool('web', 'descend', True)
254 collapse = self.ui.configbool('web', 'collapse', False)
254 collapse = self.ui.configbool('web', 'collapse', False)
255 seenrepos = set()
255 seenrepos = set()
256 seendirs = set()
256 seendirs = set()
257 for name, path in self.repos:
257 for name, path in self.repos:
258
258
259 if not name.startswith(subdir):
259 if not name.startswith(subdir):
260 continue
260 continue
261 name = name[len(subdir):]
261 name = name[len(subdir):]
262 directory = False
262 directory = False
263
263
264 if '/' in name:
264 if '/' in name:
265 if not descend:
265 if not descend:
266 continue
266 continue
267
267
268 nameparts = name.split('/')
268 nameparts = name.split('/')
269 rootname = nameparts[0]
269 rootname = nameparts[0]
270
270
271 if not collapse:
271 if not collapse:
272 pass
272 pass
273 elif rootname in seendirs:
273 elif rootname in seendirs:
274 continue
274 continue
275 elif rootname in seenrepos:
275 elif rootname in seenrepos:
276 pass
276 pass
277 else:
277 else:
278 directory = True
278 directory = True
279 name = rootname
279 name = rootname
280
280
281 # redefine the path to refer to the directory
281 # redefine the path to refer to the directory
282 discarded = '/'.join(nameparts[1:])
282 discarded = '/'.join(nameparts[1:])
283
283
284 # remove name parts plus accompanying slash
284 # remove name parts plus accompanying slash
285 path = path[:-len(discarded) - 1]
285 path = path[:-len(discarded) - 1]
286
286
287 parts = [name]
287 parts = [name]
288 if 'PATH_INFO' in req.env:
288 if 'PATH_INFO' in req.env:
289 parts.insert(0, req.env['PATH_INFO'].rstrip('/'))
289 parts.insert(0, req.env['PATH_INFO'].rstrip('/'))
290 if req.env['SCRIPT_NAME']:
290 if req.env['SCRIPT_NAME']:
291 parts.insert(0, req.env['SCRIPT_NAME'])
291 parts.insert(0, req.env['SCRIPT_NAME'])
292 url = re.sub(r'/+', '/', '/'.join(parts) + '/')
292 url = re.sub(r'/+', '/', '/'.join(parts) + '/')
293
293
294 # show either a directory entry or a repository
294 # show either a directory entry or a repository
295 if directory:
295 if directory:
296 # get the directory's time information
296 # get the directory's time information
297 try:
297 try:
298 d = (get_mtime(path), util.makedate()[1])
298 d = (get_mtime(path), util.makedate()[1])
299 except OSError:
299 except OSError:
300 continue
300 continue
301
301
302 # add '/' to the name to make it obvious that
302 # add '/' to the name to make it obvious that
303 # the entry is a directory, not a regular repository
303 # the entry is a directory, not a regular repository
304 row = dict(contact="",
304 row = dict(contact="",
305 contact_sort="",
305 contact_sort="",
306 name=name + '/',
306 name=name + '/',
307 name_sort=name,
307 name_sort=name,
308 url=url,
308 url=url,
309 description="",
309 description="",
310 description_sort="",
310 description_sort="",
311 lastchange=d,
311 lastchange=d,
312 lastchange_sort=d[1]-d[0],
312 lastchange_sort=d[1]-d[0],
313 archives=[],
313 archives=[],
314 isdirectory=True)
314 isdirectory=True)
315
315
316 seendirs.add(name)
316 seendirs.add(name)
317 yield row
317 yield row
318 continue
318 continue
319
319
320 u = self.ui.copy()
320 u = self.ui.copy()
321 try:
321 try:
322 u.readconfig(os.path.join(path, '.hg', 'hgrc'))
322 u.readconfig(os.path.join(path, '.hg', 'hgrc'))
323 except Exception, e:
323 except Exception, e:
324 u.warn(_('error reading %s/.hg/hgrc: %s\n') % (path, e))
324 u.warn(_('error reading %s/.hg/hgrc: %s\n') % (path, e))
325 continue
325 continue
326 def get(section, name, default=None):
326 def get(section, name, default=None):
327 return u.config(section, name, default, untrusted=True)
327 return u.config(section, name, default, untrusted=True)
328
328
329 if u.configbool("web", "hidden", untrusted=True):
329 if u.configbool("web", "hidden", untrusted=True):
330 continue
330 continue
331
331
332 if not self.read_allowed(u, req):
332 if not self.read_allowed(u, req):
333 continue
333 continue
334
334
335 # update time with local timezone
335 # update time with local timezone
336 try:
336 try:
337 r = hg.repository(self.ui, path)
337 r = hg.repository(self.ui, path)
338 except IOError:
338 except IOError:
339 u.warn(_('error accessing repository at %s\n') % path)
339 u.warn(_('error accessing repository at %s\n') % path)
340 continue
340 continue
341 except error.RepoError:
341 except error.RepoError:
342 u.warn(_('error accessing repository at %s\n') % path)
342 u.warn(_('error accessing repository at %s\n') % path)
343 continue
343 continue
344 try:
344 try:
345 d = (get_mtime(r.spath), util.makedate()[1])
345 d = (get_mtime(r.spath), util.makedate()[1])
346 except OSError:
346 except OSError:
347 continue
347 continue
348
348
349 contact = get_contact(get)
349 contact = get_contact(get)
350 description = get("web", "description", "")
350 description = get("web", "description", "")
351 name = get("web", "name", name)
351 name = get("web", "name", name)
352 row = dict(contact=contact or "unknown",
352 row = dict(contact=contact or "unknown",
353 contact_sort=contact.upper() or "unknown",
353 contact_sort=contact.upper() or "unknown",
354 name=name,
354 name=name,
355 name_sort=name,
355 name_sort=name,
356 url=url,
356 url=url,
357 description=description or "unknown",
357 description=description or "unknown",
358 description_sort=description.upper() or "unknown",
358 description_sort=description.upper() or "unknown",
359 lastchange=d,
359 lastchange=d,
360 lastchange_sort=d[1]-d[0],
360 lastchange_sort=d[1]-d[0],
361 archives=archivelist(u, "tip", url))
361 archives=archivelist(u, "tip", url))
362
362
363 seenrepos.add(name)
363 seenrepos.add(name)
364 yield row
364 yield row
365
365
366 sortdefault = None, False
366 sortdefault = None, False
367 def entries(sortcolumn="", descending=False, subdir="", **map):
367 def entries(sortcolumn="", descending=False, subdir="", **map):
368 rows = rawentries(subdir=subdir, **map)
368 rows = rawentries(subdir=subdir, **map)
369
369
370 if sortcolumn and sortdefault != (sortcolumn, descending):
370 if sortcolumn and sortdefault != (sortcolumn, descending):
371 sortkey = '%s_sort' % sortcolumn
371 sortkey = '%s_sort' % sortcolumn
372 rows = sorted(rows, key=lambda x: x[sortkey],
372 rows = sorted(rows, key=lambda x: x[sortkey],
373 reverse=descending)
373 reverse=descending)
374 for row, parity in zip(rows, paritygen(self.stripecount)):
374 for row, parity in zip(rows, paritygen(self.stripecount)):
375 row['parity'] = parity
375 row['parity'] = parity
376 yield row
376 yield row
377
377
378 self.refresh()
378 self.refresh()
379 sortable = ["name", "description", "contact", "lastchange"]
379 sortable = ["name", "description", "contact", "lastchange"]
380 sortcolumn, descending = sortdefault
380 sortcolumn, descending = sortdefault
381 if 'sort' in req.form:
381 if 'sort' in req.form:
382 sortcolumn = req.form['sort'][0]
382 sortcolumn = req.form['sort'][0]
383 descending = sortcolumn.startswith('-')
383 descending = sortcolumn.startswith('-')
384 if descending:
384 if descending:
385 sortcolumn = sortcolumn[1:]
385 sortcolumn = sortcolumn[1:]
386 if sortcolumn not in sortable:
386 if sortcolumn not in sortable:
387 sortcolumn = ""
387 sortcolumn = ""
388
388
389 sort = [("sort_%s" % column,
389 sort = [("sort_%s" % column,
390 "%s%s" % ((not descending and column == sortcolumn)
390 "%s%s" % ((not descending and column == sortcolumn)
391 and "-" or "", column))
391 and "-" or "", column))
392 for column in sortable]
392 for column in sortable]
393
393
394 self.refresh()
394 self.refresh()
395 self.updatereqenv(req.env)
395 self.updatereqenv(req.env)
396
396
397 return tmpl("index", entries=entries, subdir=subdir,
397 return tmpl("index", entries=entries, subdir=subdir,
398 pathdef=makebreadcrumb('/' + subdir),
398 sortcolumn=sortcolumn, descending=descending,
399 sortcolumn=sortcolumn, descending=descending,
399 **dict(sort))
400 **dict(sort))
400
401
401 def templater(self, req):
402 def templater(self, req):
402
403
403 def header(**map):
404 def header(**map):
404 yield tmpl('header', encoding=encoding.encoding, **map)
405 yield tmpl('header', encoding=encoding.encoding, **map)
405
406
406 def footer(**map):
407 def footer(**map):
407 yield tmpl("footer", **map)
408 yield tmpl("footer", **map)
408
409
409 def motd(**map):
410 def motd(**map):
410 if self.motd is not None:
411 if self.motd is not None:
411 yield self.motd
412 yield self.motd
412 else:
413 else:
413 yield config('web', 'motd', '')
414 yield config('web', 'motd', '')
414
415
415 def config(section, name, default=None, untrusted=True):
416 def config(section, name, default=None, untrusted=True):
416 return self.ui.config(section, name, default, untrusted)
417 return self.ui.config(section, name, default, untrusted)
417
418
418 self.updatereqenv(req.env)
419 self.updatereqenv(req.env)
419
420
420 url = req.env.get('SCRIPT_NAME', '')
421 url = req.env.get('SCRIPT_NAME', '')
421 if not url.endswith('/'):
422 if not url.endswith('/'):
422 url += '/'
423 url += '/'
423
424
424 vars = {}
425 vars = {}
425 styles = (
426 styles = (
426 req.form.get('style', [None])[0],
427 req.form.get('style', [None])[0],
427 config('web', 'style'),
428 config('web', 'style'),
428 'paper'
429 'paper'
429 )
430 )
430 style, mapfile = templater.stylemap(styles, self.templatepath)
431 style, mapfile = templater.stylemap(styles, self.templatepath)
431 if style == styles[0]:
432 if style == styles[0]:
432 vars['style'] = style
433 vars['style'] = style
433
434
434 start = url[-1] == '?' and '&' or '?'
435 start = url[-1] == '?' and '&' or '?'
435 sessionvars = webutil.sessionvars(vars, start)
436 sessionvars = webutil.sessionvars(vars, start)
436 logourl = config('web', 'logourl', 'http://mercurial.selenic.com/')
437 logourl = config('web', 'logourl', 'http://mercurial.selenic.com/')
437 logoimg = config('web', 'logoimg', 'hglogo.png')
438 logoimg = config('web', 'logoimg', 'hglogo.png')
438 staticurl = config('web', 'staticurl') or url + 'static/'
439 staticurl = config('web', 'staticurl') or url + 'static/'
439 if not staticurl.endswith('/'):
440 if not staticurl.endswith('/'):
440 staticurl += '/'
441 staticurl += '/'
441
442
442 tmpl = templater.templater(mapfile,
443 tmpl = templater.templater(mapfile,
443 defaults={"header": header,
444 defaults={"header": header,
444 "footer": footer,
445 "footer": footer,
445 "motd": motd,
446 "motd": motd,
446 "url": url,
447 "url": url,
447 "logourl": logourl,
448 "logourl": logourl,
448 "logoimg": logoimg,
449 "logoimg": logoimg,
449 "staticurl": staticurl,
450 "staticurl": staticurl,
450 "sessionvars": sessionvars})
451 "sessionvars": sessionvars})
451 return tmpl
452 return tmpl
452
453
453 def updatereqenv(self, env):
454 def updatereqenv(self, env):
454 if self._baseurl is not None:
455 if self._baseurl is not None:
455 name, port, path = geturlcgivars(self._baseurl, env['SERVER_PORT'])
456 name, port, path = geturlcgivars(self._baseurl, env['SERVER_PORT'])
456 env['SERVER_NAME'] = name
457 env['SERVER_NAME'] = name
457 env['SERVER_PORT'] = port
458 env['SERVER_PORT'] = port
458 env['SCRIPT_NAME'] = path
459 env['SCRIPT_NAME'] = path
@@ -1,225 +1,226 b''
1 default = 'shortlog'
1 default = 'shortlog'
2
2
3 mimetype = 'text/html; charset={encoding}'
3 mimetype = 'text/html; charset={encoding}'
4 header = header.tmpl
4 header = header.tmpl
5 footer = ../paper/footer.tmpl
5 footer = ../paper/footer.tmpl
6 search = ../paper/search.tmpl
6 search = ../paper/search.tmpl
7
7
8 changelog = ../paper/shortlog.tmpl
8 changelog = ../paper/shortlog.tmpl
9 shortlog = ../paper/shortlog.tmpl
9 shortlog = ../paper/shortlog.tmpl
10 shortlogentry = ../paper/shortlogentry.tmpl
10 shortlogentry = ../paper/shortlogentry.tmpl
11 graph = ../paper/graph.tmpl
11 graph = ../paper/graph.tmpl
12
12
13 help = ../paper/help.tmpl
13 help = ../paper/help.tmpl
14 helptopics = ../paper/helptopics.tmpl
14 helptopics = ../paper/helptopics.tmpl
15
15
16 helpentry = '<tr><td><a href="{url}help/{topic|escape}{sessionvars%urlparameter}">{topic|escape}</a></td><td>{summary|escape}</td></tr>'
16 helpentry = '<tr><td><a href="{url}help/{topic|escape}{sessionvars%urlparameter}">{topic|escape}</a></td><td>{summary|escape}</td></tr>'
17
17
18 naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
18 naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
19 navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
19 navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
20 navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
20 navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
21 filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
21 filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
22 filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
22 filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
23 filenodelink = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
23 filenodelink = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
24 filenolink = '{file|escape} '
24 filenolink = '{file|escape} '
25 fileellipses = '...'
25 fileellipses = '...'
26 diffstatlink = ../paper/diffstat.tmpl
26 diffstatlink = ../paper/diffstat.tmpl
27 diffstatnolink = ../paper/diffstat.tmpl
27 diffstatnolink = ../paper/diffstat.tmpl
28 changelogentry = ../paper/shortlogentry.tmpl
28 changelogentry = ../paper/shortlogentry.tmpl
29 searchentry = ../paper/shortlogentry.tmpl
29 searchentry = ../paper/shortlogentry.tmpl
30 changeset = ../paper/changeset.tmpl
30 changeset = ../paper/changeset.tmpl
31 manifest = ../paper/manifest.tmpl
31 manifest = ../paper/manifest.tmpl
32
32
33 nav = '{before%naventry} {after%naventry}'
33 nav = '{before%naventry} {after%naventry}'
34 navshort = '{before%navshortentry}{after%navshortentry}'
34 navshort = '{before%navshortentry}{after%navshortentry}'
35 navgraph = '{before%navgraphentry}{after%navgraphentry}'
35 navgraph = '{before%navgraphentry}{after%navgraphentry}'
36 filenav = '{before%filenaventry}{after%filenaventry}'
36 filenav = '{before%filenaventry}{after%filenaventry}'
37
37
38 direntry = '
38 direntry = '
39 <tr class="fileline parity{parity}">
39 <tr class="fileline parity{parity}">
40 <td class="name">
40 <td class="name">
41 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">
41 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">
42 <img src="{staticurl}coal-folder.png" alt="dir."/> {basename|escape}/
42 <img src="{staticurl}coal-folder.png" alt="dir."/> {basename|escape}/
43 </a>
43 </a>
44 <a href="{url}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">
44 <a href="{url}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">
45 {emptydirs|escape}
45 {emptydirs|escape}
46 </a>
46 </a>
47 </td>
47 </td>
48 <td class="size"></td>
48 <td class="size"></td>
49 <td class="permissions">drwxr-xr-x</td>
49 <td class="permissions">drwxr-xr-x</td>
50 </tr>'
50 </tr>'
51
51
52 fileentry = '
52 fileentry = '
53 <tr class="fileline parity{parity}">
53 <tr class="fileline parity{parity}">
54 <td class="filename">
54 <td class="filename">
55 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
55 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
56 <img src="{staticurl}coal-file.png" alt="file"/> {basename|escape}
56 <img src="{staticurl}coal-file.png" alt="file"/> {basename|escape}
57 </a>
57 </a>
58 </td>
58 </td>
59 <td class="size">{size}</td>
59 <td class="size">{size}</td>
60 <td class="permissions">{permissions|permissions}</td>
60 <td class="permissions">{permissions|permissions}</td>
61 </tr>'
61 </tr>'
62
62
63 filerevision = ../paper/filerevision.tmpl
63 filerevision = ../paper/filerevision.tmpl
64 fileannotate = ../paper/fileannotate.tmpl
64 fileannotate = ../paper/fileannotate.tmpl
65 filediff = ../paper/filediff.tmpl
65 filediff = ../paper/filediff.tmpl
66 filecomparison = ../paper/filecomparison.tmpl
66 filecomparison = ../paper/filecomparison.tmpl
67 filelog = ../paper/filelog.tmpl
67 filelog = ../paper/filelog.tmpl
68 fileline = '
68 fileline = '
69 <div class="parity{parity} source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</div>'
69 <div class="parity{parity} source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</div>'
70 filelogentry = ../paper/filelogentry.tmpl
70 filelogentry = ../paper/filelogentry.tmpl
71
71
72 annotateline = '
72 annotateline = '
73 <tr class="parity{parity}">
73 <tr class="parity{parity}">
74 <td class="annotate">
74 <td class="annotate">
75 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#{targetline}"
75 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#{targetline}"
76 title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
76 title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
77 </td>
77 </td>
78 <td class="source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</td>
78 <td class="source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</td>
79 </tr>'
79 </tr>'
80
80
81 diffblock = '<div class="source bottomline parity{parity}"><pre>{lines}</pre></div>'
81 diffblock = '<div class="source bottomline parity{parity}"><pre>{lines}</pre></div>'
82 difflineplus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="plusline">{line|escape}</span>'
82 difflineplus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="plusline">{line|escape}</span>'
83 difflineminus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="minusline">{line|escape}</span>'
83 difflineminus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="minusline">{line|escape}</span>'
84 difflineat = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="atline">{line|escape}</span>'
84 difflineat = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="atline">{line|escape}</span>'
85 diffline = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}'
85 diffline = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}'
86
86
87 comparisonblock ='
87 comparisonblock ='
88 <tbody class="block">
88 <tbody class="block">
89 {lines}
89 {lines}
90 </tbody>'
90 </tbody>'
91 comparisonline = '
91 comparisonline = '
92 <tr>
92 <tr>
93 <td class="source {type}"><a href="#{lineid}" id="{lineid}">{leftlinenumber}</a> {leftline|escape}</td>
93 <td class="source {type}"><a href="#{lineid}" id="{lineid}">{leftlinenumber}</a> {leftline|escape}</td>
94 <td class="source {type}"><a href="#{lineid}" id="{lineid}">{rightlinenumber}</a> {rightline|escape}</td>
94 <td class="source {type}"><a href="#{lineid}" id="{lineid}">{rightlinenumber}</a> {rightline|escape}</td>
95 </tr>'
95 </tr>'
96
96
97 changelogparent = '
97 changelogparent = '
98 <tr>
98 <tr>
99 <th class="parent">parent {rev}:</th>
99 <th class="parent">parent {rev}:</th>
100 <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
100 <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
101 </tr>'
101 </tr>'
102
102
103 changesetparent = '<a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> '
103 changesetparent = '<a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> '
104
104
105 filerevparent = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rename%filerename}{node|short}</a> '
105 filerevparent = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rename%filerename}{node|short}</a> '
106 filerevchild = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> '
106 filerevchild = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> '
107
107
108 filerename = '{file|escape}@'
108 filerename = '{file|escape}@'
109 filelogrename = '
109 filelogrename = '
110 <span class="base">
110 <span class="base">
111 base
111 base
112 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
112 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
113 {file|escape}@{node|short}
113 {file|escape}@{node|short}
114 </a>
114 </a>
115 </span>'
115 </span>'
116 fileannotateparent = '
116 fileannotateparent = '
117 <tr>
117 <tr>
118 <td class="metatag">parent:</td>
118 <td class="metatag">parent:</td>
119 <td>
119 <td>
120 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
120 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
121 {rename%filerename}{node|short}
121 {rename%filerename}{node|short}
122 </a>
122 </a>
123 </td>
123 </td>
124 </tr>'
124 </tr>'
125 changesetchild = ' <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
125 changesetchild = ' <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
126 changelogchild = '
126 changelogchild = '
127 <tr>
127 <tr>
128 <th class="child">child</th>
128 <th class="child">child</th>
129 <td class="child">
129 <td class="child">
130 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
130 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
131 {node|short}
131 {node|short}
132 </a>
132 </a>
133 </td>
133 </td>
134 </tr>'
134 </tr>'
135 fileannotatechild = '
135 fileannotatechild = '
136 <tr>
136 <tr>
137 <td class="metatag">child:</td>
137 <td class="metatag">child:</td>
138 <td>
138 <td>
139 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
139 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
140 {node|short}
140 {node|short}
141 </a>
141 </a>
142 </td>
142 </td>
143 </tr>'
143 </tr>'
144 tags = ../paper/tags.tmpl
144 tags = ../paper/tags.tmpl
145 tagentry = '
145 tagentry = '
146 <tr class="tagEntry parity{parity}">
146 <tr class="tagEntry parity{parity}">
147 <td>
147 <td>
148 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
148 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
149 {tag|escape}
149 {tag|escape}
150 </a>
150 </a>
151 </td>
151 </td>
152 <td class="node">
152 <td class="node">
153 {node|short}
153 {node|short}
154 </td>
154 </td>
155 </tr>'
155 </tr>'
156 bookmarks = ../paper/bookmarks.tmpl
156 bookmarks = ../paper/bookmarks.tmpl
157 bookmarkentry = '
157 bookmarkentry = '
158 <tr class="tagEntry parity{parity}">
158 <tr class="tagEntry parity{parity}">
159 <td>
159 <td>
160 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
160 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
161 {bookmark|escape}
161 {bookmark|escape}
162 </a>
162 </a>
163 </td>
163 </td>
164 <td class="node">
164 <td class="node">
165 {node|short}
165 {node|short}
166 </td>
166 </td>
167 </tr>'
167 </tr>'
168 branches = ../paper/branches.tmpl
168 branches = ../paper/branches.tmpl
169 branchentry = '
169 branchentry = '
170 <tr class="tagEntry parity{parity}">
170 <tr class="tagEntry parity{parity}">
171 <td>
171 <td>
172 <a href="{url}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">
172 <a href="{url}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">
173 {branch|escape}
173 {branch|escape}
174 </a>
174 </a>
175 </td>
175 </td>
176 <td class="node">
176 <td class="node">
177 {node|short}
177 {node|short}
178 </td>
178 </td>
179 </tr>'
179 </tr>'
180 changelogtag = '<span class="tag">{name|escape}</span> '
180 changelogtag = '<span class="tag">{name|escape}</span> '
181 changesettag = '<span class="tag">{tag|escape}</span> '
181 changesettag = '<span class="tag">{tag|escape}</span> '
182 changesetbookmark = '<span class="tag">{bookmark|escape}</span> '
182 changesetbookmark = '<span class="tag">{bookmark|escape}</span> '
183 changelogbranchhead = '<span class="branchhead">{name|escape}</span> '
183 changelogbranchhead = '<span class="branchhead">{name|escape}</span> '
184 changelogbranchname = '<span class="branchname">{name|escape}</span> '
184 changelogbranchname = '<span class="branchname">{name|escape}</span> '
185
185
186 filediffparent = '
186 filediffparent = '
187 <tr>
187 <tr>
188 <th class="parent">parent {rev}:</th>
188 <th class="parent">parent {rev}:</th>
189 <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
189 <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
190 </tr>'
190 </tr>'
191 filelogparent = '
191 filelogparent = '
192 <tr>
192 <tr>
193 <th>parent {rev}:</th>
193 <th>parent {rev}:</th>
194 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
194 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
195 </tr>'
195 </tr>'
196 filediffchild = '
196 filediffchild = '
197 <tr>
197 <tr>
198 <th class="child">child {rev}:</th>
198 <th class="child">child {rev}:</th>
199 <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
199 <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
200 </td>
200 </td>
201 </tr>'
201 </tr>'
202 filelogchild = '
202 filelogchild = '
203 <tr>
203 <tr>
204 <th>child {rev}:</th>
204 <th>child {rev}:</th>
205 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
205 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
206 </tr>'
206 </tr>'
207
207
208 indexentry = '
208 indexentry = '
209 <tr class="parity{parity}">
209 <tr class="parity{parity}">
210 <td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td>
210 <td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td>
211 <td>{description}</td>
211 <td>{description}</td>
212 <td>{contact|obfuscate}</td>
212 <td>{contact|obfuscate}</td>
213 <td class="age">{lastchange|rfc822date}</td>
213 <td class="age">{lastchange|rfc822date}</td>
214 <td class="indexlinks">{archives%indexarchiveentry}</td>
214 <td class="indexlinks">{archives%indexarchiveentry}</td>
215 </tr>\n'
215 </tr>\n'
216 indexarchiveentry = '<a href="{url}archive/{node|short}{extension|urlescape}">&nbsp;&darr;{type|escape}</a>'
216 indexarchiveentry = '<a href="{url}archive/{node|short}{extension|urlescape}">&nbsp;&darr;{type|escape}</a>'
217 index = ../paper/index.tmpl
217 index = ../paper/index.tmpl
218 archiveentry = '
218 archiveentry = '
219 <li>
219 <li>
220 <a href="{url}archive/{node|short}{extension|urlescape}">{type|escape}</a>
220 <a href="{url}archive/{node|short}{extension|urlescape}">{type|escape}</a>
221 </li>'
221 </li>'
222 notfound = ../paper/notfound.tmpl
222 notfound = ../paper/notfound.tmpl
223 error = ../paper/error.tmpl
223 error = ../paper/error.tmpl
224 urlparameter = '{separator}{name}={value|urlescape}'
224 urlparameter = '{separator}{name}={value|urlescape}'
225 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
225 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
226 breadcrumb = '&gt; <a href="{url}">{name}</a> '
@@ -1,32 +1,33 b''
1 {header}
1 {header}
2 <title>{repo|escape}: Bookmarks</title>
2 <title>{repo|escape}: Bookmarks</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-bookmarks" title="Atom feed for {repo|escape}"/>
4 href="{url}atom-bookmarks" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-bookmarks" title="RSS feed for {repo|escape}"/>
6 href="{url}rss-bookmarks" title="RSS feed for {repo|escape}"/>
7 </head>
7 </head>
8 <body>
8 <body>
9
9
10 <div class="page_header">
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 </div>
13 </div>
13
14
14 <div class="page_nav">
15 <div class="page_nav">
15 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 bookmarks |
21 bookmarks |
21 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
23 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
23 <a href="{url}help{sessionvars%urlparameter}">help</a>
24 <a href="{url}help{sessionvars%urlparameter}">help</a>
24 <br/>
25 <br/>
25 </div>
26 </div>
26
27
27 <div class="title">&nbsp;</div>
28 <div class="title">&nbsp;</div>
28 <table cellspacing="0">
29 <table cellspacing="0">
29 {entries%bookmarkentry}
30 {entries%bookmarkentry}
30 </table>
31 </table>
31
32
32 {footer}
33 {footer}
@@ -1,32 +1,33 b''
1 {header}
1 {header}
2 <title>{repo|escape}: Branches</title>
2 <title>{repo|escape}: Branches</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-branches" title="Atom feed for {repo|escape}"/>
4 href="{url}atom-branches" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-branches" title="RSS feed for {repo|escape}"/>
6 href="{url}rss-branches" title="RSS feed for {repo|escape}"/>
7 </head>
7 </head>
8 <body>
8 <body>
9
9
10 <div class="page_header">
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 </div>
13 </div>
13
14
14 <div class="page_nav">
15 <div class="page_nav">
15 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 branches |
22 branches |
22 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
23 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
23 <a href="{url}help{sessionvars%urlparameter}">help</a>
24 <a href="{url}help{sessionvars%urlparameter}">help</a>
24 <br/>
25 <br/>
25 </div>
26 </div>
26
27
27 <div class="title">&nbsp;</div>
28 <div class="title">&nbsp;</div>
28 <table cellspacing="0">
29 <table cellspacing="0">
29 {entries%branchentry}
30 {entries%branchentry}
30 </table>
31 </table>
31
32
32 {footer}
33 {footer}
@@ -1,41 +1,42 b''
1 {header}
1 {header}
2 <title>{repo|escape}: Changelog</title>
2 <title>{repo|escape}: Changelog</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 </head>
7 </head>
8 <body>
8 <body>
9
9
10 <div class="page_header">
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 </div>
13 </div>
13
14
14 <form action="{url}log">
15 <form action="{url}log">
15 {sessionvars%hiddenformentry}
16 {sessionvars%hiddenformentry}
16 <div class="search">
17 <div class="search">
17 <input type="text" name="rev" />
18 <input type="text" name="rev" />
18 </div>
19 </div>
19 </form>
20 </form>
20
21
21 <div class="page_nav">
22 <div class="page_nav">
22 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
23 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
23 <a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a> |
24 <a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a> |
24 changelog |
25 changelog |
25 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
26 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
26 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
27 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
27 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
28 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
28 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
29 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
29 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry} |
30 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry} |
30 <a href="{url}help{sessionvars%urlparameter}">help</a>
31 <a href="{url}help{sessionvars%urlparameter}">help</a>
31 <br/>
32 <br/>
32 {changenav%nav}<br/>
33 {changenav%nav}<br/>
33 </div>
34 </div>
34
35
35 {entries%changelogentry}
36 {entries%changelogentry}
36
37
37 <div class="page_nav">
38 <div class="page_nav">
38 {changenav%nav}<br/>
39 {changenav%nav}<br/>
39 </div>
40 </div>
40
41
41 {footer}
42 {footer}
@@ -1,53 +1,54 b''
1 {header}
1 {header}
2 <title>{repo|escape}: changeset {rev}:{node|short}</title>
2 <title>{repo|escape}: changeset {rev}:{node|short}</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 </head>
7 </head>
8 <body>
8 <body>
9
9
10 <div class="page_header">
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 </div>
13 </div>
13
14
14 <div class="page_nav">
15 <div class="page_nav">
15 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}shortlog/{rev}{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
23 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
23 changeset |
24 changeset |
24 <a href="{url}raw-rev/{node|short}">raw</a> {archives%archiveentry} |
25 <a href="{url}raw-rev/{node|short}">raw</a> {archives%archiveentry} |
25 <a href="{url}help{sessionvars%urlparameter}">help</a>
26 <a href="{url}help{sessionvars%urlparameter}">help</a>
26 <br/>
27 <br/>
27 </div>
28 </div>
28
29
29 <div>
30 <div>
30 <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 <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 </div>
32 </div>
32 <div class="title_text">
33 <div class="title_text">
33 <table cellspacing="0">
34 <table cellspacing="0">
34 <tr><td>author</td><td>{author|obfuscate}</td></tr>
35 <tr><td>author</td><td>{author|obfuscate}</td></tr>
35 <tr><td></td><td class="date age">{date|rfc822date}</td></tr>
36 <tr><td></td><td class="date age">{date|rfc822date}</td></tr>
36 {branch%changesetbranch}
37 {branch%changesetbranch}
37 <tr><td>changeset {rev}</td><td style="font-family:monospace">{node|short}</td></tr>
38 <tr><td>changeset {rev}</td><td style="font-family:monospace">{node|short}</td></tr>
38 {parent%changesetparent}
39 {parent%changesetparent}
39 {child%changesetchild}
40 {child%changesetchild}
40 </table></div>
41 </table></div>
41
42
42 <div class="page_body">
43 <div class="page_body">
43 {desc|strip|escape|addbreaks|nonempty}
44 {desc|strip|escape|addbreaks|nonempty}
44 </div>
45 </div>
45 <div class="list_head"></div>
46 <div class="list_head"></div>
46 <div class="title_text">
47 <div class="title_text">
47 <table cellspacing="0">
48 <table cellspacing="0">
48 {files}
49 {files}
49 </table></div>
50 </table></div>
50
51
51 <div class="page_body">{diff}</div>
52 <div class="page_body">{diff}</div>
52
53
53 {footer}
54 {footer}
@@ -1,33 +1,34 b''
1 {header}
1 {header}
2 <title>{repo|escape}: Error</title>
2 <title>{repo|escape}: Error</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 </head>
7 </head>
8 <body>
8 <body>
9
9
10 <div class="page_header">
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 </div>
13 </div>
13
14
14 <div class="page_nav">
15 <div class="page_nav">
15 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
19 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
19 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
20 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
20 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
21 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
21 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
22 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
22 <a href="{url}help{sessionvars%urlparameter}">help</a>
23 <a href="{url}help{sessionvars%urlparameter}">help</a>
23 <br/>
24 <br/>
24 </div>
25 </div>
25
26
26 <div class="page_body">
27 <div class="page_body">
27 <br/>
28 <br/>
28 <i>An error occurred while processing your request</i><br/>
29 <i>An error occurred while processing your request</i><br/>
29 <br/>
30 <br/>
30 {error|escape}
31 {error|escape}
31 </div>
32 </div>
32
33
33 {footer}
34 {footer}
@@ -1,66 +1,67 b''
1 {header}
1 {header}
2 <title>{repo|escape}: {file|escape}@{node|short} (annotated)</title>
2 <title>{repo|escape}: {file|escape}@{node|short} (annotated)</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 </head>
7 </head>
8 <body>
8 <body>
9
9
10 <div class="page_header">
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 </div>
13 </div>
13
14
14 <div class="page_nav">
15 <div class="page_nav">
15 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> |
23 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> |
23 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
24 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
24 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
25 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
25 <a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a> |
26 <a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a> |
26 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
27 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
27 annotate |
28 annotate |
28 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
29 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
29 <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
30 <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
30 <a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a> |
31 <a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a> |
31 <a href="{url}help{sessionvars%urlparameter}">help</a>
32 <a href="{url}help{sessionvars%urlparameter}">help</a>
32 <br/>
33 <br/>
33 </div>
34 </div>
34
35
35 <div class="title">{file|escape}</div>
36 <div class="title">{file|escape}</div>
36
37
37 <div class="title_text">
38 <div class="title_text">
38 <table cellspacing="0">
39 <table cellspacing="0">
39 <tr>
40 <tr>
40 <td>author</td>
41 <td>author</td>
41 <td>{author|obfuscate}</td></tr>
42 <td>{author|obfuscate}</td></tr>
42 <tr>
43 <tr>
43 <td></td>
44 <td></td>
44 <td class="date age">{date|rfc822date}</td></tr>
45 <td class="date age">{date|rfc822date}</td></tr>
45 {branch%filerevbranch}
46 {branch%filerevbranch}
46 <tr>
47 <tr>
47 <td>changeset {rev}</td>
48 <td>changeset {rev}</td>
48 <td style="font-family:monospace"><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr>
49 <td style="font-family:monospace"><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr>
49 {parent%fileannotateparent}
50 {parent%fileannotateparent}
50 {child%fileannotatechild}
51 {child%fileannotatechild}
51 <tr>
52 <tr>
52 <td>permissions</td>
53 <td>permissions</td>
53 <td style="font-family:monospace">{permissions|permissions}</td></tr>
54 <td style="font-family:monospace">{permissions|permissions}</td></tr>
54 </table>
55 </table>
55 </div>
56 </div>
56
57
57 <div class="page_path">
58 <div class="page_path">
58 {desc|strip|escape|addbreaks|nonempty}
59 {desc|strip|escape|addbreaks|nonempty}
59 </div>
60 </div>
60 <div class="page_body">
61 <div class="page_body">
61 <table>
62 <table>
62 {annotate%annotateline}
63 {annotate%annotateline}
63 </table>
64 </table>
64 </div>
65 </div>
65
66
66 {footer}
67 {footer}
@@ -1,71 +1,72 b''
1 {header}
1 {header}
2 <title>{repo|escape}: comparison {file|escape}</title>
2 <title>{repo|escape}: comparison {file|escape}</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 </head>
7 </head>
8 <body>
8 <body>
9
9
10 <div class="page_header">
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 </div>
13 </div>
13
14
14 <div class="page_nav">
15 <div class="page_nav">
15 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> |
23 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> |
23 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
24 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
24 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
25 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
25 <a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a> |
26 <a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a> |
26 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
27 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
27 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
28 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
28 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
29 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
29 comparison |
30 comparison |
30 <a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a> |
31 <a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a> |
31 <a href="{url}help{sessionvars%urlparameter}">help</a>
32 <a href="{url}help{sessionvars%urlparameter}">help</a>
32 <br/>
33 <br/>
33 </div>
34 </div>
34
35
35 <div class="title">{file|escape}</div>
36 <div class="title">{file|escape}</div>
36
37
37 <table>
38 <table>
38 {branch%filerevbranch}
39 {branch%filerevbranch}
39 <tr>
40 <tr>
40 <td>changeset {rev}</td>
41 <td>changeset {rev}</td>
41 <td style="font-family:monospace"><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr>
42 <td style="font-family:monospace"><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr>
42 {parent%filecompparent}
43 {parent%filecompparent}
43 {child%filecompchild}
44 {child%filecompchild}
44 </table>
45 </table>
45
46
46 <div class="list_head"></div>
47 <div class="list_head"></div>
47
48
48 <div class="page_body">
49 <div class="page_body">
49
50
50 <div class="legend">
51 <div class="legend">
51 <span class="legendinfo equal">equal</span>
52 <span class="legendinfo equal">equal</span>
52 <span class="legendinfo delete">deleted</span>
53 <span class="legendinfo delete">deleted</span>
53 <span class="legendinfo insert">inserted</span>
54 <span class="legendinfo insert">inserted</span>
54 <span class="legendinfo replace">replaced</span>
55 <span class="legendinfo replace">replaced</span>
55 </div>
56 </div>
56
57
57 <div class="comparison">
58 <div class="comparison">
58 <table style="border-collapse:collapse;">
59 <table style="border-collapse:collapse;">
59 <thead class="header">
60 <thead class="header">
60 <tr>
61 <tr>
61 <th>{leftrev}:{leftnode|short}</th>
62 <th>{leftrev}:{leftnode|short}</th>
62 <th>{rightrev}:{rightnode|short}</th>
63 <th>{rightrev}:{rightnode|short}</th>
63 </tr>
64 </tr>
64 </thead>
65 </thead>
65 {comparison}
66 {comparison}
66 </table>
67 </table>
67 </div>
68 </div>
68
69
69 </div>
70 </div>
70
71
71 {footer}
72 {footer}
@@ -1,52 +1,53 b''
1 {header}
1 {header}
2 <title>{repo|escape}: diff {file|escape}</title>
2 <title>{repo|escape}: diff {file|escape}</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 </head>
7 </head>
8 <body>
8 <body>
9
9
10 <div class="page_header">
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 </div>
13 </div>
13
14
14 <div class="page_nav">
15 <div class="page_nav">
15 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> |
23 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> |
23 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
24 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
24 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
25 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
25 <a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a> |
26 <a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a> |
26 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
27 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
27 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
28 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
28 diff |
29 diff |
29 <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
30 <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
30 <a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a> |
31 <a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a> |
31 <a href="{url}help{sessionvars%urlparameter}">help</a>
32 <a href="{url}help{sessionvars%urlparameter}">help</a>
32 <br/>
33 <br/>
33 </div>
34 </div>
34
35
35 <div class="title">{file|escape}</div>
36 <div class="title">{file|escape}</div>
36
37
37 <table>
38 <table>
38 {branch%filerevbranch}
39 {branch%filerevbranch}
39 <tr>
40 <tr>
40 <td>changeset {rev}</td>
41 <td>changeset {rev}</td>
41 <td style="font-family:monospace"><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr>
42 <td style="font-family:monospace"><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr>
42 {parent%filediffparent}
43 {parent%filediffparent}
43 {child%filediffchild}
44 {child%filediffchild}
44 </table>
45 </table>
45
46
46 <div class="list_head"></div>
47 <div class="list_head"></div>
47
48
48 <div class="page_body">
49 <div class="page_body">
49 {diff}
50 {diff}
50 </div>
51 </div>
51
52
52 {footer}
53 {footer}
@@ -1,43 +1,44 b''
1 {header}
1 {header}
2 <title>{repo|escape}: File revisions</title>
2 <title>{repo|escape}: File revisions</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 </head>
7 </head>
8 <body>
8 <body>
9
9
10 <div class="page_header">
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 </div>
13 </div>
13
14
14 <div class="page_nav">
15 <div class="page_nav">
15 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
23 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
23 revisions |
24 revisions |
24 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
25 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
25 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
26 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
26 <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
27 <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
27 <a href="{url}rss-log/tip/{file|urlescape}">rss</a> |
28 <a href="{url}rss-log/tip/{file|urlescape}">rss</a> |
28 <a href="{url}help{sessionvars%urlparameter}">help</a>
29 <a href="{url}help{sessionvars%urlparameter}">help</a>
29 <br/>
30 <br/>
30 {nav%filenav}
31 {nav%filenav}
31 </div>
32 </div>
32
33
33 <div class="title" >{file|urlescape}</div>
34 <div class="title" >{file|urlescape}</div>
34
35
35 <table>
36 <table>
36 {entries%filelogentry}
37 {entries%filelogentry}
37 </table>
38 </table>
38
39
39 <div class="page_nav">
40 <div class="page_nav">
40 {nav%filenav}
41 {nav%filenav}
41 </div>
42 </div>
42
43
43 {footer}
44 {footer}
@@ -1,65 +1,66 b''
1 {header}
1 {header}
2 <title>{repo|escape}: {file|escape}@{node|short}</title>
2 <title>{repo|escape}: {file|escape}@{node|short}</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 </head>
7 </head>
8 <body>
8 <body>
9
9
10 <div class="page_header">
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 </div>
13 </div>
13
14
14 <div class="page_nav">
15 <div class="page_nav">
15 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> |
23 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a> |
23 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
24 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
24 file |
25 file |
25 <a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a> |
26 <a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a> |
26 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
27 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
27 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
28 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
28 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
29 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
29 <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
30 <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
30 <a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a> |
31 <a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a> |
31 <a href="{url}help{sessionvars%urlparameter}">help</a>
32 <a href="{url}help{sessionvars%urlparameter}">help</a>
32 <br/>
33 <br/>
33 </div>
34 </div>
34
35
35 <div class="title">{file|escape}</div>
36 <div class="title">{file|escape}</div>
36
37
37 <div class="title_text">
38 <div class="title_text">
38 <table cellspacing="0">
39 <table cellspacing="0">
39 <tr>
40 <tr>
40 <td>author</td>
41 <td>author</td>
41 <td>{author|obfuscate}</td></tr>
42 <td>{author|obfuscate}</td></tr>
42 <tr>
43 <tr>
43 <td></td>
44 <td></td>
44 <td class="date age">{date|rfc822date}</td></tr>
45 <td class="date age">{date|rfc822date}</td></tr>
45 {branch%filerevbranch}
46 {branch%filerevbranch}
46 <tr>
47 <tr>
47 <td>changeset {rev}</td>
48 <td>changeset {rev}</td>
48 <td style="font-family:monospace"><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr>
49 <td style="font-family:monospace"><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td></tr>
49 {parent%filerevparent}
50 {parent%filerevparent}
50 {child%filerevchild}
51 {child%filerevchild}
51 <tr>
52 <tr>
52 <td>permissions</td>
53 <td>permissions</td>
53 <td style="font-family:monospace">{permissions|permissions}</td></tr>
54 <td style="font-family:monospace">{permissions|permissions}</td></tr>
54 </table>
55 </table>
55 </div>
56 </div>
56
57
57 <div class="page_path">
58 <div class="page_path">
58 {desc|strip|escape|addbreaks|nonempty}
59 {desc|strip|escape|addbreaks|nonempty}
59 </div>
60 </div>
60
61
61 <div class="page_body">
62 <div class="page_body">
62 {text%fileline}
63 {text%fileline}
63 </div>
64 </div>
64
65
65 {footer}
66 {footer}
@@ -1,110 +1,111 b''
1 {header}
1 {header}
2 <title>{repo|escape}: Graph</title>
2 <title>{repo|escape}: Graph</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 <!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]-->
7 <!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]-->
8 </head>
8 </head>
9 <body>
9 <body>
10
10
11 <div class="page_header">
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 </div>
14 </div>
14
15
15 <form action="{url}log">
16 <form action="{url}log">
16 {sessionvars%hiddenformentry}
17 {sessionvars%hiddenformentry}
17 <div class="search">
18 <div class="search">
18 <input type="text" name="rev" />
19 <input type="text" name="rev" />
19 </div>
20 </div>
20 </form>
21 </form>
21 <div class="page_nav">
22 <div class="page_nav">
22 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
23 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
23 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
24 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
24 <a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> |
25 <a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> |
25 graph |
26 graph |
26 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
27 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
27 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
28 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
28 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
29 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
29 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
30 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
30 <a href="{url}help{sessionvars%urlparameter}">help</a>
31 <a href="{url}help{sessionvars%urlparameter}">help</a>
31 <br/>
32 <br/>
32 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
33 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
33 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
34 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
34 | {changenav%navgraph}<br/>
35 | {changenav%navgraph}<br/>
35 </div>
36 </div>
36
37
37 <div class="title">&nbsp;</div>
38 <div class="title">&nbsp;</div>
38
39
39 <noscript>The revision graph only works with JavaScript-enabled browsers.</noscript>
40 <noscript>The revision graph only works with JavaScript-enabled browsers.</noscript>
40
41
41 <div id="wrapper">
42 <div id="wrapper">
42 <ul id="nodebgs"></ul>
43 <ul id="nodebgs"></ul>
43 <canvas id="graph" width="480" height="{canvasheight}"></canvas>
44 <canvas id="graph" width="480" height="{canvasheight}"></canvas>
44 <ul id="graphnodes"></ul>
45 <ul id="graphnodes"></ul>
45 </div>
46 </div>
46
47
47 <script>
48 <script>
48 <!-- hide script content
49 <!-- hide script content
49
50
50 var data = {jsdata|json};
51 var data = {jsdata|json};
51 var graph = new Graph();
52 var graph = new Graph();
52 graph.scale({bg_height});
53 graph.scale({bg_height});
53
54
54 graph.vertex = function(x, y, color, parity, cur) \{
55 graph.vertex = function(x, y, color, parity, cur) \{
55
56
56 this.ctx.beginPath();
57 this.ctx.beginPath();
57 color = this.setColor(color, 0.25, 0.75);
58 color = this.setColor(color, 0.25, 0.75);
58 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
59 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
59 this.ctx.fill();
60 this.ctx.fill();
60
61
61 var bg = '<li class="bg parity' + parity + '"></li>';
62 var bg = '<li class="bg parity' + parity + '"></li>';
62 var left = (this.bg_height - this.box_size) + (this.columns + 1) * this.box_size;
63 var left = (this.bg_height - this.box_size) + (this.columns + 1) * this.box_size;
63 var nstyle = 'padding-left: ' + left + 'px;';
64 var nstyle = 'padding-left: ' + left + 'px;';
64
65
65 var tagspan = '';
66 var tagspan = '';
66 if (cur[7].length || cur[8].length || (cur[6][0] != 'default' || cur[6][1])) \{
67 if (cur[7].length || cur[8].length || (cur[6][0] != 'default' || cur[6][1])) \{
67 tagspan = '<span class="logtags">';
68 tagspan = '<span class="logtags">';
68 if (cur[6][1]) \{
69 if (cur[6][1]) \{
69 tagspan += '<span class="branchtag" title="' + cur[6][0] + '">';
70 tagspan += '<span class="branchtag" title="' + cur[6][0] + '">';
70 tagspan += cur[6][0] + '</span> ';
71 tagspan += cur[6][0] + '</span> ';
71 } else if (!cur[6][1] && cur[6][0] != 'default') \{
72 } else if (!cur[6][1] && cur[6][0] != 'default') \{
72 tagspan += '<span class="inbranchtag" title="' + cur[6][0] + '">';
73 tagspan += '<span class="inbranchtag" title="' + cur[6][0] + '">';
73 tagspan += cur[6][0] + '</span> ';
74 tagspan += cur[6][0] + '</span> ';
74 }
75 }
75 if (cur[7].length) \{
76 if (cur[7].length) \{
76 for (var t in cur[7]) \{
77 for (var t in cur[7]) \{
77 var tag = cur[7][t];
78 var tag = cur[7][t];
78 tagspan += '<span class="tagtag">' + tag + '</span> ';
79 tagspan += '<span class="tagtag">' + tag + '</span> ';
79 }
80 }
80 }
81 }
81 if (cur[8].length) \{
82 if (cur[8].length) \{
82 for (var t in cur[8]) \{
83 for (var t in cur[8]) \{
83 var bookmark = cur[8][t];
84 var bookmark = cur[8][t];
84 tagspan += '<span class="bookmarktag">' + bookmark + '</span> ';
85 tagspan += '<span class="bookmarktag">' + bookmark + '</span> ';
85 }
86 }
86 }
87 }
87 tagspan += '</span>';
88 tagspan += '</span>';
88 }
89 }
89
90
90 var item = '<li style="' + nstyle + '"><span class="desc">';
91 var item = '<li style="' + nstyle + '"><span class="desc">';
91 item += '<a class="list" href="{url}rev/' + cur[0] + '{sessionvars%urlparameter}" title="' + cur[0] + '"><b>' + cur[3] + '</b></a>';
92 item += '<a class="list" href="{url}rev/' + cur[0] + '{sessionvars%urlparameter}" title="' + cur[0] + '"><b>' + cur[3] + '</b></a>';
92 item += '</span> ' + tagspan + '';
93 item += '</span> ' + tagspan + '';
93 item += '<span class="info">' + cur[5] + ', by ' + cur[4] + '</span></li>';
94 item += '<span class="info">' + cur[5] + ', by ' + cur[4] + '</span></li>';
94
95
95 return [bg, item];
96 return [bg, item];
96
97
97 }
98 }
98
99
99 graph.render(data);
100 graph.render(data);
100
101
101 // stop hiding script -->
102 // stop hiding script -->
102 </script>
103 </script>
103
104
104 <div class="page_nav">
105 <div class="page_nav">
105 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
106 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
106 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
107 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
107 | {changenav%navgraph}
108 | {changenav%navgraph}
108 </div>
109 </div>
109
110
110 {footer}
111 {footer}
@@ -1,33 +1,34 b''
1 {header}
1 {header}
2 <title>{repo|escape}: Branches</title>
2 <title>{repo|escape}: Branches</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-tags" title="Atom feed for {repo|escape}"/>
4 href="{url}atom-tags" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-tags" title="RSS feed for {repo|escape}"/>
6 href="{url}rss-tags" title="RSS feed for {repo|escape}"/>
7 </head>
7 </head>
8 <body>
8 <body>
9
9
10 <div class="page_header">
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 </div>
13 </div>
13
14
14 <div class="page_nav">
15 <div class="page_nav">
15 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
23 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
23 help
24 help
24 <br/>
25 <br/>
25 </div>
26 </div>
26
27
27 <div class="title">&nbsp;</div>
28 <div class="title">&nbsp;</div>
28
29
29 <pre>
30 <pre>
30 {doc|escape}
31 {doc|escape}
31 </pre>
32 </pre>
32
33
33 {footer}
34 {footer}
@@ -1,39 +1,40 b''
1 {header}
1 {header}
2 <title>{repo|escape}: Branches</title>
2 <title>{repo|escape}: Branches</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-tags" title="Atom feed for {repo|escape}"/>
4 href="{url}atom-tags" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-tags" title="RSS feed for {repo|escape}"/>
6 href="{url}rss-tags" title="RSS feed for {repo|escape}"/>
7 </head>
7 </head>
8 <body>
8 <body>
9
9
10 <div class="page_header">
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 </div>
13 </div>
13
14
14 <div class="page_nav">
15 <div class="page_nav">
15 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
23 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
23 help
24 help
24 <br/>
25 <br/>
25 </div>
26 </div>
26
27
27 <div class="title">&nbsp;</div>
28 <div class="title">&nbsp;</div>
28 <table cellspacing="0">
29 <table cellspacing="0">
29 <tr><td colspan="2"><h2><a name="main" href="#topics">Topics</a></h2></td></tr>
30 <tr><td colspan="2"><h2><a name="main" href="#topics">Topics</a></h2></td></tr>
30 {topics % helpentry}
31 {topics % helpentry}
31
32
32 <tr><td colspan="2"><h2><a name="main" href="#main">Main Commands</a></h2></td></tr>
33 <tr><td colspan="2"><h2><a name="main" href="#main">Main Commands</a></h2></td></tr>
33 {earlycommands % helpentry}
34 {earlycommands % helpentry}
34
35
35 <tr><td colspan="2"><h2><a name="other" href="#other">Other Commands</a></h2></td></tr>
36 <tr><td colspan="2"><h2><a name="other" href="#other">Other Commands</a></h2></td></tr>
36 {othercommands % helpentry}
37 {othercommands % helpentry}
37 </table>
38 </table>
38
39
39 {footer}
40 {footer}
@@ -1,26 +1,26 b''
1 {header}
1 {header}
2 <title>Mercurial repositories index</title>
2 <title>Mercurial repositories index</title>
3 </head>
3 </head>
4 <body>
4 <body>
5
5
6 <div class="page_header">
6 <div class="page_header">
7 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
7 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
8 Repositories list
8 <a href="/">Mercurial</a> {pathdef%breadcrumb}
9 </div>
9 </div>
10
10
11 <table cellspacing="0">
11 <table cellspacing="0">
12 <tr>
12 <tr>
13 <td><a href="?sort={sort_name}">Name</a></td>
13 <td><a href="?sort={sort_name}">Name</a></td>
14 <td><a href="?sort={sort_description}">Description</a></td>
14 <td><a href="?sort={sort_description}">Description</a></td>
15 <td><a href="?sort={sort_contact}">Contact</a></td>
15 <td><a href="?sort={sort_contact}">Contact</a></td>
16 <td><a href="?sort={sort_lastchange}">Last modified</a></td>
16 <td><a href="?sort={sort_lastchange}">Last modified</a></td>
17 <td>&nbsp;</td>
17 <td>&nbsp;</td>
18 <td>&nbsp;</td>
18 <td>&nbsp;</td>
19 </tr>
19 </tr>
20 {entries%indexentry}
20 {entries%indexentry}
21 </table>
21 </table>
22 <div class="page_footer">
22 <div class="page_footer">
23 {motd}
23 {motd}
24 </div>
24 </div>
25 </body>
25 </body>
26 </html>
26 </html>
@@ -1,41 +1,42 b''
1 {header}
1 {header}
2 <title>{repo|escape}: files</title>
2 <title>{repo|escape}: files</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 </head>
7 </head>
8 <body>
8 <body>
9
9
10 <div class="page_header">
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 </div>
13 </div>
13
14
14 <div class="page_nav">
15 <div class="page_nav">
15 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
20 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 files |
23 files |
23 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> {archives%archiveentry} |
24 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> {archives%archiveentry} |
24 <a href="{url}help{sessionvars%urlparameter}">help</a>
25 <a href="{url}help{sessionvars%urlparameter}">help</a>
25 <br/>
26 <br/>
26 </div>
27 </div>
27
28
28 <div class="title">{path|escape} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span></div>
29 <div class="title">{path|escape} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span></div>
29 <table cellspacing="0">
30 <table cellspacing="0">
30 <tr class="parity{upparity}">
31 <tr class="parity{upparity}">
31 <td style="font-family:monospace">drwxr-xr-x</td>
32 <td style="font-family:monospace">drwxr-xr-x</td>
32 <td style="font-family:monospace"></td>
33 <td style="font-family:monospace"></td>
33 <td style="font-family:monospace"></td>
34 <td style="font-family:monospace"></td>
34 <td><a href="{url}file/{node|short}{up|urlescape}{sessionvars%urlparameter}">[up]</a></td>
35 <td><a href="{url}file/{node|short}{up|urlescape}{sessionvars%urlparameter}">[up]</a></td>
35 <td class="link">&nbsp;</td>
36 <td class="link">&nbsp;</td>
36 </tr>
37 </tr>
37 {dentries%direntry}
38 {dentries%direntry}
38 {fentries%fileentry}
39 {fentries%fileentry}
39 </table>
40 </table>
40
41
41 {footer}
42 {footer}
@@ -1,307 +1,308 b''
1 default = 'summary'
1 default = 'summary'
2 mimetype = 'text/html; charset={encoding}'
2 mimetype = 'text/html; charset={encoding}'
3 header = header.tmpl
3 header = header.tmpl
4 footer = footer.tmpl
4 footer = footer.tmpl
5 search = search.tmpl
5 search = search.tmpl
6 changelog = changelog.tmpl
6 changelog = changelog.tmpl
7 summary = summary.tmpl
7 summary = summary.tmpl
8 error = error.tmpl
8 error = error.tmpl
9 notfound = notfound.tmpl
9 notfound = notfound.tmpl
10
10
11 help = help.tmpl
11 help = help.tmpl
12 helptopics = helptopics.tmpl
12 helptopics = helptopics.tmpl
13
13
14 helpentry = '<tr><td><a href="{url}help/{topic|escape}{sessionvars%urlparameter}">{topic|escape}</a></td><td>{summary|escape}</td></tr>'
14 helpentry = '<tr><td><a href="{url}help/{topic|escape}{sessionvars%urlparameter}">{topic|escape}</a></td><td>{summary|escape}</td></tr>'
15
15
16 naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
16 naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
17 navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
17 navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
18 navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
18 navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
19 filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
19 filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
20 filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
20 filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
21 filenodelink = '
21 filenodelink = '
22 <tr class="parity{parity}">
22 <tr class="parity{parity}">
23 <td><a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
23 <td><a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
24 <td></td>
24 <td></td>
25 <td class="link">
25 <td class="link">
26 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
26 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
27 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
27 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
28 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
28 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
29 <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
29 <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
30 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
30 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
31 </td>
31 </td>
32 </tr>'
32 </tr>'
33 filenolink = '
33 filenolink = '
34 <tr class="parity{parity}">
34 <tr class="parity{parity}">
35 <td><a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
35 <td><a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
36 <td></td>
36 <td></td>
37 <td class="link">
37 <td class="link">
38 file |
38 file |
39 annotate |
39 annotate |
40 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
40 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
41 <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
41 <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
42 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
42 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
43 </td>
43 </td>
44 </tr>'
44 </tr>'
45
45
46 nav = '{before%naventry} {after%naventry}'
46 nav = '{before%naventry} {after%naventry}'
47 navshort = '{before%navshortentry}{after%navshortentry}'
47 navshort = '{before%navshortentry}{after%navshortentry}'
48 navgraph = '{before%navgraphentry}{after%navgraphentry}'
48 navgraph = '{before%navgraphentry}{after%navgraphentry}'
49 filenav = '{before%filenaventry}{after%filenaventry}'
49 filenav = '{before%filenaventry}{after%filenaventry}'
50
50
51 fileellipses = '...'
51 fileellipses = '...'
52 changelogentry = changelogentry.tmpl
52 changelogentry = changelogentry.tmpl
53 searchentry = changelogentry.tmpl
53 searchentry = changelogentry.tmpl
54 changeset = changeset.tmpl
54 changeset = changeset.tmpl
55 manifest = manifest.tmpl
55 manifest = manifest.tmpl
56 direntry = '
56 direntry = '
57 <tr class="parity{parity}">
57 <tr class="parity{parity}">
58 <td style="font-family:monospace">drwxr-xr-x</td>
58 <td style="font-family:monospace">drwxr-xr-x</td>
59 <td style="font-family:monospace"></td>
59 <td style="font-family:monospace"></td>
60 <td style="font-family:monospace"></td>
60 <td style="font-family:monospace"></td>
61 <td>
61 <td>
62 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
62 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
63 <a href="{url}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">{emptydirs|escape}</a>
63 <a href="{url}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">{emptydirs|escape}</a>
64 </td>
64 </td>
65 <td class="link">
65 <td class="link">
66 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a>
66 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a>
67 </td>
67 </td>
68 </tr>'
68 </tr>'
69 fileentry = '
69 fileentry = '
70 <tr class="parity{parity}">
70 <tr class="parity{parity}">
71 <td style="font-family:monospace">{permissions|permissions}</td>
71 <td style="font-family:monospace">{permissions|permissions}</td>
72 <td style="font-family:monospace" align=right>{date|isodate}</td>
72 <td style="font-family:monospace" align=right>{date|isodate}</td>
73 <td style="font-family:monospace" align=right>{size}</td>
73 <td style="font-family:monospace" align=right>{size}</td>
74 <td class="list">
74 <td class="list">
75 <a class="list" href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
75 <a class="list" href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
76 </td>
76 </td>
77 <td class="link">
77 <td class="link">
78 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
78 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
79 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
79 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
80 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
80 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
81 </td>
81 </td>
82 </tr>'
82 </tr>'
83 filerevision = filerevision.tmpl
83 filerevision = filerevision.tmpl
84 fileannotate = fileannotate.tmpl
84 fileannotate = fileannotate.tmpl
85 filediff = filediff.tmpl
85 filediff = filediff.tmpl
86 filecomparison = filecomparison.tmpl
86 filecomparison = filecomparison.tmpl
87 filelog = filelog.tmpl
87 filelog = filelog.tmpl
88 fileline = '
88 fileline = '
89 <div style="font-family:monospace" class="parity{parity}">
89 <div style="font-family:monospace" class="parity{parity}">
90 <pre><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</pre>
90 <pre><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</pre>
91 </div>'
91 </div>'
92 annotateline = '
92 annotateline = '
93 <tr style="font-family:monospace" class="parity{parity}">
93 <tr style="font-family:monospace" class="parity{parity}">
94 <td class="linenr" style="text-align: right;">
94 <td class="linenr" style="text-align: right;">
95 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"
95 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"
96 title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
96 title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
97 </td>
97 </td>
98 <td><pre><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a></pre></td>
98 <td><pre><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a></pre></td>
99 <td><pre>{line|escape}</pre></td>
99 <td><pre>{line|escape}</pre></td>
100 </tr>'
100 </tr>'
101 difflineplus = '<span style="color:#008800;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
101 difflineplus = '<span style="color:#008800;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
102 difflineminus = '<span style="color:#cc0000;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
102 difflineminus = '<span style="color:#cc0000;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
103 difflineat = '<span style="color:#990099;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
103 difflineat = '<span style="color:#990099;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
104 diffline = '<span><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
104 diffline = '<span><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
105
105
106 comparisonblock ='
106 comparisonblock ='
107 <tbody class="block">
107 <tbody class="block">
108 {lines}
108 {lines}
109 </tbody>'
109 </tbody>'
110 comparisonline = '
110 comparisonline = '
111 <tr style="font-family:monospace">
111 <tr style="font-family:monospace">
112 <td class="{type}"><pre><a class="linenr" href="#{lineid}" id="{lineid}">{leftlinenumber}</a> {leftline|escape}</pre></td>
112 <td class="{type}"><pre><a class="linenr" href="#{lineid}" id="{lineid}">{leftlinenumber}</a> {leftline|escape}</pre></td>
113 <td class="{type}"><pre><a class="linenr" href="#{lineid}" id="{lineid}">{rightlinenumber}</a> {rightline|escape}</pre></td>
113 <td class="{type}"><pre><a class="linenr" href="#{lineid}" id="{lineid}">{rightlinenumber}</a> {rightline|escape}</pre></td>
114 </tr>'
114 </tr>'
115
115
116 changelogparent = '
116 changelogparent = '
117 <tr>
117 <tr>
118 <th class="parent">parent {rev}:</th>
118 <th class="parent">parent {rev}:</th>
119 <td class="parent">
119 <td class="parent">
120 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
120 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
121 </td>
121 </td>
122 </tr>'
122 </tr>'
123 changesetbranch = '<tr><td>branch</td><td>{name}</td></tr>'
123 changesetbranch = '<tr><td>branch</td><td>{name}</td></tr>'
124 changesetparent = '
124 changesetparent = '
125 <tr>
125 <tr>
126 <td>parent {rev}</td>
126 <td>parent {rev}</td>
127 <td style="font-family:monospace">
127 <td style="font-family:monospace">
128 <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
128 <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
129 </td>
129 </td>
130 </tr>'
130 </tr>'
131 filerevbranch = '<tr><td>branch</td><td>{name}</td></tr>'
131 filerevbranch = '<tr><td>branch</td><td>{name}</td></tr>'
132 filerevparent = '
132 filerevparent = '
133 <tr>
133 <tr>
134 <td>parent {rev}</td>
134 <td>parent {rev}</td>
135 <td style="font-family:monospace">
135 <td style="font-family:monospace">
136 <a class="list" href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
136 <a class="list" href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
137 {rename%filerename}{node|short}
137 {rename%filerename}{node|short}
138 </a>
138 </a>
139 </td>
139 </td>
140 </tr>'
140 </tr>'
141 filerename = '{file|escape}@'
141 filerename = '{file|escape}@'
142 filelogrename = '| <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>'
142 filelogrename = '| <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>'
143 fileannotateparent = '
143 fileannotateparent = '
144 <tr>
144 <tr>
145 <td>parent {rev}</td>
145 <td>parent {rev}</td>
146 <td style="font-family:monospace">
146 <td style="font-family:monospace">
147 <a class="list" href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
147 <a class="list" href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
148 {rename%filerename}{node|short}
148 {rename%filerename}{node|short}
149 </a>
149 </a>
150 </td>
150 </td>
151 </tr>'
151 </tr>'
152 changelogchild = '
152 changelogchild = '
153 <tr>
153 <tr>
154 <th class="child">child {rev}:</th>
154 <th class="child">child {rev}:</th>
155 <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
155 <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
156 </tr>'
156 </tr>'
157 changesetchild = '
157 changesetchild = '
158 <tr>
158 <tr>
159 <td>child {rev}</td>
159 <td>child {rev}</td>
160 <td style="font-family:monospace">
160 <td style="font-family:monospace">
161 <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
161 <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
162 </td>
162 </td>
163 </tr>'
163 </tr>'
164 filerevchild = '
164 filerevchild = '
165 <tr>
165 <tr>
166 <td>child {rev}</td>
166 <td>child {rev}</td>
167 <td style="font-family:monospace">
167 <td style="font-family:monospace">
168 <a class="list" href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
168 <a class="list" href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
169 </tr>'
169 </tr>'
170 fileannotatechild = '
170 fileannotatechild = '
171 <tr>
171 <tr>
172 <td>child {rev}</td>
172 <td>child {rev}</td>
173 <td style="font-family:monospace">
173 <td style="font-family:monospace">
174 <a class="list" href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
174 <a class="list" href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
175 </tr>'
175 </tr>'
176 tags = tags.tmpl
176 tags = tags.tmpl
177 tagentry = '
177 tagentry = '
178 <tr class="parity{parity}">
178 <tr class="parity{parity}">
179 <td class="age"><i class="age">{date|rfc822date}</i></td>
179 <td class="age"><i class="age">{date|rfc822date}</i></td>
180 <td><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}"><b>{tag|escape}</b></a></td>
180 <td><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}"><b>{tag|escape}</b></a></td>
181 <td class="link">
181 <td class="link">
182 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
182 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
183 <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
183 <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
184 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
184 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
185 </td>
185 </td>
186 </tr>'
186 </tr>'
187 bookmarks = bookmarks.tmpl
187 bookmarks = bookmarks.tmpl
188 bookmarkentry = '
188 bookmarkentry = '
189 <tr class="parity{parity}">
189 <tr class="parity{parity}">
190 <td class="age"><i class="age">{date|rfc822date}</i></td>
190 <td class="age"><i class="age">{date|rfc822date}</i></td>
191 <td><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}"><b>{bookmark|escape}</b></a></td>
191 <td><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}"><b>{bookmark|escape}</b></a></td>
192 <td class="link">
192 <td class="link">
193 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
193 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
194 <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
194 <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
195 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
195 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
196 </td>
196 </td>
197 </tr>'
197 </tr>'
198 branches = branches.tmpl
198 branches = branches.tmpl
199 branchentry = '
199 branchentry = '
200 <tr class="parity{parity}">
200 <tr class="parity{parity}">
201 <td class="age"><i class="age">{date|rfc822date}</i></td>
201 <td class="age"><i class="age">{date|rfc822date}</i></td>
202 <td><a class="list" href="{url}shortlog/{node|short}{sessionvars%urlparameter}"><b>{node|short}</b></a></td>
202 <td><a class="list" href="{url}shortlog/{node|short}{sessionvars%urlparameter}"><b>{node|short}</b></a></td>
203 <td class="{status}">{branch|escape}</td>
203 <td class="{status}">{branch|escape}</td>
204 <td class="link">
204 <td class="link">
205 <a href="{url}changeset/{node|short}{sessionvars%urlparameter}">changeset</a> |
205 <a href="{url}changeset/{node|short}{sessionvars%urlparameter}">changeset</a> |
206 <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
206 <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
207 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
207 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
208 </td>
208 </td>
209 </tr>'
209 </tr>'
210 diffblock = '<pre>{lines}</pre>'
210 diffblock = '<pre>{lines}</pre>'
211 filediffparent = '
211 filediffparent = '
212 <tr>
212 <tr>
213 <td>parent {rev}</td>
213 <td>parent {rev}</td>
214 <td style="font-family:monospace">
214 <td style="font-family:monospace">
215 <a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
215 <a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
216 {node|short}
216 {node|short}
217 </a>
217 </a>
218 </td>
218 </td>
219 </tr>'
219 </tr>'
220 filecompparent = '
220 filecompparent = '
221 <tr>
221 <tr>
222 <td>parent {rev}</td>
222 <td>parent {rev}</td>
223 <td style="font-family:monospace">
223 <td style="font-family:monospace">
224 <a class="list" href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
224 <a class="list" href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
225 {node|short}
225 {node|short}
226 </a>
226 </a>
227 </td>
227 </td>
228 </tr>'
228 </tr>'
229 filelogparent = '
229 filelogparent = '
230 <tr>
230 <tr>
231 <td align="right">parent {rev}:&nbsp;</td>
231 <td align="right">parent {rev}:&nbsp;</td>
232 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
232 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
233 </tr>'
233 </tr>'
234 filediffchild = '
234 filediffchild = '
235 <tr>
235 <tr>
236 <td>child {rev}</td>
236 <td>child {rev}</td>
237 <td style="font-family:monospace">
237 <td style="font-family:monospace">
238 <a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
238 <a class="list" href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
239 </td>
239 </td>
240 </tr>'
240 </tr>'
241 filecompchild = '
241 filecompchild = '
242 <tr>
242 <tr>
243 <td>child {rev}</td>
243 <td>child {rev}</td>
244 <td style="font-family:monospace">
244 <td style="font-family:monospace">
245 <a class="list" href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
245 <a class="list" href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
246 </td>
246 </td>
247 </tr>'
247 </tr>'
248 filelogchild = '
248 filelogchild = '
249 <tr>
249 <tr>
250 <td align="right">child {rev}:&nbsp;</td>
250 <td align="right">child {rev}:&nbsp;</td>
251 <td><a href="{url}file{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
251 <td><a href="{url}file{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
252 </tr>'
252 </tr>'
253 shortlog = shortlog.tmpl
253 shortlog = shortlog.tmpl
254 graph = graph.tmpl
254 graph = graph.tmpl
255 tagtag = '<span class="tagtag" title="{name}">{name}</span> '
255 tagtag = '<span class="tagtag" title="{name}">{name}</span> '
256 branchtag = '<span class="branchtag" title="{name}">{name}</span> '
256 branchtag = '<span class="branchtag" title="{name}">{name}</span> '
257 inbranchtag = '<span class="inbranchtag" title="{name}">{name}</span> '
257 inbranchtag = '<span class="inbranchtag" title="{name}">{name}</span> '
258 bookmarktag = '<span class="bookmarktag" title="{name}">{name}</span> '
258 bookmarktag = '<span class="bookmarktag" title="{name}">{name}</span> '
259 shortlogentry = '
259 shortlogentry = '
260 <tr class="parity{parity}">
260 <tr class="parity{parity}">
261 <td class="age"><i class="age">{date|rfc822date}</i></td>
261 <td class="age"><i class="age">{date|rfc822date}</i></td>
262 <td><i>{author|person}</i></td>
262 <td><i>{author|person}</i></td>
263 <td>
263 <td>
264 <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">
264 <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">
265 <b>{desc|strip|firstline|escape|nonempty}</b>
265 <b>{desc|strip|firstline|escape|nonempty}</b>
266 <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>
266 <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>
267 </a>
267 </a>
268 </td>
268 </td>
269 <td class="link" nowrap>
269 <td class="link" nowrap>
270 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
270 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
271 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
271 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
272 </td>
272 </td>
273 </tr>'
273 </tr>'
274 filelogentry = '
274 filelogentry = '
275 <tr class="parity{parity}">
275 <tr class="parity{parity}">
276 <td class="age"><i class="age">{date|rfc822date}</i></td>
276 <td class="age"><i class="age">{date|rfc822date}</i></td>
277 <td>
277 <td>
278 <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">
278 <a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">
279 <b>{desc|strip|firstline|escape|nonempty}</b>
279 <b>{desc|strip|firstline|escape|nonempty}</b>
280 </a>
280 </a>
281 </td>
281 </td>
282 <td class="link">
282 <td class="link">
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>
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 </tr>'
284 </tr>'
285 archiveentry = ' | <a href="{url}archive/{node|short}{extension}">{type|escape}</a> '
285 archiveentry = ' | <a href="{url}archive/{node|short}{extension}">{type|escape}</a> '
286 indexentry = '
286 indexentry = '
287 <tr class="parity{parity}">
287 <tr class="parity{parity}">
288 <td>
288 <td>
289 <a class="list" href="{url}{sessionvars%urlparameter}">
289 <a class="list" href="{url}{sessionvars%urlparameter}">
290 <b>{name|escape}</b>
290 <b>{name|escape}</b>
291 </a>
291 </a>
292 </td>
292 </td>
293 <td>{description}</td>
293 <td>{description}</td>
294 <td>{contact|obfuscate}</td>
294 <td>{contact|obfuscate}</td>
295 <td class="age">{lastchange|rfc822date}</td>
295 <td class="age">{lastchange|rfc822date}</td>
296 <td class="indexlinks">{archives%indexarchiveentry}</td>
296 <td class="indexlinks">{archives%indexarchiveentry}</td>
297 <td>{if(isdirectory, '',
297 <td>{if(isdirectory, '',
298 '<div class="rss_logo">
298 '<div class="rss_logo">
299 <a href="{url}rss-log">RSS</a> <a href="{url}atom-log">Atom</a>
299 <a href="{url}rss-log">RSS</a> <a href="{url}atom-log">Atom</a>
300 </div>'
300 </div>'
301 )}
301 )}
302 </td>
302 </td>
303 </tr>\n'
303 </tr>\n'
304 indexarchiveentry = ' <a href="{url}archive/{node|short}{extension}">{type|escape}</a> '
304 indexarchiveentry = ' <a href="{url}archive/{node|short}{extension}">{type|escape}</a> '
305 index = index.tmpl
305 index = index.tmpl
306 urlparameter = '{separator}{name}={value|urlescape}'
306 urlparameter = '{separator}{name}={value|urlescape}'
307 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
307 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
308 breadcrumb = '&gt; <a href="{url}">{name}</a> '
@@ -1,39 +1,40 b''
1 {header}
1 {header}
2 <title>{repo|escape}: Search</title>
2 <title>{repo|escape}: Search</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 </head>
7 </head>
8 <body>
8 <body>
9
9
10 <div class="page_header">
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 <form action="{url}log">
14 <form action="{url}log">
14 {sessionvars%hiddenformentry}
15 {sessionvars%hiddenformentry}
15 <div class="search">
16 <div class="search">
16 <input type="text" name="rev" value="{query|escape}" />
17 <input type="text" name="rev" value="{query|escape}" />
17 </div>
18 </div>
18 </form>
19 </form>
19 </div>
20 </div>
20
21
21 <div class="page_nav">
22 <div class="page_nav">
22 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
23 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
23 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
24 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
24 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
25 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
25 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
26 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
26 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
27 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
27 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
28 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
28 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
29 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
29 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}
30 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}
30 |
31 |
31 <a href="{url}help{sessionvars%urlparameter}">help</a>
32 <a href="{url}help{sessionvars%urlparameter}">help</a>
32 <br/>
33 <br/>
33 </div>
34 </div>
34
35
35 <div class="title">searching for {query|escape}</div>
36 <div class="title">searching for {query|escape}</div>
36
37
37 {entries}
38 {entries}
38
39
39 {footer}
40 {footer}
@@ -1,42 +1,43 b''
1 {header}
1 {header}
2 <title>{repo|escape}: Shortlog</title>
2 <title>{repo|escape}: Shortlog</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 </head>
7 </head>
8 <body>
8 <body>
9
9
10 <div class="page_header">
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 </div>
13 </div>
13
14
14 <form action="{url}log">
15 <form action="{url}log">
15 {sessionvars%hiddenformentry}
16 {sessionvars%hiddenformentry}
16 <div class="search">
17 <div class="search">
17 <input type="text" name="rev" />
18 <input type="text" name="rev" />
18 </div>
19 </div>
19 </form>
20 </form>
20 <div class="page_nav">
21 <div class="page_nav">
21 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
22 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
22 shortlog |
23 shortlog |
23 <a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> |
24 <a href="{url}log/{rev}{sessionvars%urlparameter}">changelog</a> |
24 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
25 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
25 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
26 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
26 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
27 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
27 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
28 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
28 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry} |
29 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry} |
29 <a href="{url}help{sessionvars%urlparameter}">help</a>
30 <a href="{url}help{sessionvars%urlparameter}">help</a>
30 <br/>{changenav%navshort}<br/>
31 <br/>{changenav%navshort}<br/>
31 </div>
32 </div>
32
33
33 <div class="title">&nbsp;</div>
34 <div class="title">&nbsp;</div>
34 <table cellspacing="0">
35 <table cellspacing="0">
35 {entries%shortlogentry}
36 {entries%shortlogentry}
36 </table>
37 </table>
37
38
38 <div class="page_nav">
39 <div class="page_nav">
39 {changenav%navshort}
40 {changenav%navshort}
40 </div>
41 </div>
41
42
42 {footer}
43 {footer}
@@ -1,66 +1,66 b''
1 {header}
1 {header}
2 <title>{repo|escape}: Summary</title>
2 <title>{repo|escape}: Summary</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 href="{url}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
6 href="{url}rss-log" title="RSS feed for {repo|escape}"/>
7 </head>
7 </head>
8 <body>
8 <body>
9
9
10 <div class="page_header">
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
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
12
12 <a href="/">Mercurial</a> {pathdef%breadcrumb} / summary
13 <form action="{url}log">
13 <form action="{url}log">
14 {sessionvars%hiddenformentry}
14 {sessionvars%hiddenformentry}
15 <div class="search">
15 <div class="search">
16 <input type="text" name="rev" />
16 <input type="text" name="rev" />
17 </div>
17 </div>
18 </form>
18 </form>
19 </div>
19 </div>
20
20
21 <div class="page_nav">
21 <div class="page_nav">
22 summary |
22 summary |
23 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
23 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
24 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
24 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
25 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
25 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
26 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
26 <a href="{url}tags{sessionvars%urlparameter}">tags</a> |
27 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
27 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
28 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
28 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
29 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry} |
29 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry} |
30 <a href="{url}help{sessionvars%urlparameter}">help</a>
30 <a href="{url}help{sessionvars%urlparameter}">help</a>
31 <br/>
31 <br/>
32 </div>
32 </div>
33
33
34 <div class="title">&nbsp;</div>
34 <div class="title">&nbsp;</div>
35 <table cellspacing="0">
35 <table cellspacing="0">
36 <tr><td>description</td><td>{desc}</td></tr>
36 <tr><td>description</td><td>{desc}</td></tr>
37 <tr><td>owner</td><td>{owner|obfuscate}</td></tr>
37 <tr><td>owner</td><td>{owner|obfuscate}</td></tr>
38 <tr><td>last change</td><td>{lastchange|rfc822date}</td></tr>
38 <tr><td>last change</td><td>{lastchange|rfc822date}</td></tr>
39 </table>
39 </table>
40
40
41 <div><a class="title" href="{url}shortlog{sessionvars%urlparameter}">changes</a></div>
41 <div><a class="title" href="{url}shortlog{sessionvars%urlparameter}">changes</a></div>
42 <table cellspacing="0">
42 <table cellspacing="0">
43 {shortlog}
43 {shortlog}
44 <tr class="light"><td colspan="4"><a class="list" href="{url}shortlog{sessionvars%urlparameter}">...</a></td></tr>
44 <tr class="light"><td colspan="4"><a class="list" href="{url}shortlog{sessionvars%urlparameter}">...</a></td></tr>
45 </table>
45 </table>
46
46
47 <div><a class="title" href="{url}tags{sessionvars%urlparameter}">tags</a></div>
47 <div><a class="title" href="{url}tags{sessionvars%urlparameter}">tags</a></div>
48 <table cellspacing="0">
48 <table cellspacing="0">
49 {tags}
49 {tags}
50 <tr class="light"><td colspan="3"><a class="list" href="{url}tags{sessionvars%urlparameter}">...</a></td></tr>
50 <tr class="light"><td colspan="3"><a class="list" href="{url}tags{sessionvars%urlparameter}">...</a></td></tr>
51 </table>
51 </table>
52
52
53 <div><a class="title" href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></div>
53 <div><a class="title" href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></div>
54 <table cellspacing="0">
54 <table cellspacing="0">
55 {bookmarks%bookmarkentry}
55 {bookmarks%bookmarkentry}
56 <tr class="light"><td colspan="3"><a class="list" href="{url}bookmarks{sessionvars%urlparameter}">...</a></td></tr>
56 <tr class="light"><td colspan="3"><a class="list" href="{url}bookmarks{sessionvars%urlparameter}">...</a></td></tr>
57 </table>
57 </table>
58
58
59 <div><a class="title" href="{url}branches{sessionvars%urlparameter}">branches</a></div>
59 <div><a class="title" href="{url}branches{sessionvars%urlparameter}">branches</a></div>
60 <table cellspacing="0">
60 <table cellspacing="0">
61 {branches%branchentry}
61 {branches%branchentry}
62 <tr class="light">
62 <tr class="light">
63 <td colspan="4"><a class="list" href="{url}branches{sessionvars%urlparameter}">...</a></td>
63 <td colspan="4"><a class="list" href="{url}branches{sessionvars%urlparameter}">...</a></td>
64 </tr>
64 </tr>
65 </table>
65 </table>
66 {footer}
66 {footer}
@@ -1,32 +1,33 b''
1 {header}
1 {header}
2 <title>{repo|escape}: Tags</title>
2 <title>{repo|escape}: Tags</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-tags" title="Atom feed for {repo|escape}"/>
4 href="{url}atom-tags" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-tags" title="RSS feed for {repo|escape}"/>
6 href="{url}rss-tags" title="RSS feed for {repo|escape}"/>
7 </head>
7 </head>
8 <body>
8 <body>
9
9
10 <div class="page_header">
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 </div>
13 </div>
13
14
14 <div class="page_nav">
15 <div class="page_nav">
15 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}summary{sessionvars%urlparameter}">summary</a> |
16 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a> |
17 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}log{sessionvars%urlparameter}">changelog</a> |
18 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 <a href="{url}graph{sessionvars%urlparameter}">graph</a> |
19 tags |
20 tags |
20 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 <a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
21 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 <a href="{url}branches{sessionvars%urlparameter}">branches</a> |
22 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
23 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a> |
23 <a href="{url}help{sessionvars%urlparameter}">help</a>
24 <a href="{url}help{sessionvars%urlparameter}">help</a>
24 <br/>
25 <br/>
25 </div>
26 </div>
26
27
27 <div class="title">&nbsp;</div>
28 <div class="title">&nbsp;</div>
28 <table cellspacing="0">
29 <table cellspacing="0">
29 {entries%tagentry}
30 {entries%tagentry}
30 </table>
31 </table>
31
32
32 {footer}
33 {footer}
@@ -1,38 +1,38 b''
1 {header}
1 {header}
2 <title>{repo|escape}: Bookmarks</title>
2 <title>{repo|escape}: Bookmarks</title>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 </head>
5 </head>
6
6
7 <body>
7 <body>
8 <div id="container">
8 <div id="container">
9 <div class="page-header">
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 <form action="{url}log">
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
13 {sessionvars%hiddenformentry}
14 <dl class="search">
14 <dl class="search">
15 <dt><label>Search: </label></dt>
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
17 </dl>
18 </form>
18 </form>
19
19
20 <ul class="page-nav">
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li class="current">bookmarks</li>
26 <li class="current">bookmarks</li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 </ul>
30 </ul>
31 </div>
31 </div>
32
32
33 <h2 class="no-link no-border">bookmarks</h2>
33 <h2 class="no-link no-border">bookmarks</h2>
34 <table cellspacing="0">
34 <table cellspacing="0">
35 {entries%bookmarkentry}
35 {entries%bookmarkentry}
36 </table>
36 </table>
37
37
38 {footer}
38 {footer}
@@ -1,38 +1,38 b''
1 {header}
1 {header}
2 <title>{repo|escape}: Branches</title>
2 <title>{repo|escape}: Branches</title>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-branches" title="Atom feed for {repo|escape}"/>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-branches" title="Atom feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-branches" title="RSS feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-branches" title="RSS feed for {repo|escape}"/>
5 </head>
5 </head>
6
6
7 <body>
7 <body>
8 <div id="container">
8 <div id="container">
9 <div class="page-header">
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 <form action="{url}log">
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
13 {sessionvars%hiddenformentry}
14 <dl class="search">
14 <dl class="search">
15 <dt><label>Search: </label></dt>
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
17 </dl>
18 </form>
18 </form>
19
19
20 <ul class="page-nav">
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 <li class="current">branches</li>
27 <li class="current">branches</li>
28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 </ul>
30 </ul>
31 </div>
31 </div>
32
32
33 <h2 class="no-link no-border">branches</h2>
33 <h2 class="no-link no-border">branches</h2>
34 <table cellspacing="0">
34 <table cellspacing="0">
35 {entries%branchentry}
35 {entries%branchentry}
36 </table>
36 </table>
37
37
38 {footer}
38 {footer}
@@ -1,42 +1,42 b''
1 {header}
1 {header}
2 <title>{repo|escape}: changelog</title>
2 <title>{repo|escape}: changelog</title>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 </head>
5 </head>
6
6
7 <body>
7 <body>
8 <div id="container">
8 <div id="container">
9 <div class="page-header">
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 <form action="{url}log">
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
13 {sessionvars%hiddenformentry}
14 <dl class="search">
14 <dl class="search">
15 <dt><label>Search: </label></dt>
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
17 </dl>
18 </form>
18 </form>
19
19
20 <ul class="page-nav">
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li class="current">changelog</li>
23 <li class="current">changelog</li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}</li>
28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}</li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 </ul>
30 </ul>
31 </div>
31 </div>
32
32
33 <h2 class="no-link no-border">changelog</h2>
33 <h2 class="no-link no-border">changelog</h2>
34 <div>
34 <div>
35 {entries%changelogentry}
35 {entries%changelogentry}
36 </div>
36 </div>
37
37
38 <div class="page-path">
38 <div class="page-path">
39 {changenav%nav}
39 {changenav%nav}
40 </div>
40 </div>
41
41
42 {footer}
42 {footer}
@@ -1,65 +1,65 b''
1 {header}
1 {header}
2 <title>{repo|escape}: changeset {rev}:{node|short}</title>
2 <title>{repo|escape}: changeset {rev}:{node|short}</title>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 </head>
5 </head>
6
6
7 <body>
7 <body>
8 <div id="container">
8 <div id="container">
9 <div class="page-header">
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 <form action="{url}log">
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
13 {sessionvars%hiddenformentry}
14 <dl class="search">
14 <dl class="search">
15 <dt><label>Search: </label></dt>
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
17 </dl>
18 </form>
18 </form>
19
19
20 <ul class="page-nav">
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 </ul>
30 </ul>
31 </div>
31 </div>
32
32
33 <ul class="submenu">
33 <ul class="submenu">
34 <li class="current">changeset</li>
34 <li class="current">changeset</li>
35 <li><a href="{url}raw-rev/{node|short}">raw</a> {archives%archiveentry}</li>
35 <li><a href="{url}raw-rev/{node|short}">raw</a> {archives%archiveentry}</li>
36 </ul>
36 </ul>
37
37
38 <h2 class="no-link no-border">changeset</h2>
38 <h2 class="no-link no-border">changeset</h2>
39
39
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>
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 <p class="changeset-age age">{date|rfc822date}</p>
41 <p class="changeset-age age">{date|rfc822date}</p>
42
42
43 <dl class="overview">
43 <dl class="overview">
44 <dt>author</dt>
44 <dt>author</dt>
45 <dd>{author|obfuscate}</dd>
45 <dd>{author|obfuscate}</dd>
46 <dt>date</dt>
46 <dt>date</dt>
47 <dd>{date|rfc822date}</dd>
47 <dd>{date|rfc822date}</dd>
48 {branch%changesetbranch}
48 {branch%changesetbranch}
49 <dt>changeset {rev}</dt>
49 <dt>changeset {rev}</dt>
50 <dd>{node|short}</dd>
50 <dd>{node|short}</dd>
51 {parent%changesetparent}
51 {parent%changesetparent}
52 {child%changesetchild}
52 {child%changesetchild}
53 </dl>
53 </dl>
54
54
55 <p class="description">{desc|strip|escape|addbreaks|nonempty}</p>
55 <p class="description">{desc|strip|escape|addbreaks|nonempty}</p>
56
56
57 <table>
57 <table>
58 {files}
58 {files}
59 </table>
59 </table>
60
60
61 <div class="diff">
61 <div class="diff">
62 {diff}
62 {diff}
63 </div>
63 </div>
64
64
65 {footer}
65 {footer}
@@ -1,36 +1,36 b''
1 {header}
1 {header}
2 <title>{repo|escape}: Error</title>
2 <title>{repo|escape}: Error</title>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 </head>
5 </head>
6
6
7 <body>
7 <body>
8 <div id="container">
8 <div id="container">
9 <div class="page-header">
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 <form action="{url}log">
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
13 {sessionvars%hiddenformentry}
14 <dl class="search">
14 <dl class="search">
15 <dt><label>Search: </label></dt>
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
17 </dl>
18 </form>
18 </form>
19
19
20 <ul class="page-nav">
20 <ul class="page-nav">
21 <li class="current">summary</li>
21 <li class="current">summary</li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 </ul>
30 </ul>
31 </div>
31 </div>
32
32
33 <h2 class="no-link no-border">An error occurred while processing your request</h2>
33 <h2 class="no-link no-border">An error occurred while processing your request</h2>
34 <p class="normal">{error|escape}</p>
34 <p class="normal">{error|escape}</p>
35
35
36 {footer}
36 {footer}
@@ -1,66 +1,66 b''
1 {header}
1 {header}
2 <title>{repo|escape}: {file|escape}@{node|short} (annotated)</title>
2 <title>{repo|escape}: {file|escape}@{node|short} (annotated)</title>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 </head>
5 </head>
6
6
7 <body>
7 <body>
8 <div id="container">
8 <div id="container">
9 <div class="page-header">
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 <form action="{url}log">
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
13 {sessionvars%hiddenformentry}
14 <dl class="search">
14 <dl class="search">
15 <dt><label>Search: </label></dt>
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
17 </dl>
18 </form>
18 </form>
19
19
20 <ul class="page-nav">
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
28 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 </ul>
30 </ul>
31 </div>
31 </div>
32
32
33 <ul class="submenu">
33 <ul class="submenu">
34 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
34 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
35 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
35 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
36 <li class="current">annotate</li>
36 <li class="current">annotate</li>
37 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
37 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
38 <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
38 <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
39 <li><a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a></li>
39 <li><a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a></li>
40 </ul>
40 </ul>
41
41
42 <h2 class="no-link no-border">{file|escape}@{node|short} (annotated)</h2>
42 <h2 class="no-link no-border">{file|escape}@{node|short} (annotated)</h2>
43 <h3 class="changeset">{file|escape}</h3>
43 <h3 class="changeset">{file|escape}</h3>
44 <p class="changeset-age age">{date|rfc822date}</p>
44 <p class="changeset-age age">{date|rfc822date}</p>
45
45
46 <dl class="overview">
46 <dl class="overview">
47 <dt>author</dt>
47 <dt>author</dt>
48 <dd>{author|obfuscate}</dd>
48 <dd>{author|obfuscate}</dd>
49 <dt>date</dt>
49 <dt>date</dt>
50 <dd>{date|rfc822date}</dd>
50 <dd>{date|rfc822date}</dd>
51 {branch%filerevbranch}
51 {branch%filerevbranch}
52 <dt>changeset {rev}</dt>
52 <dt>changeset {rev}</dt>
53 <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
53 <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
54 {parent%fileannotateparent}
54 {parent%fileannotateparent}
55 {child%fileannotatechild}
55 {child%fileannotatechild}
56 <dt>permissions</dt>
56 <dt>permissions</dt>
57 <dd>{permissions|permissions}</dd>
57 <dd>{permissions|permissions}</dd>
58 </dl>
58 </dl>
59
59
60 <p class="description">{desc|strip|escape|addbreaks|nonempty}</p>
60 <p class="description">{desc|strip|escape|addbreaks|nonempty}</p>
61
61
62 <table class="annotated">
62 <table class="annotated">
63 {annotate%annotateline}
63 {annotate%annotateline}
64 </table>
64 </table>
65
65
66 {footer}
66 {footer}
@@ -1,72 +1,72 b''
1 {header}
1 {header}
2 <title>{repo|escape}: comparison {file|escape}</title>
2 <title>{repo|escape}: comparison {file|escape}</title>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 </head>
5 </head>
6
6
7 <body>
7 <body>
8 <div id="container">
8 <div id="container">
9 <div class="page-header">
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 <form action="{url}log">
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
13 {sessionvars%hiddenformentry}
14 <dl class="search">
14 <dl class="search">
15 <dt><label>Search: </label></dt>
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
17 </dl>
18 </form>
18 </form>
19
19
20 <ul class="page-nav">
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
28 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 </ul>
30 </ul>
31 </div>
31 </div>
32
32
33 <ul class="submenu">
33 <ul class="submenu">
34 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
34 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
35 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
35 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
36 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
36 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
37 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
37 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
38 <li class="current">comparison</li>
38 <li class="current">comparison</li>
39 <li><a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a></li>
39 <li><a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a></li>
40 </ul>
40 </ul>
41
41
42 <h2 class="no-link no-border">comparison: {file|escape}</h2>
42 <h2 class="no-link no-border">comparison: {file|escape}</h2>
43 <h3 class="changeset">{file|escape}</h3>
43 <h3 class="changeset">{file|escape}</h3>
44
44
45 <dl class="overview">
45 <dl class="overview">
46 {branch%filerevbranch}
46 {branch%filerevbranch}
47 <dt>changeset {rev}</dt>
47 <dt>changeset {rev}</dt>
48 <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
48 <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
49 {parent%filecompparent}
49 {parent%filecompparent}
50 {child%filecompchild}
50 {child%filecompchild}
51 </dl>
51 </dl>
52
52
53 <div class="legend">
53 <div class="legend">
54 <span class="legendinfo equal">equal</span>
54 <span class="legendinfo equal">equal</span>
55 <span class="legendinfo delete">deleted</span>
55 <span class="legendinfo delete">deleted</span>
56 <span class="legendinfo insert">inserted</span>
56 <span class="legendinfo insert">inserted</span>
57 <span class="legendinfo replace">replaced</span>
57 <span class="legendinfo replace">replaced</span>
58 </div>
58 </div>
59
59
60 <div class="comparison">
60 <div class="comparison">
61 <table class="bigtable">
61 <table class="bigtable">
62 <thead class="header">
62 <thead class="header">
63 <tr>
63 <tr>
64 <th>{leftrev}:{leftnode|short}</th>
64 <th>{leftrev}:{leftnode|short}</th>
65 <th>{rightrev}:{rightnode|short}</th>
65 <th>{rightrev}:{rightnode|short}</th>
66 </tr>
66 </tr>
67 </thead>
67 </thead>
68 {comparison}
68 {comparison}
69 </table>
69 </table>
70 </div>
70 </div>
71
71
72 {footer}
72 {footer}
@@ -1,57 +1,57 b''
1 {header}
1 {header}
2 <title>{repo|escape}: diff {file|escape}</title>
2 <title>{repo|escape}: diff {file|escape}</title>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 </head>
5 </head>
6
6
7 <body>
7 <body>
8 <div id="container">
8 <div id="container">
9 <div class="page-header">
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 <form action="{url}log">
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
13 {sessionvars%hiddenformentry}
14 <dl class="search">
14 <dl class="search">
15 <dt><label>Search: </label></dt>
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
17 </dl>
18 </form>
18 </form>
19
19
20 <ul class="page-nav">
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
28 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 </ul>
30 </ul>
31 </div>
31 </div>
32
32
33 <ul class="submenu">
33 <ul class="submenu">
34 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
34 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
35 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
35 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
36 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
36 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
37 <li class="current">diff</li>
37 <li class="current">diff</li>
38 <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
38 <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
39 <li><a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a></li>
39 <li><a href="{url}raw-diff/{node|short}/{file|urlescape}">raw</a></li>
40 </ul>
40 </ul>
41
41
42 <h2 class="no-link no-border">diff: {file|escape}</h2>
42 <h2 class="no-link no-border">diff: {file|escape}</h2>
43 <h3 class="changeset">{file|escape}</h3>
43 <h3 class="changeset">{file|escape}</h3>
44
44
45 <dl class="overview">
45 <dl class="overview">
46 {branch%filerevbranch}
46 {branch%filerevbranch}
47 <dt>changeset {rev}</dt>
47 <dt>changeset {rev}</dt>
48 <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
48 <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
49 {parent%filediffparent}
49 {parent%filediffparent}
50 {child%filediffchild}
50 {child%filediffchild}
51 </dl>
51 </dl>
52
52
53 <div class="diff">
53 <div class="diff">
54 {diff}
54 {diff}
55 </div>
55 </div>
56
56
57 {footer}
57 {footer}
@@ -1,52 +1,52 b''
1 {header}
1 {header}
2 <title>{repo|escape}: File revisions</title>
2 <title>{repo|escape}: File revisions</title>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 </head>
5 </head>
6
6
7 <body>
7 <body>
8 <div id="container">
8 <div id="container">
9 <div class="page-header">
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 <form action="{url}log">
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
13 {sessionvars%hiddenformentry}
14 <dl class="search">
14 <dl class="search">
15 <dt><label>Search: </label></dt>
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
17 </dl>
18 </form>
18 </form>
19
19
20 <ul class="page-nav">
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
28 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 </ul>
30 </ul>
31 </div>
31 </div>
32
32
33 <ul class="submenu">
33 <ul class="submenu">
34 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
34 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
35 <li class="current">revisions</li>
35 <li class="current">revisions</li>
36 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
36 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
37 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
37 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
38 <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
38 <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
39 <li><a href="{url}rss-log/tip/{file|urlescape}">rss</a></li>
39 <li><a href="{url}rss-log/tip/{file|urlescape}">rss</a></li>
40 </ul>
40 </ul>
41
41
42 <h2 class="no-link no-border">{file|urlescape}</h2>
42 <h2 class="no-link no-border">{file|urlescape}</h2>
43
43
44 <table>
44 <table>
45 {entries%filelogentry}
45 {entries%filelogentry}
46 </table>
46 </table>
47
47
48 <div class="page-path">
48 <div class="page-path">
49 {nav%filenav}
49 {nav%filenav}
50 </div>
50 </div>
51
51
52 {footer}
52 {footer}
@@ -1,66 +1,66 b''
1 {header}
1 {header}
2 <title>{repo|escape}: {file|escape}@{node|short}</title>
2 <title>{repo|escape}: {file|escape}@{node|short}</title>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 </head>
5 </head>
6
6
7 <body>
7 <body>
8 <div id="container">
8 <div id="container">
9 <div class="page-header">
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 <form action="{url}log">
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
13 {sessionvars%hiddenformentry}
14 <dl class="search">
14 <dl class="search">
15 <dt><label>Search: </label></dt>
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
17 </dl>
18 </form>
18 </form>
19
19
20 <ul class="page-nav">
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
28 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 </ul>
30 </ul>
31 </div>
31 </div>
32
32
33 <ul class="submenu">
33 <ul class="submenu">
34 <li class="current">file</li>
34 <li class="current">file</li>
35 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
35 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a></li>
36 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
36 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
37 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
37 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
38 <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
38 <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
39 <li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li>
39 <li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li>
40 </ul>
40 </ul>
41
41
42 <h2 class="no-link no-border">{file|escape}@{node|short}</h2>
42 <h2 class="no-link no-border">{file|escape}@{node|short}</h2>
43 <h3 class="changeset">{file|escape}</h3>
43 <h3 class="changeset">{file|escape}</h3>
44 <p class="changeset-age age">{date|rfc822date}</p>
44 <p class="changeset-age age">{date|rfc822date}</p>
45
45
46 <dl class="overview">
46 <dl class="overview">
47 <dt>author</dt>
47 <dt>author</dt>
48 <dd>{author|obfuscate}</dd>
48 <dd>{author|obfuscate}</dd>
49 <dt>date</dt>
49 <dt>date</dt>
50 <dd>{date|rfc822date}</dd>
50 <dd>{date|rfc822date}</dd>
51 {branch%filerevbranch}
51 {branch%filerevbranch}
52 <dt>changeset {rev}</dt>
52 <dt>changeset {rev}</dt>
53 <dd><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
53 <dd><a class="list" href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>
54 {parent%filerevparent}
54 {parent%filerevparent}
55 {child%filerevchild}
55 {child%filerevchild}
56 <dt>permissions</dt>
56 <dt>permissions</dt>
57 <dd>{permissions|permissions}</dd>
57 <dd>{permissions|permissions}</dd>
58 </dl>
58 </dl>
59
59
60 <p class="description">{desc|strip|escape|addbreaks|nonempty}</p>
60 <p class="description">{desc|strip|escape|addbreaks|nonempty}</p>
61
61
62 <div class="source">
62 <div class="source">
63 {text%fileline}
63 {text%fileline}
64 </div>
64 </div>
65
65
66 {footer}
66 {footer}
@@ -1,107 +1,107 b''
1 {header}
1 {header}
2 <title>{repo|escape}: graph</title>
2 <title>{repo|escape}: graph</title>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 <!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]-->
5 <!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]-->
6 </head>
6 </head>
7
7
8 <body>
8 <body>
9 <div id="container">
9 <div id="container">
10 <div class="page-header">
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 <form action="{url}log">
13 <form action="{url}log">
14 {sessionvars%hiddenformentry}
14 {sessionvars%hiddenformentry}
15 <dl class="search">
15 <dl class="search">
16 <dt><label>Search: </label></dt>
16 <dt><label>Search: </label></dt>
17 <dd><input type="text" name="rev" /></dd>
17 <dd><input type="text" name="rev" /></dd>
18 </dl>
18 </dl>
19 </form>
19 </form>
20
20
21 <ul class="page-nav">
21 <ul class="page-nav">
22 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
23 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
24 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
25 <li class="current">graph</li>
25 <li class="current">graph</li>
26 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
27 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
28 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
29 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
29 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
30 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
31 </ul>
31 </ul>
32 </div>
32 </div>
33
33
34 <h2 class="no-link no-border">graph</h2>
34 <h2 class="no-link no-border">graph</h2>
35
35
36 <div id="noscript">The revision graph only works with JavaScript-enabled browsers.</div>
36 <div id="noscript">The revision graph only works with JavaScript-enabled browsers.</div>
37 <div id="wrapper">
37 <div id="wrapper">
38 <ul id="nodebgs"></ul>
38 <ul id="nodebgs"></ul>
39 <canvas id="graph" width="480" height="{canvasheight}"></canvas>
39 <canvas id="graph" width="480" height="{canvasheight}"></canvas>
40 <ul id="graphnodes"></ul>
40 <ul id="graphnodes"></ul>
41 </div>
41 </div>
42
42
43 <script>
43 <script>
44 <!-- hide script content
44 <!-- hide script content
45
45
46 document.getElementById('noscript').style.display = 'none';
46 document.getElementById('noscript').style.display = 'none';
47
47
48 var data = {jsdata|json};
48 var data = {jsdata|json};
49 var graph = new Graph();
49 var graph = new Graph();
50 graph.scale({bg_height});
50 graph.scale({bg_height});
51
51
52 graph.vertex = function(x, y, color, parity, cur) \{
52 graph.vertex = function(x, y, color, parity, cur) \{
53
53
54 this.ctx.beginPath();
54 this.ctx.beginPath();
55 color = this.setColor(color, 0.25, 0.75);
55 color = this.setColor(color, 0.25, 0.75);
56 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
56 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
57 this.ctx.fill();
57 this.ctx.fill();
58
58
59 var bg = '<li class="bg parity' + parity + '"></li>';
59 var bg = '<li class="bg parity' + parity + '"></li>';
60 var left = (this.bg_height - this.box_size) + (this.columns + 1) * this.box_size;
60 var left = (this.bg_height - this.box_size) + (this.columns + 1) * this.box_size;
61 var nstyle = 'padding-left: ' + left + 'px;';
61 var nstyle = 'padding-left: ' + left + 'px;';
62
62
63 var tagspan = '';
63 var tagspan = '';
64 if (cur[7].length || cur[8].length || (cur[6][0] != 'default' || cur[6][1])) \{
64 if (cur[7].length || cur[8].length || (cur[6][0] != 'default' || cur[6][1])) \{
65 tagspan = '<span class="logtags">';
65 tagspan = '<span class="logtags">';
66 if (cur[6][1]) \{
66 if (cur[6][1]) \{
67 tagspan += '<span class="branchtag" title="' + cur[6][0] + '">';
67 tagspan += '<span class="branchtag" title="' + cur[6][0] + '">';
68 tagspan += cur[6][0] + '</span> ';
68 tagspan += cur[6][0] + '</span> ';
69 } else if (!cur[6][1] && cur[6][0] != 'default') \{
69 } else if (!cur[6][1] && cur[6][0] != 'default') \{
70 tagspan += '<span class="inbranchtag" title="' + cur[6][0] + '">';
70 tagspan += '<span class="inbranchtag" title="' + cur[6][0] + '">';
71 tagspan += cur[6][0] + '</span> ';
71 tagspan += cur[6][0] + '</span> ';
72 }
72 }
73 if (cur[7].length) \{
73 if (cur[7].length) \{
74 for (var t in cur[7]) \{
74 for (var t in cur[7]) \{
75 var tag = cur[7][t];
75 var tag = cur[7][t];
76 tagspan += '<span class="tagtag">' + tag + '</span> ';
76 tagspan += '<span class="tagtag">' + tag + '</span> ';
77 }
77 }
78 }
78 }
79 if (cur[8].length) \{
79 if (cur[8].length) \{
80 for (var t in cur[8]) \{
80 for (var t in cur[8]) \{
81 var bookmark = cur[8][t];
81 var bookmark = cur[8][t];
82 tagspan += '<span class="bookmarktag">' + bookmark + '</span> ';
82 tagspan += '<span class="bookmarktag">' + bookmark + '</span> ';
83 }
83 }
84 }
84 }
85 tagspan += '</span>';
85 tagspan += '</span>';
86 }
86 }
87
87
88 var item = '<li style="' + nstyle + '"><span class="desc">';
88 var item = '<li style="' + nstyle + '"><span class="desc">';
89 item += '<a href="{url}rev/' + cur[0] + '{sessionvars%urlparameter}" title="' + cur[0] + '">' + cur[3] + '</a>';
89 item += '<a href="{url}rev/' + cur[0] + '{sessionvars%urlparameter}" title="' + cur[0] + '">' + cur[3] + '</a>';
90 item += '</span>' + tagspan + '<span class="info">' + cur[5] + ', by ' + cur[4] + '</span></li>';
90 item += '</span>' + tagspan + '<span class="info">' + cur[5] + ', by ' + cur[4] + '</span></li>';
91
91
92 return [bg, item];
92 return [bg, item];
93
93
94 }
94 }
95
95
96 graph.render(data);
96 graph.render(data);
97
97
98 // stop hiding script -->
98 // stop hiding script -->
99 </script>
99 </script>
100
100
101 <div class="page-path">
101 <div class="page-path">
102 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
102 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
103 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
103 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
104 | {changenav%navgraph}
104 | {changenav%navgraph}
105 </div>
105 </div>
106
106
107 {footer}
107 {footer}
@@ -1,38 +1,38 b''
1 {header}
1 {header}
2 <title>{repo|escape}: Branches</title>
2 <title>{repo|escape}: Branches</title>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 </head>
5 </head>
6
6
7 <body>
7 <body>
8 <div id="container">
8 <div id="container">
9 <div class="page-header">
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 <form action="{url}log">
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
13 {sessionvars%hiddenformentry}
14 <dl class="search">
14 <dl class="search">
15 <dt><label>Search: </label></dt>
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
17 </dl>
18 </form>
18 </form>
19
19
20 <ul class="page-nav">
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
29 <li class="current">help</li>
29 <li class="current">help</li>
30 </ul>
30 </ul>
31 </div>
31 </div>
32
32
33 <h2 class="no-link no-border">branches</h2>
33 <h2 class="no-link no-border">branches</h2>
34 <pre>
34 <pre>
35 {doc|escape}
35 {doc|escape}
36 </pre>
36 </pre>
37
37
38 {footer}
38 {footer}
@@ -1,45 +1,45 b''
1 {header}
1 {header}
2 <title>{repo|escape}: Branches</title>
2 <title>{repo|escape}: Branches</title>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 </head>
5 </head>
6
6
7 <body>
7 <body>
8 <div id="container">
8 <div id="container">
9 <div class="page-header">
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 <form action="{url}log">
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
13 {sessionvars%hiddenformentry}
14 <dl class="search">
14 <dl class="search">
15 <dt><label>Search: </label></dt>
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
17 </dl>
18 </form>
18 </form>
19
19
20 <ul class="page-nav">
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 <li><a href="{url}help{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}help{sessionvars%urlparameter}">branches</a></li>
28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
29 <li class="current">help</li>
29 <li class="current">help</li>
30 </ul>
30 </ul>
31 </div>
31 </div>
32
32
33 <h2 class="no-link no-border">branches</h2>
33 <h2 class="no-link no-border">branches</h2>
34 <table cellspacing="0">
34 <table cellspacing="0">
35 <tr><td colspan="2"><h2><a name="main" href="#topics">Topics</a></h2></td></tr>
35 <tr><td colspan="2"><h2><a name="main" href="#topics">Topics</a></h2></td></tr>
36 {topics % helpentry}
36 {topics % helpentry}
37
37
38 <tr><td colspan="2"><h2><a name="main" href="#main">Main Commands</a></h2></td></tr>
38 <tr><td colspan="2"><h2><a name="main" href="#main">Main Commands</a></h2></td></tr>
39 {earlycommands % helpentry}
39 {earlycommands % helpentry}
40
40
41 <tr><td colspan="2"><h2><a name="other" href="#other">Other Commands</a></h2></td></tr>
41 <tr><td colspan="2"><h2><a name="other" href="#other">Other Commands</a></h2></td></tr>
42 {othercommands % helpentry}
42 {othercommands % helpentry}
43 </table>
43 </table>
44
44
45 {footer}
45 {footer}
@@ -1,39 +1,39 b''
1 {header}
1 {header}
2 <title>{repo|escape}: Mercurial repositories index</title>
2 <title>{repo|escape}: Mercurial repositories index</title>
3 </head>
3 </head>
4
4
5 <body>
5 <body>
6 <div id="container">
6 <div id="container">
7 <div class="page-header">
7 <div class="page-header">
8 <h1>Mercurial Repositories</h1>
8 <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h1>
9 <ul class="page-nav">
9 <ul class="page-nav">
10 </ul>
10 </ul>
11 </div>
11 </div>
12
12
13 <table cellspacing="0">
13 <table cellspacing="0">
14 <tr>
14 <tr>
15 <td><a href="?sort={sort_name}">Name</a></td>
15 <td><a href="?sort={sort_name}">Name</a></td>
16 <td><a href="?sort={sort_description}">Description</a></td>
16 <td><a href="?sort={sort_description}">Description</a></td>
17 <td><a href="?sort={sort_contact}">Contact</a></td>
17 <td><a href="?sort={sort_contact}">Contact</a></td>
18 <td><a href="?sort={sort_lastchange}">Last modified</a></td>
18 <td><a href="?sort={sort_lastchange}">Last modified</a></td>
19 <td>&nbsp;</td>
19 <td>&nbsp;</td>
20 <td>&nbsp;</td>
20 <td>&nbsp;</td>
21 </tr>
21 </tr>
22 {entries%indexentry}
22 {entries%indexentry}
23 </table>
23 </table>
24 <div class="page-footer">
24 <div class="page-footer">
25 {motd}
25 {motd}
26 </div>
26 </div>
27
27
28 <div id="powered-by">
28 <div id="powered-by">
29 <p><a href="{logourl}" title="Mercurial"><img src="{staticurl}{logoimg}" width=75 height=90 border=0 alt="mercurial"></a></p>
29 <p><a href="{logourl}" title="Mercurial"><img src="{staticurl}{logoimg}" width=75 height=90 border=0 alt="mercurial"></a></p>
30 </div>
30 </div>
31
31
32 <div id="corner-top-left"></div>
32 <div id="corner-top-left"></div>
33 <div id="corner-top-right"></div>
33 <div id="corner-top-right"></div>
34 <div id="corner-bottom-left"></div>
34 <div id="corner-bottom-left"></div>
35 <div id="corner-bottom-right"></div>
35 <div id="corner-bottom-right"></div>
36
36
37 </div>
37 </div>
38 </body>
38 </body>
39 </html>
39 </html>
@@ -1,53 +1,53 b''
1 {header}
1 {header}
2 <title>{repo|escape}: files</title>
2 <title>{repo|escape}: files</title>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 </head>
5 </head>
6
6
7 <body>
7 <body>
8 <div id="container">
8 <div id="container">
9 <div class="page-header">
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 <form action="{url}log">
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
13 {sessionvars%hiddenformentry}
14 <dl class="search">
14 <dl class="search">
15 <dt><label>Search: </label></dt>
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
17 </dl>
18 </form>
18 </form>
19
19
20 <ul class="page-nav">
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 <li class="current">files</li>
28 <li class="current">files</li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 </ul>
30 </ul>
31 </div>
31 </div>
32
32
33 <ul class="submenu">
33 <ul class="submenu">
34 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> {archives%archiveentry}</li>
34 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> {archives%archiveentry}</li>
35 {archives%archiveentry}
35 {archives%archiveentry}
36 </ul>
36 </ul>
37
37
38 <h2 class="no-link no-border">files</h2>
38 <h2 class="no-link no-border">files</h2>
39 <p class="files">{path|escape} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span></p>
39 <p class="files">{path|escape} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span></p>
40
40
41 <table>
41 <table>
42 <tr class="parity{upparity}">
42 <tr class="parity{upparity}">
43 <td>drwxr-xr-x</td>
43 <td>drwxr-xr-x</td>
44 <td></td>
44 <td></td>
45 <td></td>
45 <td></td>
46 <td><a href="{url}file/{node|short}{up|urlescape}{sessionvars%urlparameter}">[up]</a></td>
46 <td><a href="{url}file/{node|short}{up|urlescape}{sessionvars%urlparameter}">[up]</a></td>
47 <td class="link">&nbsp;</td>
47 <td class="link">&nbsp;</td>
48 </tr>
48 </tr>
49 {dentries%direntry}
49 {dentries%direntry}
50 {fentries%fileentry}
50 {fentries%fileentry}
51 </table>
51 </table>
52
52
53 {footer}
53 {footer}
@@ -1,261 +1,262 b''
1 default = 'summary'
1 default = 'summary'
2 mimetype = 'text/html; charset={encoding}'
2 mimetype = 'text/html; charset={encoding}'
3 header = header.tmpl
3 header = header.tmpl
4 footer = footer.tmpl
4 footer = footer.tmpl
5 search = search.tmpl
5 search = search.tmpl
6 changelog = changelog.tmpl
6 changelog = changelog.tmpl
7 summary = summary.tmpl
7 summary = summary.tmpl
8 error = error.tmpl
8 error = error.tmpl
9 notfound = notfound.tmpl
9 notfound = notfound.tmpl
10
10
11 help = help.tmpl
11 help = help.tmpl
12 helptopics = helptopics.tmpl
12 helptopics = helptopics.tmpl
13
13
14 helpentry = '<tr><td><a href="{url}help/{topic|escape}{sessionvars%urlparameter}">{topic|escape}</a></td><td>{summary|escape}</td></tr>'
14 helpentry = '<tr><td><a href="{url}help/{topic|escape}{sessionvars%urlparameter}">{topic|escape}</a></td><td>{summary|escape}</td></tr>'
15
15
16 naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
16 naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
17 navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
17 navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
18 navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
18 navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
19 filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a>'
19 filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a>'
20 filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
20 filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
21 filenodelink = '
21 filenodelink = '
22 <tr class="parity{parity}">
22 <tr class="parity{parity}">
23 <td><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
23 <td><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
24 <td></td>
24 <td></td>
25 <td>
25 <td>
26 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
26 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
27 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
27 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
28 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
28 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
29 <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
29 <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
30 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
30 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
31 </td>
31 </td>
32 </tr>'
32 </tr>'
33 filenolink = '
33 filenolink = '
34 <tr class="parity{parity}">
34 <tr class="parity{parity}">
35 <td><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
35 <td><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
36 <td></td>
36 <td></td>
37 <td>
37 <td>
38 file |
38 file |
39 annotate |
39 annotate |
40 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
40 <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
41 <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
41 <a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
42 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
42 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
43 </td>
43 </td>
44 </tr>'
44 </tr>'
45
45
46 nav = '{before%naventry} {after%naventry}'
46 nav = '{before%naventry} {after%naventry}'
47 navshort = '{before%navshortentry}{after%navshortentry}'
47 navshort = '{before%navshortentry}{after%navshortentry}'
48 navgraph = '{before%navgraphentry}{after%navgraphentry}'
48 navgraph = '{before%navgraphentry}{after%navgraphentry}'
49 filenav = '{before%filenaventry}{after%filenaventry}'
49 filenav = '{before%filenaventry}{after%filenaventry}'
50
50
51 fileellipses = '...'
51 fileellipses = '...'
52 changelogentry = changelogentry.tmpl
52 changelogentry = changelogentry.tmpl
53 searchentry = changelogentry.tmpl
53 searchentry = changelogentry.tmpl
54 changeset = changeset.tmpl
54 changeset = changeset.tmpl
55 manifest = manifest.tmpl
55 manifest = manifest.tmpl
56 direntry = '
56 direntry = '
57 <tr class="parity{parity}">
57 <tr class="parity{parity}">
58 <td>drwxr-xr-x</td>
58 <td>drwxr-xr-x</td>
59 <td></td>
59 <td></td>
60 <td></td>
60 <td></td>
61 <td><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a></td>
61 <td><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a></td>
62 <td><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></td>
62 <td><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">files</a></td>
63 </tr>'
63 </tr>'
64 fileentry = '
64 fileentry = '
65 <tr class="parity{parity}">
65 <tr class="parity{parity}">
66 <td>{permissions|permissions}</td>
66 <td>{permissions|permissions}</td>
67 <td>{date|isodate}</td>
67 <td>{date|isodate}</td>
68 <td>{size}</td>
68 <td>{size}</td>
69 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a></td>
69 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a></td>
70 <td>
70 <td>
71 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
71 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
72 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
72 <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
73 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
73 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
74 </td>
74 </td>
75 </tr>'
75 </tr>'
76 filerevision = filerevision.tmpl
76 filerevision = filerevision.tmpl
77 fileannotate = fileannotate.tmpl
77 fileannotate = fileannotate.tmpl
78 filediff = filediff.tmpl
78 filediff = filediff.tmpl
79 filecomparison = filecomparison.tmpl
79 filecomparison = filecomparison.tmpl
80 filelog = filelog.tmpl
80 filelog = filelog.tmpl
81 fileline = '
81 fileline = '
82 <div style="font-family:monospace" class="parity{parity}">
82 <div style="font-family:monospace" class="parity{parity}">
83 <pre><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</pre>
83 <pre><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</pre>
84 </div>'
84 </div>'
85 annotateline = '
85 annotateline = '
86 <tr class="parity{parity}">
86 <tr class="parity{parity}">
87 <td class="linenr">
87 <td class="linenr">
88 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"
88 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"
89 title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
89 title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
90 </td>
90 </td>
91 <td class="lineno">
91 <td class="lineno">
92 <a href="#{lineid}" id="{lineid}">{linenumber}</a>
92 <a href="#{lineid}" id="{lineid}">{linenumber}</a>
93 </td>
93 </td>
94 <td class="source">{line|escape}</td>
94 <td class="source">{line|escape}</td>
95 </tr>'
95 </tr>'
96 difflineplus = '<span style="color:#008800;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
96 difflineplus = '<span style="color:#008800;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
97 difflineminus = '<span style="color:#cc0000;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
97 difflineminus = '<span style="color:#cc0000;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
98 difflineat = '<span style="color:#990099;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
98 difflineat = '<span style="color:#990099;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
99 diffline = '<span><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
99 diffline = '<span><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>'
100
100
101 comparisonblock ='
101 comparisonblock ='
102 <tbody class="block">
102 <tbody class="block">
103 {lines}
103 {lines}
104 </tbody>'
104 </tbody>'
105 comparisonline = '
105 comparisonline = '
106 <tr>
106 <tr>
107 <td class="source {type}"><a class="linenr" href="#{lineid}" id="{lineid}">{leftlinenumber}</a> {leftline|escape}</td>
107 <td class="source {type}"><a class="linenr" href="#{lineid}" id="{lineid}">{leftlinenumber}</a> {leftline|escape}</td>
108 <td class="source {type}"><a class="linenr" href="#{lineid}" id="{lineid}">{rightlinenumber}</a> {rightline|escape}</td>
108 <td class="source {type}"><a class="linenr" href="#{lineid}" id="{lineid}">{rightlinenumber}</a> {rightline|escape}</td>
109 </tr>'
109 </tr>'
110
110
111 changelogparent = '
111 changelogparent = '
112 <tr>
112 <tr>
113 <th class="parent">parent {rev}:</th>
113 <th class="parent">parent {rev}:</th>
114 <td class="parent">
114 <td class="parent">
115 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
115 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
116 </td>
116 </td>
117 </tr>'
117 </tr>'
118 changesetbranch = '<dt>branch</dt><dd>{name}</dd>'
118 changesetbranch = '<dt>branch</dt><dd>{name}</dd>'
119 changesetparent = '
119 changesetparent = '
120 <dt>parent {rev}</dt>
120 <dt>parent {rev}</dt>
121 <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>'
121 <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>'
122 filerevbranch = '<dt>branch</dt><dd>{name}</dd>'
122 filerevbranch = '<dt>branch</dt><dd>{name}</dd>'
123 filerevparent = '
123 filerevparent = '
124 <dt>parent {rev}</dt>
124 <dt>parent {rev}</dt>
125 <dd>
125 <dd>
126 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
126 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
127 {rename%filerename}{node|short}
127 {rename%filerename}{node|short}
128 </a>
128 </a>
129 </dd>'
129 </dd>'
130 filerename = '{file|escape}@'
130 filerename = '{file|escape}@'
131 filelogrename = '| <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>'
131 filelogrename = '| <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>'
132 fileannotateparent = '
132 fileannotateparent = '
133 <dt>parent {rev}</dt>
133 <dt>parent {rev}</dt>
134 <dd>
134 <dd>
135 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
135 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
136 {rename%filerename}{node|short}
136 {rename%filerename}{node|short}
137 </a>
137 </a>
138 </dd>'
138 </dd>'
139 changelogchild = '
139 changelogchild = '
140 <dt>child {rev}:</dt>
140 <dt>child {rev}:</dt>
141 <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>'
141 <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>'
142 changesetchild = '
142 changesetchild = '
143 <dt>child {rev}</dt>
143 <dt>child {rev}</dt>
144 <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>'
144 <dd><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>'
145 filerevchild = '
145 filerevchild = '
146 <dt>child {rev}</dt>
146 <dt>child {rev}</dt>
147 <dd>
147 <dd>
148 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
148 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
149 </dd>'
149 </dd>'
150 fileannotatechild = '
150 fileannotatechild = '
151 <dt>child {rev}</dt>
151 <dt>child {rev}</dt>
152 <dd>
152 <dd>
153 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
153 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
154 </dd>'
154 </dd>'
155 tags = tags.tmpl
155 tags = tags.tmpl
156 tagentry = '
156 tagentry = '
157 <tr class="parity{parity}">
157 <tr class="parity{parity}">
158 <td class="nowrap age">{date|rfc822date}</td>
158 <td class="nowrap age">{date|rfc822date}</td>
159 <td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{tag|escape}</a></td>
159 <td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{tag|escape}</a></td>
160 <td class="nowrap">
160 <td class="nowrap">
161 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
161 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
162 <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
162 <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
163 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
163 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
164 </td>
164 </td>
165 </tr>'
165 </tr>'
166 bookmarks = bookmarks.tmpl
166 bookmarks = bookmarks.tmpl
167 bookmarkentry = '
167 bookmarkentry = '
168 <tr class="parity{parity}">
168 <tr class="parity{parity}">
169 <td class="nowrap date">{date|rfc822date}</td>
169 <td class="nowrap date">{date|rfc822date}</td>
170 <td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{bookmark|escape}</a></td>
170 <td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{bookmark|escape}</a></td>
171 <td class="nowrap">
171 <td class="nowrap">
172 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
172 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
173 <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
173 <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
174 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
174 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
175 </td>
175 </td>
176 </tr>'
176 </tr>'
177 branches = branches.tmpl
177 branches = branches.tmpl
178 branchentry = '
178 branchentry = '
179 <tr class="parity{parity}">
179 <tr class="parity{parity}">
180 <td class="nowrap age">{date|rfc822date}</td>
180 <td class="nowrap age">{date|rfc822date}</td>
181 <td><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
181 <td><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
182 <td class="{status}">{branch|escape}</td>
182 <td class="{status}">{branch|escape}</td>
183 <td class="nowrap">
183 <td class="nowrap">
184 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
184 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
185 <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
185 <a href="{url}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
186 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
186 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
187 </td>
187 </td>
188 </tr>'
188 </tr>'
189 diffblock = '<pre>{lines}</pre>'
189 diffblock = '<pre>{lines}</pre>'
190 filediffparent = '
190 filediffparent = '
191 <dt>parent {rev}</dt>
191 <dt>parent {rev}</dt>
192 <dd><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
192 <dd><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
193 filecompparent = '
193 filecompparent = '
194 <dt>parent {rev}</dt>
194 <dt>parent {rev}</dt>
195 <dd><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
195 <dd><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
196 filelogparent = '
196 filelogparent = '
197 <tr>
197 <tr>
198 <td align="right">parent {rev}:&nbsp;</td>
198 <td align="right">parent {rev}:&nbsp;</td>
199 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
199 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
200 </tr>'
200 </tr>'
201 filediffchild = '
201 filediffchild = '
202 <dt>child {rev}</dt>
202 <dt>child {rev}</dt>
203 <dd><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
203 <dd><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
204 filecompchild = '
204 filecompchild = '
205 <dt>child {rev}</dt>
205 <dt>child {rev}</dt>
206 <dd><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
206 <dd><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
207 filelogchild = '
207 filelogchild = '
208 <tr>
208 <tr>
209 <td align="right">child {rev}:&nbsp;</td>
209 <td align="right">child {rev}:&nbsp;</td>
210 <td><a href="{url}file{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
210 <td><a href="{url}file{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
211 </tr>'
211 </tr>'
212 shortlog = shortlog.tmpl
212 shortlog = shortlog.tmpl
213 tagtag = '<span class="tagtag" title="{name}">{name}</span> '
213 tagtag = '<span class="tagtag" title="{name}">{name}</span> '
214 branchtag = '<span class="branchtag" title="{name}">{name}</span> '
214 branchtag = '<span class="branchtag" title="{name}">{name}</span> '
215 inbranchtag = '<span class="inbranchtag" title="{name}">{name}</span> '
215 inbranchtag = '<span class="inbranchtag" title="{name}">{name}</span> '
216 bookmarktag = '<span class="bookmarktag" title="{name}">{name}</span> '
216 bookmarktag = '<span class="bookmarktag" title="{name}">{name}</span> '
217 shortlogentry = '
217 shortlogentry = '
218 <tr class="parity{parity}">
218 <tr class="parity{parity}">
219 <td class="nowrap age">{date|rfc822date}</td>
219 <td class="nowrap age">{date|rfc822date}</td>
220 <td>{author|person}</td>
220 <td>{author|person}</td>
221 <td>
221 <td>
222 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
222 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
223 {desc|strip|firstline|escape|nonempty}
223 {desc|strip|firstline|escape|nonempty}
224 <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>
224 <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>
225 </a>
225 </a>
226 </td>
226 </td>
227 <td class="nowrap">
227 <td class="nowrap">
228 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
228 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
229 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
229 <a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>
230 </td>
230 </td>
231 </tr>'
231 </tr>'
232 filelogentry = '
232 filelogentry = '
233 <tr class="parity{parity}">
233 <tr class="parity{parity}">
234 <td class="nowrap age">{date|rfc822date}</td>
234 <td class="nowrap age">{date|rfc822date}</td>
235 <td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a></td>
235 <td><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a></td>
236 <td class="nowrap">
236 <td class="nowrap">
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>
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 {rename%filelogrename}
238 {rename%filelogrename}
239 </td>
239 </td>
240 </tr>'
240 </tr>'
241 archiveentry = '<li><a href="{url}archive/{node|short}{extension}">{type|escape}</a></li>'
241 archiveentry = '<li><a href="{url}archive/{node|short}{extension}">{type|escape}</a></li>'
242 indexentry = '
242 indexentry = '
243 <tr class="parity{parity}">
243 <tr class="parity{parity}">
244 <td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td>
244 <td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td>
245 <td>{description}</td>
245 <td>{description}</td>
246 <td>{contact|obfuscate}</td>
246 <td>{contact|obfuscate}</td>
247 <td class="age">{lastchange|rfc822date}</td>
247 <td class="age">{lastchange|rfc822date}</td>
248 <td class="indexlinks">{archives%indexarchiveentry}</td>
248 <td class="indexlinks">{archives%indexarchiveentry}</td>
249 <td>
249 <td>
250 {if(isdirectory, '',
250 {if(isdirectory, '',
251 '<div class="rss_logo">
251 '<div class="rss_logo">
252 <a href="{url}rss-log">RSS</a> <a href="{url}atom-log">Atom</a>
252 <a href="{url}rss-log">RSS</a> <a href="{url}atom-log">Atom</a>
253 </div>'
253 </div>'
254 )}
254 )}
255 </td>
255 </td>
256 </tr>\n'
256 </tr>\n'
257 indexarchiveentry = '<a href="{url}archive/{node|short}{extension}">{type|escape}</a> '
257 indexarchiveentry = '<a href="{url}archive/{node|short}{extension}">{type|escape}</a> '
258 index = index.tmpl
258 index = index.tmpl
259 urlparameter = '{separator}{name}={value|urlescape}'
259 urlparameter = '{separator}{name}={value|urlescape}'
260 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
260 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
261 graph = graph.tmpl
261 graph = graph.tmpl
262 breadcrumb = '&gt; <a href="{url}">{name}</a> '
@@ -1,37 +1,37 b''
1 {header}
1 {header}
2 <title>{repo|escape}: Mercurial repository not found</title>
2 <title>{repo|escape}: Mercurial repository not found</title>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 </head>
5 </head>
6
6
7 <body>
7 <body>
8 <div id="container">
8 <div id="container">
9 <div class="page-header">
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 <form action="{url}log">
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
13 {sessionvars%hiddenformentry}
14 <dl class="search">
14 <dl class="search">
15 <dt><label>Search: </label></dt>
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
17 </dl>
18 </form>
18 </form>
19
19
20 <ul class="page-nav">
20 <ul class="page-nav">
21 <li class="current">summary</li>
21 <li class="current">summary</li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}</li>
28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}</li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 </ul>
30 </ul>
31 </div>
31 </div>
32
32
33 <h2 class="no-link no-border">Not Found</h2>
33 <h2 class="no-link no-border">Not Found</h2>
34 <p class="normal">The specified repository "{repo|escape}" is unknown, sorry.</p>
34 <p class="normal">The specified repository "{repo|escape}" is unknown, sorry.</p>
35 <p class="normal">Please go back to the <a href="{url}">main repository list page</a>.</p>
35 <p class="normal">Please go back to the <a href="{url}">main repository list page</a>.</p>
36
36
37 {footer}
37 {footer}
@@ -1,36 +1,36 b''
1 {header}
1 {header}
2 <title>{repo|escape}: Search</title>
2 <title>{repo|escape}: Search</title>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 </head>
5 </head>
6
6
7 <body>
7 <body>
8 <div id="container">
8 <div id="container">
9 <div class="page-header">
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 <form action="{url}log">
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
13 {sessionvars%hiddenformentry}
14 <dl class="search">
14 <dl class="search">
15 <dt><label>Search: </label></dt>
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" value="{query|escape}" /></dd>
16 <dd><input type="text" name="rev" value="{query|escape}" /></dd>
17 </dl>
17 </dl>
18 </form>
18 </form>
19
19
20 <ul class="page-nav">
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}
28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a>{archives%archiveentry}
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 </ul>
30 </ul>
31 </div>
31 </div>
32
32
33 <h2 class="no-link no-border">searching for {query|escape}</h2>
33 <h2 class="no-link no-border">searching for {query|escape}</h2>
34 {entries}
34 {entries}
35
35
36 {footer}
36 {footer}
@@ -1,44 +1,44 b''
1 {header}
1 {header}
2 <title>{repo|escape}: shortlog</title>
2 <title>{repo|escape}: shortlog</title>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 </head>
5 </head>
6
6
7 <body>
7 <body>
8 <div id="container">
8 <div id="container">
9 <div class="page-header">
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 <form action="{url}log">
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
13 {sessionvars%hiddenformentry}
14 <dl class="search">
14 <dl class="search">
15 <dt><label>Search: </label></dt>
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
17 </dl>
18 </form>
18 </form>
19
19
20 <ul class="page-nav">
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li class="current">shortlog</li>
22 <li class="current">shortlog</li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
29 {archives%archiveentry}
29 {archives%archiveentry}
30 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
31 </ul>
31 </ul>
32 </div>
32 </div>
33
33
34 <h2 class="no-link no-border">shortlog</h2>
34 <h2 class="no-link no-border">shortlog</h2>
35
35
36 <table>
36 <table>
37 {entries%shortlogentry}
37 {entries%shortlogentry}
38 </table>
38 </table>
39
39
40 <div class="page-path">
40 <div class="page-path">
41 {changenav%navshort}
41 {changenav%navshort}
42 </div>
42 </div>
43
43
44 {footer}
44 {footer}
@@ -1,76 +1,76 b''
1 {header}
1 {header}
2 <title>{repo|escape}: Summary</title>
2 <title>{repo|escape}: Summary</title>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 </head>
5 </head>
6
6
7 <body>
7 <body>
8 <div id="container">
8 <div id="container">
9 <div class="page-header">
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 <form action="{url}log">
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
13 {sessionvars%hiddenformentry}
14 <dl class="search">
14 <dl class="search">
15 <dt><label>Search: </label></dt>
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
17 </dl>
18 </form>
18 </form>
19
19
20 <ul class="page-nav">
20 <ul class="page-nav">
21 <li class="current">summary</li>
21 <li class="current">summary</li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
23 <li><a href="{url}log{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
25 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 </ul>
30 </ul>
31 </div>
31 </div>
32
32
33 <h2 class="no-link no-border">Mercurial Repository Overview</h2>
33 <h2 class="no-link no-border">Mercurial Repository Overview</h2>
34 <dl class="overview">
34 <dl class="overview">
35 <dt>name</dt>
35 <dt>name</dt>
36 <dd>{repo|escape}</dd>
36 <dd>{repo|escape}</dd>
37 <dt>description</dt>
37 <dt>description</dt>
38 <dd>{desc}</dd>
38 <dd>{desc}</dd>
39 <dt>owner</dt>
39 <dt>owner</dt>
40 <dd>{owner|obfuscate}</dd>
40 <dd>{owner|obfuscate}</dd>
41 <dt>last change</dt>
41 <dt>last change</dt>
42 <dd>{lastchange|rfc822date}</dd>
42 <dd>{lastchange|rfc822date}</dd>
43 </dl>
43 </dl>
44
44
45 <h2><a href="{url}shortlog{sessionvars%urlparameter}">Changes</a></h2>
45 <h2><a href="{url}shortlog{sessionvars%urlparameter}">Changes</a></h2>
46 <table>
46 <table>
47 {shortlog}
47 {shortlog}
48 <tr class="light">
48 <tr class="light">
49 <td colspan="4"><a class="list" href="{url}shortlog{sessionvars%urlparameter}">...</a></td>
49 <td colspan="4"><a class="list" href="{url}shortlog{sessionvars%urlparameter}">...</a></td>
50 </tr>
50 </tr>
51 </table>
51 </table>
52
52
53 <h2><a href="{url}tags{sessionvars%urlparameter}">Tags</a></h2>
53 <h2><a href="{url}tags{sessionvars%urlparameter}">Tags</a></h2>
54 <table>
54 <table>
55 {tags}
55 {tags}
56 <tr class="light">
56 <tr class="light">
57 <td colspan="3"><a class="list" href="{url}tags{sessionvars%urlparameter}">...</a></td>
57 <td colspan="3"><a class="list" href="{url}tags{sessionvars%urlparameter}">...</a></td>
58 </tr>
58 </tr>
59 </table>
59 </table>
60
60
61 <h2><a href="{url}bookmarks{sessionvars%urlparameter}">Bookmarks</a></h2>
61 <h2><a href="{url}bookmarks{sessionvars%urlparameter}">Bookmarks</a></h2>
62 <table>
62 <table>
63 {bookmarks%bookmarkentry}
63 {bookmarks%bookmarkentry}
64 <tr class="light">
64 <tr class="light">
65 <td colspan="3"><a class="list" href="{url}bookmarks{sessionvars%urlparameter}">...</a></td>
65 <td colspan="3"><a class="list" href="{url}bookmarks{sessionvars%urlparameter}">...</a></td>
66 </tr>
66 </tr>
67 </table>
67 </table>
68
68
69 <h2 class="no-link">Branches</h2>
69 <h2 class="no-link">Branches</h2>
70 <table>
70 <table>
71 {branches%branchentry}
71 {branches%branchentry}
72 <tr class="light">
72 <tr class="light">
73 <td colspan="4"><a class="list" href="#">...</a></td>
73 <td colspan="4"><a class="list" href="#">...</a></td>
74 </tr>
74 </tr>
75 </table>
75 </table>
76 {footer}
76 {footer}
@@ -1,38 +1,38 b''
1 {header}
1 {header}
2 <title>{repo|escape}: Tags</title>
2 <title>{repo|escape}: Tags</title>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
3 <link rel="alternate" type="application/atom+xml" href="{url}atom-log" title="Atom feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
4 <link rel="alternate" type="application/rss+xml" href="{url}rss-log" title="RSS feed for {repo|escape}"/>
5 </head>
5 </head>
6
6
7 <body>
7 <body>
8 <div id="container">
8 <div id="container">
9 <div class="page-header">
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 <form action="{url}log">
12 <form action="{url}log">
13 {sessionvars%hiddenformentry}
13 {sessionvars%hiddenformentry}
14 <dl class="search">
14 <dl class="search">
15 <dt><label>Search: </label></dt>
15 <dt><label>Search: </label></dt>
16 <dd><input type="text" name="rev" /></dd>
16 <dd><input type="text" name="rev" /></dd>
17 </dl>
17 </dl>
18 </form>
18 </form>
19
19
20 <ul class="page-nav">
20 <ul class="page-nav">
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
21 <li><a href="{url}summary{sessionvars%urlparameter}">summary</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
22 <li><a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a></li>
23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
23 <li><a href="{url}changelog{sessionvars%urlparameter}">changelog</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
24 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
25 <li class="current">tags</li>
25 <li class="current">tags</li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
26 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
27 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
28 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">files</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 </ul>
30 </ul>
31 </div>
31 </div>
32
32
33 <h2 class="no-link no-border">tags</h2>
33 <h2 class="no-link no-border">tags</h2>
34 <table cellspacing="0">
34 <table cellspacing="0">
35 {entries%tagentry}
35 {entries%tagentry}
36 </table>
36 </table>
37
37
38 {footer}
38 {footer}
@@ -1,55 +1,55 b''
1 {header}
1 {header}
2 <title>{repo|escape}: bookmarks</title>
2 <title>{repo|escape}: bookmarks</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-bookmarks" title="Atom feed for {repo|escape}: bookmarks" />
4 href="{url}atom-bookmarks" title="Atom feed for {repo|escape}: bookmarks" />
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-bookmarks" title="RSS feed for {repo|escape}: bookmarks" />
6 href="{url}rss-bookmarks" title="RSS feed for {repo|escape}: bookmarks" />
7 </head>
7 </head>
8 <body>
8 <body>
9
9
10 <div class="container">
10 <div class="container">
11 <div class="menu">
11 <div class="menu">
12 <div class="logo">
12 <div class="logo">
13 <a href="{logourl}">
13 <a href="{logourl}">
14 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
14 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
15 </div>
15 </div>
16 <ul>
16 <ul>
17 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
17 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
18 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
18 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
19 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
19 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
20 <li class="active">bookmarks</li>
20 <li class="active">bookmarks</li>
21 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
21 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
22 </ul>
22 </ul>
23 <ul>
23 <ul>
24 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
24 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
25 </ul>
25 </ul>
26 <p>
26 <p>
27 <div class="atom-logo">
27 <div class="atom-logo">
28 <a href="{url}atom-bookmarks" title="subscribe to atom feed">
28 <a href="{url}atom-bookmarks" title="subscribe to atom feed">
29 <img class="atom-logo" src="{staticurl}feed-icon-14x14.png" alt="atom feed">
29 <img class="atom-logo" src="{staticurl}feed-icon-14x14.png" alt="atom feed">
30 </a>
30 </a>
31 </div>
31 </div>
32 </div>
32 </div>
33
33
34 <div class="main">
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 <h3>bookmarks</h3>
36 <h3>bookmarks</h3>
37
37
38 <form class="search" action="{url}log">
38 <form class="search" action="{url}log">
39 {sessionvars%hiddenformentry}
39 {sessionvars%hiddenformentry}
40 <p><input name="rev" id="search1" type="text" size="30" /></p>
40 <p><input name="rev" id="search1" type="text" size="30" /></p>
41 <div id="hint">find changesets by author, revision,
41 <div id="hint">find changesets by author, revision,
42 files, or words in the commit message</div>
42 files, or words in the commit message</div>
43 </form>
43 </form>
44
44
45 <table class="bigtable">
45 <table class="bigtable">
46 <tr>
46 <tr>
47 <th>bookmark</th>
47 <th>bookmark</th>
48 <th>node</th>
48 <th>node</th>
49 </tr>
49 </tr>
50 {entries%bookmarkentry}
50 {entries%bookmarkentry}
51 </table>
51 </table>
52 </div>
52 </div>
53 </div>
53 </div>
54
54
55 {footer}
55 {footer}
@@ -1,66 +1,66 b''
1 {header}
1 {header}
2 <title>{repo|escape}: branches</title>
2 <title>{repo|escape}: branches</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-branches" title="Atom feed for {repo|escape}: branches" />
4 href="{url}atom-branches" title="Atom feed for {repo|escape}: branches" />
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-branches" title="RSS feed for {repo|escape}: branches" />
6 href="{url}rss-branches" title="RSS feed for {repo|escape}: branches" />
7 </head>
7 </head>
8 <body>
8 <body>
9
9
10 <div class="container">
10 <div class="container">
11 <div class="menu">
11 <div class="menu">
12 <div class="logo">
12 <div class="logo">
13 <a href="{logourl}">
13 <a href="{logourl}">
14 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
14 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
15 </div>
15 </div>
16 <ul>
16 <ul>
17 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
17 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
18 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
18 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
19 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
19 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
20 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
20 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
21 <li class="active">branches</li>
21 <li class="active">branches</li>
22 </ul>
22 </ul>
23 <ul>
23 <ul>
24 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
24 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
25 </ul>
25 </ul>
26 <p>
26 <p>
27 <div class="atom-logo">
27 <div class="atom-logo">
28 <a href="{url}atom-branches" title="subscribe to atom feed">
28 <a href="{url}atom-branches" title="subscribe to atom feed">
29 <img class="atom-logo" src="{staticurl}feed-icon-14x14.png" alt="atom feed">
29 <img class="atom-logo" src="{staticurl}feed-icon-14x14.png" alt="atom feed">
30 </a>
30 </a>
31 </div>
31 </div>
32 </div>
32 </div>
33
33
34 <div class="main">
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 <h3>branches</h3>
36 <h3>branches</h3>
37
37
38 <form class="search" action="{url}log">
38 <form class="search" action="{url}log">
39 {sessionvars%hiddenformentry}
39 {sessionvars%hiddenformentry}
40 <p><input name="rev" id="search1" type="text" size="30" /></p>
40 <p><input name="rev" id="search1" type="text" size="30" /></p>
41 <div id="hint">find changesets by author, revision,
41 <div id="hint">find changesets by author, revision,
42 files, or words in the commit message</div>
42 files, or words in the commit message</div>
43 </form>
43 </form>
44
44
45 <table class="bigtable">
45 <table class="bigtable">
46 <tr>
46 <tr>
47 <th>branch</th>
47 <th>branch</th>
48 <th>node</th>
48 <th>node</th>
49 </tr>
49 </tr>
50 {entries %
50 {entries %
51 ' <tr class="tagEntry parity{parity}">
51 ' <tr class="tagEntry parity{parity}">
52 <td>
52 <td>
53 <a href="{url}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">
53 <a href="{url}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">
54 {branch|escape}
54 {branch|escape}
55 </a>
55 </a>
56 </td>
56 </td>
57 <td class="node">
57 <td class="node">
58 {node|short}
58 {node|short}
59 </td>
59 </td>
60 </tr>'
60 </tr>'
61 }
61 }
62 </table>
62 </table>
63 </div>
63 </div>
64 </div>
64 </div>
65
65
66 {footer}
66 {footer}
@@ -1,95 +1,95 b''
1 {header}
1 {header}
2 <title>{repo|escape}: {node|short}</title>
2 <title>{repo|escape}: {node|short}</title>
3 </head>
3 </head>
4 <body>
4 <body>
5 <div class="container">
5 <div class="container">
6 <div class="menu">
6 <div class="menu">
7 <div class="logo">
7 <div class="logo">
8 <a href="{logourl}">
8 <a href="{logourl}">
9 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
9 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
10 </div>
10 </div>
11 <ul>
11 <ul>
12 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
12 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
13 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
13 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
14 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
14 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
15 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
15 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
16 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
16 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
17 </ul>
17 </ul>
18 <ul>
18 <ul>
19 <li class="active">changeset</li>
19 <li class="active">changeset</li>
20 <li><a href="{url}raw-rev/{node|short}{sessionvars%urlparameter}">raw</a></li>
20 <li><a href="{url}raw-rev/{node|short}{sessionvars%urlparameter}">raw</a></li>
21 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">browse</a></li>
21 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">browse</a></li>
22 </ul>
22 </ul>
23 <ul>
23 <ul>
24 {archives%archiveentry}
24 {archives%archiveentry}
25 </ul>
25 </ul>
26 <ul>
26 <ul>
27 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
27 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
28 </ul>
28 </ul>
29 </div>
29 </div>
30
30
31 <div class="main">
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 <h3>changeset {rev}:{node|short} {changesetbranch%changelogbranchname} {changesettag} {changesetbookmark}</h3>
34 <h3>changeset {rev}:{node|short} {changesetbranch%changelogbranchname} {changesettag} {changesetbookmark}</h3>
35
35
36 <form class="search" action="{url}log">
36 <form class="search" action="{url}log">
37 {sessionvars%hiddenformentry}
37 {sessionvars%hiddenformentry}
38 <p><input name="rev" id="search1" type="text" size="30" /></p>
38 <p><input name="rev" id="search1" type="text" size="30" /></p>
39 <div id="hint">find changesets by author, revision,
39 <div id="hint">find changesets by author, revision,
40 files, or words in the commit message</div>
40 files, or words in the commit message</div>
41 </form>
41 </form>
42
42
43 <div class="description">{desc|strip|escape|nonempty}</div>
43 <div class="description">{desc|strip|escape|nonempty}</div>
44
44
45 <table id="changesetEntry">
45 <table id="changesetEntry">
46 <tr>
46 <tr>
47 <th class="author">author</th>
47 <th class="author">author</th>
48 <td class="author">{author|obfuscate}</td>
48 <td class="author">{author|obfuscate}</td>
49 </tr>
49 </tr>
50 <tr>
50 <tr>
51 <th class="date">date</th>
51 <th class="date">date</th>
52 <td class="date age">{date|rfc822date}</td></tr>
52 <td class="date age">{date|rfc822date}</td></tr>
53 <tr>
53 <tr>
54 <th class="author">parents</th>
54 <th class="author">parents</th>
55 <td class="author">{parent%changesetparent}</td>
55 <td class="author">{parent%changesetparent}</td>
56 </tr>
56 </tr>
57 <tr>
57 <tr>
58 <th class="author">children</th>
58 <th class="author">children</th>
59 <td class="author">{child%changesetchild}</td>
59 <td class="author">{child%changesetchild}</td>
60 </tr>
60 </tr>
61 <tr>
61 <tr>
62 <th class="files">files</th>
62 <th class="files">files</th>
63 <td class="files">{files}</td>
63 <td class="files">{files}</td>
64 </tr>
64 </tr>
65 <tr>
65 <tr>
66 <th class="diffstat">diffstat</th>
66 <th class="diffstat">diffstat</th>
67 <td class="diffstat">
67 <td class="diffstat">
68 {diffsummary}
68 {diffsummary}
69 <a id="diffstatexpand" href="javascript:showDiffstat()"/>[<tt>+</tt>]</a>
69 <a id="diffstatexpand" href="javascript:showDiffstat()"/>[<tt>+</tt>]</a>
70 <div id="diffstatdetails" style="display:none;">
70 <div id="diffstatdetails" style="display:none;">
71 <a href="javascript:hideDiffstat()"/>[<tt>-</tt>]</a>
71 <a href="javascript:hideDiffstat()"/>[<tt>-</tt>]</a>
72 <p>
72 <p>
73 <table>{diffstat}</table>
73 <table>{diffstat}</table>
74 </div>
74 </div>
75 </td>
75 </td>
76 </tr>
76 </tr>
77 <tr>
77 <tr>
78 <th class="author">change baseline</th>
78 <th class="author">change baseline</th>
79 <td class="author">{parent%changesetbaseline}</td>
79 <td class="author">{parent%changesetbaseline}</td>
80 </tr>
80 </tr>
81 <tr>
81 <tr>
82 <th class="author">current baseline</th>
82 <th class="author">current baseline</th>
83 <td class="author"><a href="{url}rev/{currentbaseline|short}{sessionvars%urlparameter}">{currentbaseline|short}</a></td>
83 <td class="author"><a href="{url}rev/{currentbaseline|short}{sessionvars%urlparameter}">{currentbaseline|short}</a></td>
84 </tr>
84 </tr>
85 </table>
85 </table>
86
86
87 <div class="overflow">
87 <div class="overflow">
88 <div class="sourcefirst"> line diff</div>
88 <div class="sourcefirst"> line diff</div>
89
89
90 {diff}
90 {diff}
91 </div>
91 </div>
92
92
93 </div>
93 </div>
94 </div>
94 </div>
95 {footer}
95 {footer}
@@ -1,47 +1,47 b''
1 {header}
1 {header}
2 <title>{repo|escape}: error</title>
2 <title>{repo|escape}: error</title>
3 </head>
3 </head>
4 <body>
4 <body>
5
5
6 <div class="container">
6 <div class="container">
7 <div class="menu">
7 <div class="menu">
8 <div class="logo">
8 <div class="logo">
9 <a href="{logourl}">
9 <a href="{logourl}">
10 <img src="{staticurl}{logoimg}" width=75 height=90 border=0 alt="mercurial" /></a>
10 <img src="{staticurl}{logoimg}" width=75 height=90 border=0 alt="mercurial" /></a>
11 </div>
11 </div>
12 <ul>
12 <ul>
13 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
13 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
14 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
14 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
16 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
16 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
17 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
17 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
18 </ul>
18 </ul>
19 <ul>
19 <ul>
20 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
20 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
21 </ul>
21 </ul>
22 </div>
22 </div>
23
23
24 <div class="main">
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 <h3>error</h3>
27 <h3>error</h3>
28
28
29 <form class="search" action="{url}log">
29 <form class="search" action="{url}log">
30 {sessionvars%hiddenformentry}
30 {sessionvars%hiddenformentry}
31 <p><input name="rev" id="search1" type="text" size="30"></p>
31 <p><input name="rev" id="search1" type="text" size="30"></p>
32 <div id="hint">find changesets by author, revision,
32 <div id="hint">find changesets by author, revision,
33 files, or words in the commit message</div>
33 files, or words in the commit message</div>
34 </form>
34 </form>
35
35
36 <div class="description">
36 <div class="description">
37 <p>
37 <p>
38 An error occurred while processing your request:
38 An error occurred while processing your request:
39 </p>
39 </p>
40 <p>
40 <p>
41 {error|escape}
41 {error|escape}
42 </p>
42 </p>
43 </div>
43 </div>
44 </div>
44 </div>
45 </div>
45 </div>
46
46
47 {footer}
47 {footer}
@@ -1,83 +1,83 b''
1 {header}
1 {header}
2 <title>{repo|escape}: {file|escape} annotate</title>
2 <title>{repo|escape}: {file|escape} annotate</title>
3 </head>
3 </head>
4 <body>
4 <body>
5
5
6 <div class="container">
6 <div class="container">
7 <div class="menu">
7 <div class="menu">
8 <div class="logo">
8 <div class="logo">
9 <a href="{logourl}">
9 <a href="{logourl}">
10 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
10 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
11 </div>
11 </div>
12 <ul>
12 <ul>
13 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
13 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
14 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
14 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
16 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
16 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
17 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
17 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
18 </ul>
18 </ul>
19
19
20 <ul>
20 <ul>
21 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
21 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
22 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
22 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
23 </ul>
23 </ul>
24 <ul>
24 <ul>
25 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
25 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
26 <li><a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li>
26 <li><a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li>
27 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
27 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
28 <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
28 <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
29 <li class="active">annotate</li>
29 <li class="active">annotate</li>
30 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li>
30 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li>
31 <li><a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a></li>
31 <li><a href="{url}raw-annotate/{node|short}/{file|urlescape}">raw</a></li>
32 </ul>
32 </ul>
33 <ul>
33 <ul>
34 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
34 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
35 </ul>
35 </ul>
36 </div>
36 </div>
37
37
38 <div class="main">
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 <h3>annotate {file|escape} @ {rev}:{node|short}</h3>
40 <h3>annotate {file|escape} @ {rev}:{node|short}</h3>
41
41
42 <form class="search" action="{url}log">
42 <form class="search" action="{url}log">
43 {sessionvars%hiddenformentry}
43 {sessionvars%hiddenformentry}
44 <p><input name="rev" id="search1" type="text" size="30" /></p>
44 <p><input name="rev" id="search1" type="text" size="30" /></p>
45 <div id="hint">find changesets by author, revision,
45 <div id="hint">find changesets by author, revision,
46 files, or words in the commit message</div>
46 files, or words in the commit message</div>
47 </form>
47 </form>
48
48
49 <div class="description">{desc|strip|escape|nonempty}</div>
49 <div class="description">{desc|strip|escape|nonempty}</div>
50
50
51 <table id="changesetEntry">
51 <table id="changesetEntry">
52 <tr>
52 <tr>
53 <th class="author">author</th>
53 <th class="author">author</th>
54 <td class="author">{author|obfuscate}</td>
54 <td class="author">{author|obfuscate}</td>
55 </tr>
55 </tr>
56 <tr>
56 <tr>
57 <th class="date">date</th>
57 <th class="date">date</th>
58 <td class="date age">{date|rfc822date}</td>
58 <td class="date age">{date|rfc822date}</td>
59 </tr>
59 </tr>
60 <tr>
60 <tr>
61 <th class="author">parents</th>
61 <th class="author">parents</th>
62 <td class="author">{parent%filerevparent}</td>
62 <td class="author">{parent%filerevparent}</td>
63 </tr>
63 </tr>
64 <tr>
64 <tr>
65 <th class="author">children</th>
65 <th class="author">children</th>
66 <td class="author">{child%filerevchild}</td>
66 <td class="author">{child%filerevchild}</td>
67 </tr>
67 </tr>
68 {changesettag}
68 {changesettag}
69 </table>
69 </table>
70
70
71 <div class="overflow">
71 <div class="overflow">
72 <table class="bigtable">
72 <table class="bigtable">
73 <tr>
73 <tr>
74 <th class="annotate">rev</th>
74 <th class="annotate">rev</th>
75 <th class="line">&nbsp;&nbsp;line source</th>
75 <th class="line">&nbsp;&nbsp;line source</th>
76 </tr>
76 </tr>
77 {annotate%annotateline}
77 {annotate%annotateline}
78 </table>
78 </table>
79 </div>
79 </div>
80 </div>
80 </div>
81 </div>
81 </div>
82
82
83 {footer}
83 {footer}
@@ -1,93 +1,93 b''
1 {header}
1 {header}
2 <title>{repo|escape}: {file|escape} comparison</title>
2 <title>{repo|escape}: {file|escape} comparison</title>
3 </head>
3 </head>
4 <body>
4 <body>
5
5
6 <div class="container">
6 <div class="container">
7 <div class="menu">
7 <div class="menu">
8 <div class="logo">
8 <div class="logo">
9 <a href="{logourl}">
9 <a href="{logourl}">
10 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
10 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
11 </div>
11 </div>
12 <ul>
12 <ul>
13 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
13 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
14 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
14 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
16 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
16 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
17 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
17 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
18 </ul>
18 </ul>
19 <ul>
19 <ul>
20 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
20 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
21 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
21 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
22 </ul>
22 </ul>
23 <ul>
23 <ul>
24 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
24 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
25 <li><a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li>
25 <li><a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li>
26 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
26 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
27 <li class="active">comparison</li>
27 <li class="active">comparison</li>
28 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
28 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
29 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li>
29 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li>
30 <li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li>
30 <li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li>
31 </ul>
31 </ul>
32 <ul>
32 <ul>
33 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
33 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
34 </ul>
34 </ul>
35 </div>
35 </div>
36
36
37 <div class="main">
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 <h3>comparison {file|escape} @ {rev}:{node|short}</h3>
39 <h3>comparison {file|escape} @ {rev}:{node|short}</h3>
40
40
41 <form class="search" action="{url}log">
41 <form class="search" action="{url}log">
42 <p>{sessionvars%hiddenformentry}</p>
42 <p>{sessionvars%hiddenformentry}</p>
43 <p><input name="rev" id="search1" type="text" size="30" /></p>
43 <p><input name="rev" id="search1" type="text" size="30" /></p>
44 <div id="hint">find changesets by author, revision,
44 <div id="hint">find changesets by author, revision,
45 files, or words in the commit message</div>
45 files, or words in the commit message</div>
46 </form>
46 </form>
47
47
48 <div class="description">{desc|strip|escape|nonempty}</div>
48 <div class="description">{desc|strip|escape|nonempty}</div>
49
49
50 <table id="changesetEntry">
50 <table id="changesetEntry">
51 <tr>
51 <tr>
52 <th>author</th>
52 <th>author</th>
53 <td>{author|obfuscate}</td>
53 <td>{author|obfuscate}</td>
54 </tr>
54 </tr>
55 <tr>
55 <tr>
56 <th>date</th>
56 <th>date</th>
57 <td class="date age">{date|rfc822date}</td>
57 <td class="date age">{date|rfc822date}</td>
58 </tr>
58 </tr>
59 <tr>
59 <tr>
60 <th>parents</th>
60 <th>parents</th>
61 <td>{parent%filerevparent}</td>
61 <td>{parent%filerevparent}</td>
62 </tr>
62 </tr>
63 <tr>
63 <tr>
64 <th>children</th>
64 <th>children</th>
65 <td>{child%filerevchild}</td>
65 <td>{child%filerevchild}</td>
66 </tr>
66 </tr>
67 {changesettag}
67 {changesettag}
68 </table>
68 </table>
69
69
70 <div class="overflow">
70 <div class="overflow">
71 <div class="sourcefirst"> comparison</div>
71 <div class="sourcefirst"> comparison</div>
72 <div class="legend">
72 <div class="legend">
73 <span class="legendinfo equal">equal</span>
73 <span class="legendinfo equal">equal</span>
74 <span class="legendinfo delete">deleted</span>
74 <span class="legendinfo delete">deleted</span>
75 <span class="legendinfo insert">inserted</span>
75 <span class="legendinfo insert">inserted</span>
76 <span class="legendinfo replace">replaced</span>
76 <span class="legendinfo replace">replaced</span>
77 </div>
77 </div>
78
78
79 <table class="bigtable">
79 <table class="bigtable">
80 <thead class="header">
80 <thead class="header">
81 <tr>
81 <tr>
82 <th>{leftrev}:{leftnode|short}</th>
82 <th>{leftrev}:{leftnode|short}</th>
83 <th>{rightrev}:{rightnode|short}</th>
83 <th>{rightrev}:{rightnode|short}</th>
84 </tr>
84 </tr>
85 </thead>
85 </thead>
86 {comparison}
86 {comparison}
87 </table>
87 </table>
88
88
89 </div>
89 </div>
90 </div>
90 </div>
91 </div>
91 </div>
92
92
93 {footer}
93 {footer}
@@ -1,78 +1,78 b''
1 {header}
1 {header}
2 <title>{repo|escape}: {file|escape} diff</title>
2 <title>{repo|escape}: {file|escape} diff</title>
3 </head>
3 </head>
4 <body>
4 <body>
5
5
6 <div class="container">
6 <div class="container">
7 <div class="menu">
7 <div class="menu">
8 <div class="logo">
8 <div class="logo">
9 <a href="{logourl}">
9 <a href="{logourl}">
10 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
10 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
11 </div>
11 </div>
12 <ul>
12 <ul>
13 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
13 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
14 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
14 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
16 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
16 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
17 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
17 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
18 </ul>
18 </ul>
19 <ul>
19 <ul>
20 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
20 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
21 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
21 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
22 </ul>
22 </ul>
23 <ul>
23 <ul>
24 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
24 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
25 <li><a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li>
25 <li><a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li>
26 <li class="active">diff</li>
26 <li class="active">diff</li>
27 <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
27 <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
28 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
28 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
29 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li>
29 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li>
30 <li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li>
30 <li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li>
31 </ul>
31 </ul>
32 <ul>
32 <ul>
33 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
33 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
34 </ul>
34 </ul>
35 </div>
35 </div>
36
36
37 <div class="main">
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 <h3>diff {file|escape} @ {rev}:{node|short}</h3>
39 <h3>diff {file|escape} @ {rev}:{node|short}</h3>
40
40
41 <form class="search" action="{url}log">
41 <form class="search" action="{url}log">
42 <p>{sessionvars%hiddenformentry}</p>
42 <p>{sessionvars%hiddenformentry}</p>
43 <p><input name="rev" id="search1" type="text" size="30" /></p>
43 <p><input name="rev" id="search1" type="text" size="30" /></p>
44 <div id="hint">find changesets by author, revision,
44 <div id="hint">find changesets by author, revision,
45 files, or words in the commit message</div>
45 files, or words in the commit message</div>
46 </form>
46 </form>
47
47
48 <div class="description">{desc|strip|escape|nonempty}</div>
48 <div class="description">{desc|strip|escape|nonempty}</div>
49
49
50 <table id="changesetEntry">
50 <table id="changesetEntry">
51 <tr>
51 <tr>
52 <th>author</th>
52 <th>author</th>
53 <td>{author|obfuscate}</td>
53 <td>{author|obfuscate}</td>
54 </tr>
54 </tr>
55 <tr>
55 <tr>
56 <th>date</th>
56 <th>date</th>
57 <td class="date age">{date|rfc822date}</td>
57 <td class="date age">{date|rfc822date}</td>
58 </tr>
58 </tr>
59 <tr>
59 <tr>
60 <th>parents</th>
60 <th>parents</th>
61 <td>{parent%filerevparent}</td>
61 <td>{parent%filerevparent}</td>
62 </tr>
62 </tr>
63 <tr>
63 <tr>
64 <th>children</th>
64 <th>children</th>
65 <td>{child%filerevchild}</td>
65 <td>{child%filerevchild}</td>
66 </tr>
66 </tr>
67 {changesettag}
67 {changesettag}
68 </table>
68 </table>
69
69
70 <div class="overflow">
70 <div class="overflow">
71 <div class="sourcefirst"> line diff</div>
71 <div class="sourcefirst"> line diff</div>
72
72
73 {diff}
73 {diff}
74 </div>
74 </div>
75 </div>
75 </div>
76 </div>
76 </div>
77
77
78 {footer}
78 {footer}
@@ -1,79 +1,79 b''
1 {header}
1 {header}
2 <title>{repo|escape}: {file|escape} history</title>
2 <title>{repo|escape}: {file|escape} history</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log/tip/{file|urlescape}" title="Atom feed for {repo|escape}:{file}" />
4 href="{url}atom-log/tip/{file|urlescape}" title="Atom feed for {repo|escape}:{file}" />
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log/tip/{file|urlescape}" title="RSS feed for {repo|escape}:{file}" />
6 href="{url}rss-log/tip/{file|urlescape}" title="RSS feed for {repo|escape}:{file}" />
7 </head>
7 </head>
8 <body>
8 <body>
9
9
10 <div class="container">
10 <div class="container">
11 <div class="menu">
11 <div class="menu">
12 <div class="logo">
12 <div class="logo">
13 <a href="{logourl}">
13 <a href="{logourl}">
14 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
14 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
15 </div>
15 </div>
16 <ul>
16 <ul>
17 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
17 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
18 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
18 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
19 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
19 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
20 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
20 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
21 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
21 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
22 </ul>
22 </ul>
23 <ul>
23 <ul>
24 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
24 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
25 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
25 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
26 </ul>
26 </ul>
27 <ul>
27 <ul>
28 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
28 <li><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
29 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
29 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
30 <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
30 <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
31 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
31 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
32 <li class="active">file log</li>
32 <li class="active">file log</li>
33 <li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li>
33 <li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li>
34 </ul>
34 </ul>
35 <ul>
35 <ul>
36 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
36 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
37 </ul>
37 </ul>
38 <p>
38 <p>
39 <div class="atom-logo">
39 <div class="atom-logo">
40 <a href="{url}atom-log/{node|short}/{file|urlescape}" title="subscribe to atom feed">
40 <a href="{url}atom-log/{node|short}/{file|urlescape}" title="subscribe to atom feed">
41 <img class="atom-logo" src="{staticurl}feed-icon-14x14.png" alt="atom feed"></a>
41 <img class="atom-logo" src="{staticurl}feed-icon-14x14.png" alt="atom feed"></a>
42 </div>
42 </div>
43 </div>
43 </div>
44
44
45 <div class="main">
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 <h3>log {file|escape}</h3>
47 <h3>log {file|escape}</h3>
48
48
49 <form class="search" action="{url}log">
49 <form class="search" action="{url}log">
50 {sessionvars%hiddenformentry}
50 {sessionvars%hiddenformentry}
51 <p><input name="rev" id="search1" type="text" size="30" /></p>
51 <p><input name="rev" id="search1" type="text" size="30" /></p>
52 <div id="hint">find changesets by author, revision,
52 <div id="hint">find changesets by author, revision,
53 files, or words in the commit message</div>
53 files, or words in the commit message</div>
54 </form>
54 </form>
55
55
56 <div class="navigate">
56 <div class="navigate">
57 <a href="{url}log/{node|short}/{file|urlescape}{lessvars%urlparameter}">less</a>
57 <a href="{url}log/{node|short}/{file|urlescape}{lessvars%urlparameter}">less</a>
58 <a href="{url}log/{node|short}/{file|urlescape}{morevars%urlparameter}">more</a>
58 <a href="{url}log/{node|short}/{file|urlescape}{morevars%urlparameter}">more</a>
59 | {nav%filenav}</div>
59 | {nav%filenav}</div>
60
60
61 <table class="bigtable">
61 <table class="bigtable">
62 <tr>
62 <tr>
63 <th class="age">age</th>
63 <th class="age">age</th>
64 <th class="author">author</th>
64 <th class="author">author</th>
65 <th class="description">description</th>
65 <th class="description">description</th>
66 </tr>
66 </tr>
67 {entries%filelogentry}
67 {entries%filelogentry}
68 </table>
68 </table>
69
69
70 <div class="navigate">
70 <div class="navigate">
71 <a href="{url}log/{node|short}/{file|urlescape}{lessvars%urlparameter}">less</a>
71 <a href="{url}log/{node|short}/{file|urlescape}{lessvars%urlparameter}">less</a>
72 <a href="{url}log/{node|short}/{file|urlescape}{morevars%urlparameter}">more</a>
72 <a href="{url}log/{node|short}/{file|urlescape}{morevars%urlparameter}">more</a>
73 | {nav%filenav}
73 | {nav%filenav}
74 </div>
74 </div>
75
75
76 </div>
76 </div>
77 </div>
77 </div>
78
78
79 {footer}
79 {footer}
@@ -1,77 +1,77 b''
1 {header}
1 {header}
2 <title>{repo|escape}: {node|short} {file|escape}</title>
2 <title>{repo|escape}: {node|short} {file|escape}</title>
3 </head>
3 </head>
4 <body>
4 <body>
5
5
6 <div class="container">
6 <div class="container">
7 <div class="menu">
7 <div class="menu">
8 <div class="logo">
8 <div class="logo">
9 <a href="{logourl}">
9 <a href="{logourl}">
10 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
10 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
11 </div>
11 </div>
12 <ul>
12 <ul>
13 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
13 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
14 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
14 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
16 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
16 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
17 </ul>
17 </ul>
18 <ul>
18 <ul>
19 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
19 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
20 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
20 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
21 </ul>
21 </ul>
22 <ul>
22 <ul>
23 <li class="active">file</li>
23 <li class="active">file</li>
24 <li><a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li>
24 <li><a href="{url}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li>
25 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
25 <li><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
26 <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
26 <li><a href="{url}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
27 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
27 <li><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
28 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li>
28 <li><a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li>
29 <li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li>
29 <li><a href="{url}raw-file/{node|short}/{file|urlescape}">raw</a></li>
30 </ul>
30 </ul>
31 <ul>
31 <ul>
32 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
32 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
33 </ul>
33 </ul>
34 </div>
34 </div>
35
35
36 <div class="main">
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 <h3>view {file|escape} @ {rev}:{node|short}</h3>
38 <h3>view {file|escape} @ {rev}:{node|short}</h3>
39
39
40 <form class="search" action="{url}log">
40 <form class="search" action="{url}log">
41 {sessionvars%hiddenformentry}
41 {sessionvars%hiddenformentry}
42 <p><input name="rev" id="search1" type="text" size="30" /></p>
42 <p><input name="rev" id="search1" type="text" size="30" /></p>
43 <div id="hint">find changesets by author, revision,
43 <div id="hint">find changesets by author, revision,
44 files, or words in the commit message</div>
44 files, or words in the commit message</div>
45 </form>
45 </form>
46
46
47 <div class="description">{desc|strip|escape|nonempty}</div>
47 <div class="description">{desc|strip|escape|nonempty}</div>
48
48
49 <table id="changesetEntry">
49 <table id="changesetEntry">
50 <tr>
50 <tr>
51 <th class="author">author</th>
51 <th class="author">author</th>
52 <td class="author">{author|obfuscate}</td>
52 <td class="author">{author|obfuscate}</td>
53 </tr>
53 </tr>
54 <tr>
54 <tr>
55 <th class="date">date</th>
55 <th class="date">date</th>
56 <td class="date age">{date|rfc822date}</td>
56 <td class="date age">{date|rfc822date}</td>
57 </tr>
57 </tr>
58 <tr>
58 <tr>
59 <th class="author">parents</th>
59 <th class="author">parents</th>
60 <td class="author">{parent%filerevparent}</td>
60 <td class="author">{parent%filerevparent}</td>
61 </tr>
61 </tr>
62 <tr>
62 <tr>
63 <th class="author">children</th>
63 <th class="author">children</th>
64 <td class="author">{child%filerevchild}</td>
64 <td class="author">{child%filerevchild}</td>
65 </tr>
65 </tr>
66 {changesettag}
66 {changesettag}
67 </table>
67 </table>
68
68
69 <div class="overflow">
69 <div class="overflow">
70 <div class="sourcefirst"> line source</div>
70 <div class="sourcefirst"> line source</div>
71 {text%fileline}
71 {text%fileline}
72 <div class="sourcelast"></div>
72 <div class="sourcelast"></div>
73 </div>
73 </div>
74 </div>
74 </div>
75 </div>
75 </div>
76
76
77 {footer}
77 {footer}
@@ -1,129 +1,129 b''
1 {header}
1 {header}
2 <title>{repo|escape}: revision graph</title>
2 <title>{repo|escape}: revision graph</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}: log" />
4 href="{url}atom-log" title="Atom feed for {repo|escape}: log" />
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}: log" />
6 href="{url}rss-log" title="RSS feed for {repo|escape}: log" />
7 <!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]-->
7 <!--[if IE]><script type="text/javascript" src="{staticurl}excanvas.js"></script><![endif]-->
8 </head>
8 </head>
9 <body>
9 <body>
10
10
11 <div class="container">
11 <div class="container">
12 <div class="menu">
12 <div class="menu">
13 <div class="logo">
13 <div class="logo">
14 <a href="{logourl}">
14 <a href="{logourl}">
15 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
15 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
16 </div>
16 </div>
17 <ul>
17 <ul>
18 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
18 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
19 <li class="active">graph</li>
19 <li class="active">graph</li>
20 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
20 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
21 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
21 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
22 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
22 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
23 </ul>
23 </ul>
24 <ul>
24 <ul>
25 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
25 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
26 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
26 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
27 </ul>
27 </ul>
28 <ul>
28 <ul>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 </ul>
30 </ul>
31 <p>
31 <p>
32 <div class="atom-logo">
32 <div class="atom-logo">
33 <a href="{url}atom-log" title="subscribe to atom feed">
33 <a href="{url}atom-log" title="subscribe to atom feed">
34 <img class="atom-logo" src="{staticurl}feed-icon-14x14.png" alt="atom feed">
34 <img class="atom-logo" src="{staticurl}feed-icon-14x14.png" alt="atom feed">
35 </a>
35 </a>
36 </div>
36 </div>
37 </div>
37 </div>
38
38
39 <div class="main">
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 <h3>graph</h3>
41 <h3>graph</h3>
42
42
43 <form class="search" action="{url}log">
43 <form class="search" action="{url}log">
44 {sessionvars%hiddenformentry}
44 {sessionvars%hiddenformentry}
45 <p><input name="rev" id="search1" type="text" size="30" /></p>
45 <p><input name="rev" id="search1" type="text" size="30" /></p>
46 <div id="hint">find changesets by author, revision,
46 <div id="hint">find changesets by author, revision,
47 files, or words in the commit message</div>
47 files, or words in the commit message</div>
48 </form>
48 </form>
49
49
50 <div class="navigate">
50 <div class="navigate">
51 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
51 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
52 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
52 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
53 | rev {rev}: {changenav%navgraph}
53 | rev {rev}: {changenav%navgraph}
54 </div>
54 </div>
55
55
56 <noscript><p>The revision graph only works with JavaScript-enabled browsers.</p></noscript>
56 <noscript><p>The revision graph only works with JavaScript-enabled browsers.</p></noscript>
57
57
58 <div id="wrapper">
58 <div id="wrapper">
59 <ul id="nodebgs"></ul>
59 <ul id="nodebgs"></ul>
60 <canvas id="graph" width="480" height="{canvasheight}"></canvas>
60 <canvas id="graph" width="480" height="{canvasheight}"></canvas>
61 <ul id="graphnodes"></ul>
61 <ul id="graphnodes"></ul>
62 </div>
62 </div>
63
63
64 <script type="text/javascript">
64 <script type="text/javascript">
65 <!-- hide script content
65 <!-- hide script content
66
66
67 var data = {jsdata|json};
67 var data = {jsdata|json};
68 var graph = new Graph();
68 var graph = new Graph();
69 graph.scale({bg_height});
69 graph.scale({bg_height});
70
70
71 graph.vertex = function(x, y, color, parity, cur) \{
71 graph.vertex = function(x, y, color, parity, cur) \{
72
72
73 this.ctx.beginPath();
73 this.ctx.beginPath();
74 color = this.setColor(color, 0.25, 0.75);
74 color = this.setColor(color, 0.25, 0.75);
75 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
75 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
76 this.ctx.fill();
76 this.ctx.fill();
77
77
78 var bg = '<li class="bg parity' + parity + '"></li>';
78 var bg = '<li class="bg parity' + parity + '"></li>';
79 var left = (this.bg_height - this.box_size) + (this.columns + 1) * this.box_size;
79 var left = (this.bg_height - this.box_size) + (this.columns + 1) * this.box_size;
80 var nstyle = 'padding-left: ' + left + 'px;';
80 var nstyle = 'padding-left: ' + left + 'px;';
81
81
82 var tagspan = '';
82 var tagspan = '';
83 if (cur[7].length || cur[8].length || (cur[6][0] != 'default' || cur[6][1])) \{
83 if (cur[7].length || cur[8].length || (cur[6][0] != 'default' || cur[6][1])) \{
84 tagspan = '<span class="logtags">';
84 tagspan = '<span class="logtags">';
85 if (cur[6][1]) \{
85 if (cur[6][1]) \{
86 tagspan += '<span class="branchhead" title="' + cur[6][0] + '">';
86 tagspan += '<span class="branchhead" title="' + cur[6][0] + '">';
87 tagspan += cur[6][0] + '</span> ';
87 tagspan += cur[6][0] + '</span> ';
88 } else if (!cur[6][1] && cur[6][0] != 'default') \{
88 } else if (!cur[6][1] && cur[6][0] != 'default') \{
89 tagspan += '<span class="branchname" title="' + cur[6][0] + '">';
89 tagspan += '<span class="branchname" title="' + cur[6][0] + '">';
90 tagspan += cur[6][0] + '</span> ';
90 tagspan += cur[6][0] + '</span> ';
91 }
91 }
92 if (cur[7].length) \{
92 if (cur[7].length) \{
93 for (var t in cur[7]) \{
93 for (var t in cur[7]) \{
94 var tag = cur[7][t];
94 var tag = cur[7][t];
95 tagspan += '<span class="tag">' + tag + '</span> ';
95 tagspan += '<span class="tag">' + tag + '</span> ';
96 }
96 }
97 }
97 }
98 if (cur[8].length) \{
98 if (cur[8].length) \{
99 for (var b in cur[8]) \{
99 for (var b in cur[8]) \{
100 var bookmark = cur[8][b];
100 var bookmark = cur[8][b];
101 tagspan += '<span class="tag">' + bookmark + '</span> ';
101 tagspan += '<span class="tag">' + bookmark + '</span> ';
102 }
102 }
103 }
103 }
104 tagspan += '</span>';
104 tagspan += '</span>';
105 }
105 }
106
106
107 var item = '<li style="' + nstyle + '"><span class="desc">';
107 var item = '<li style="' + nstyle + '"><span class="desc">';
108 item += '<a href="{url}rev/' + cur[0] + '{sessionvars%urlparameter}" title="' + cur[0] + '">' + cur[3] + '</a>';
108 item += '<a href="{url}rev/' + cur[0] + '{sessionvars%urlparameter}" title="' + cur[0] + '">' + cur[3] + '</a>';
109 item += '</span>' + tagspan + '<span class="info">' + cur[5] + ', by ' + cur[4] + '</span></li>';
109 item += '</span>' + tagspan + '<span class="info">' + cur[5] + ', by ' + cur[4] + '</span></li>';
110
110
111 return [bg, item];
111 return [bg, item];
112
112
113 }
113 }
114
114
115 graph.render(data);
115 graph.render(data);
116
116
117 // stop hiding script -->
117 // stop hiding script -->
118 </script>
118 </script>
119
119
120 <div class="navigate">
120 <div class="navigate">
121 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
121 <a href="{url}graph/{rev}{lessvars%urlparameter}">less</a>
122 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
122 <a href="{url}graph/{rev}{morevars%urlparameter}">more</a>
123 | rev {rev}: {changenav%navgraph}
123 | rev {rev}: {changenav%navgraph}
124 </div>
124 </div>
125
125
126 </div>
126 </div>
127 </div>
127 </div>
128
128
129 {footer}
129 {footer}
@@ -1,40 +1,40 b''
1 {header}
1 {header}
2 <title>Help: {topic}</title>
2 <title>Help: {topic}</title>
3 </head>
3 </head>
4 <body>
4 <body>
5
5
6 <div class="container">
6 <div class="container">
7 <div class="menu">
7 <div class="menu">
8 <div class="logo">
8 <div class="logo">
9 <a href="{logourl}">
9 <a href="{logourl}">
10 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
10 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
11 </div>
11 </div>
12 <ul>
12 <ul>
13 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
13 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
14 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
14 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
16 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
16 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
17 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
17 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
18 </ul>
18 </ul>
19 <ul>
19 <ul>
20 <li class="active"><a href="{url}help{sessionvars%urlparameter}">help</a></li>
20 <li class="active"><a href="{url}help{sessionvars%urlparameter}">help</a></li>
21 </ul>
21 </ul>
22 </div>
22 </div>
23
23
24 <div class="main">
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 <h3>Help: {topic}</h3>
26 <h3>Help: {topic}</h3>
27
27
28 <form class="search" action="{url}log">
28 <form class="search" action="{url}log">
29 {sessionvars%hiddenformentry}
29 {sessionvars%hiddenformentry}
30 <p><input name="rev" id="search1" type="text" size="30" /></p>
30 <p><input name="rev" id="search1" type="text" size="30" /></p>
31 <div id="hint">find changesets by author, revision,
31 <div id="hint">find changesets by author, revision,
32 files, or words in the commit message</div>
32 files, or words in the commit message</div>
33 </form>
33 </form>
34 <pre>
34 <pre>
35 {doc|escape}
35 {doc|escape}
36 </pre>
36 </pre>
37 </div>
37 </div>
38 </div>
38 </div>
39
39
40 {footer}
40 {footer}
@@ -1,45 +1,45 b''
1 {header}
1 {header}
2 <title>Help: {title}</title>
2 <title>Help: {title}</title>
3 </head>
3 </head>
4 <body>
4 <body>
5
5
6 <div class="container">
6 <div class="container">
7 <div class="menu">
7 <div class="menu">
8 <div class="logo">
8 <div class="logo">
9 <a href="{logourl}">
9 <a href="{logourl}">
10 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
10 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
11 </div>
11 </div>
12 <ul>
12 <ul>
13 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
13 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
14 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
14 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
16 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
16 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
17 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
17 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
18 </ul>
18 </ul>
19 <ul>
19 <ul>
20 <li class="active">help</li>
20 <li class="active">help</li>
21 </ul>
21 </ul>
22 </div>
22 </div>
23
23
24 <div class="main">
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 <form class="search" action="{url}log">
26 <form class="search" action="{url}log">
27 {sessionvars%hiddenformentry}
27 {sessionvars%hiddenformentry}
28 <p><input name="rev" id="search1" type="text" size="30" /></p>
28 <p><input name="rev" id="search1" type="text" size="30" /></p>
29 <div id="hint">find changesets by author, revision,
29 <div id="hint">find changesets by author, revision,
30 files, or words in the commit message</div>
30 files, or words in the commit message</div>
31 </form>
31 </form>
32 <table class="bigtable">
32 <table class="bigtable">
33 <tr><td colspan="2"><h2><a name="main" href="#topics">Topics</a></h2></td></tr>
33 <tr><td colspan="2"><h2><a name="main" href="#topics">Topics</a></h2></td></tr>
34 {topics % helpentry}
34 {topics % helpentry}
35
35
36 <tr><td colspan="2"><h2><a name="main" href="#main">Main Commands</a></h2></td></tr>
36 <tr><td colspan="2"><h2><a name="main" href="#main">Main Commands</a></h2></td></tr>
37 {earlycommands % helpentry}
37 {earlycommands % helpentry}
38
38
39 <tr><td colspan="2"><h2><a name="other" href="#other">Other Commands</a></h2></td></tr>
39 <tr><td colspan="2"><h2><a name="other" href="#other">Other Commands</a></h2></td></tr>
40 {othercommands % helpentry}
40 {othercommands % helpentry}
41 </table>
41 </table>
42 </div>
42 </div>
43 </div>
43 </div>
44
44
45 {footer}
45 {footer}
@@ -1,27 +1,27 b''
1 {header}
1 {header}
2 <title>Mercurial repositories index</title>
2 <title>Mercurial repositories index</title>
3 </head>
3 </head>
4 <body>
4 <body>
5
5
6 <div class="container">
6 <div class="container">
7 <div class="menu">
7 <div class="menu">
8 <a href="{logourl}">
8 <a href="{logourl}">
9 <img src="{staticurl}{logoimg}" width=75 height=90 border=0 alt="mercurial" /></a>
9 <img src="{staticurl}{logoimg}" width=75 height=90 border=0 alt="mercurial" /></a>
10 </div>
10 </div>
11 <div class="main">
11 <div class="main">
12 <h2>Mercurial Repositories</h2>
12 <h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
13
13
14 <table class="bigtable">
14 <table class="bigtable">
15 <tr>
15 <tr>
16 <th><a href="?sort={sort_name}">Name</a></th>
16 <th><a href="?sort={sort_name}">Name</a></th>
17 <th><a href="?sort={sort_description}">Description</a></th>
17 <th><a href="?sort={sort_description}">Description</a></th>
18 <th><a href="?sort={sort_contact}">Contact</a></th>
18 <th><a href="?sort={sort_contact}">Contact</a></th>
19 <th><a href="?sort={sort_lastchange}">Last modified</a></th>
19 <th><a href="?sort={sort_lastchange}">Last modified</a></th>
20 <th>&nbsp;</th>
20 <th>&nbsp;</th>
21 <th>&nbsp;</th>
21 <th>&nbsp;</th>
22 </tr>
22 </tr>
23 {entries%indexentry}
23 {entries%indexentry}
24 </table>
24 </table>
25 </div>
25 </div>
26 </div>
26 </div>
27 {footer}
27 {footer}
@@ -1,58 +1,58 b''
1 {header}
1 {header}
2 <title>{repo|escape}: {node|short} {path|escape}</title>
2 <title>{repo|escape}: {node|short} {path|escape}</title>
3 </head>
3 </head>
4 <body>
4 <body>
5
5
6 <div class="container">
6 <div class="container">
7 <div class="menu">
7 <div class="menu">
8 <div class="logo">
8 <div class="logo">
9 <a href="{logourl}">
9 <a href="{logourl}">
10 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
10 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
11 </div>
11 </div>
12 <ul>
12 <ul>
13 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
13 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
14 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
14 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
16 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
16 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
17 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
17 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
18 </ul>
18 </ul>
19 <ul>
19 <ul>
20 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
20 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
21 <li class="active">browse</li>
21 <li class="active">browse</li>
22 </ul>
22 </ul>
23 <ul>
23 <ul>
24 {archives%archiveentry}
24 {archives%archiveentry}
25 </ul>
25 </ul>
26 <ul>
26 <ul>
27 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
27 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
28 </ul>
28 </ul>
29 </div>
29 </div>
30
30
31 <div class="main">
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 <h3>directory {path|escape} @ {rev}:{node|short} {tags%changelogtag}</h3>
33 <h3>directory {path|escape} @ {rev}:{node|short} {tags%changelogtag}</h3>
34
34
35 <form class="search" action="{url}log">
35 <form class="search" action="{url}log">
36 {sessionvars%hiddenformentry}
36 {sessionvars%hiddenformentry}
37 <p><input name="rev" id="search1" type="text" size="30" /></p>
37 <p><input name="rev" id="search1" type="text" size="30" /></p>
38 <div id="hint">find changesets by author, revision,
38 <div id="hint">find changesets by author, revision,
39 files, or words in the commit message</div>
39 files, or words in the commit message</div>
40 </form>
40 </form>
41
41
42 <table class="bigtable">
42 <table class="bigtable">
43 <tr>
43 <tr>
44 <th class="name">name</th>
44 <th class="name">name</th>
45 <th class="size">size</th>
45 <th class="size">size</th>
46 <th class="permissions">permissions</th>
46 <th class="permissions">permissions</th>
47 </tr>
47 </tr>
48 <tr class="fileline parity{upparity}">
48 <tr class="fileline parity{upparity}">
49 <td class="name"><a href="{url}file/{node|short}{up|urlescape}{sessionvars%urlparameter}">[up]</a></td>
49 <td class="name"><a href="{url}file/{node|short}{up|urlescape}{sessionvars%urlparameter}">[up]</a></td>
50 <td class="size"></td>
50 <td class="size"></td>
51 <td class="permissions">drwxr-xr-x</td>
51 <td class="permissions">drwxr-xr-x</td>
52 </tr>
52 </tr>
53 {dentries%direntry}
53 {dentries%direntry}
54 {fentries%fileentry}
54 {fentries%fileentry}
55 </table>
55 </table>
56 </div>
56 </div>
57 </div>
57 </div>
58 {footer}
58 {footer}
@@ -1,233 +1,234 b''
1 default = 'shortlog'
1 default = 'shortlog'
2
2
3 mimetype = 'text/html; charset={encoding}'
3 mimetype = 'text/html; charset={encoding}'
4 header = header.tmpl
4 header = header.tmpl
5 footer = footer.tmpl
5 footer = footer.tmpl
6 search = search.tmpl
6 search = search.tmpl
7
7
8 changelog = shortlog.tmpl
8 changelog = shortlog.tmpl
9 shortlog = shortlog.tmpl
9 shortlog = shortlog.tmpl
10 shortlogentry = shortlogentry.tmpl
10 shortlogentry = shortlogentry.tmpl
11 graph = graph.tmpl
11 graph = graph.tmpl
12 help = help.tmpl
12 help = help.tmpl
13 helptopics = helptopics.tmpl
13 helptopics = helptopics.tmpl
14
14
15 helpentry = '<tr><td><a href="{url}help/{topic|escape}{sessionvars%urlparameter}">{topic|escape}</a></td><td>{summary|escape}</td></tr>'
15 helpentry = '<tr><td><a href="{url}help/{topic|escape}{sessionvars%urlparameter}">{topic|escape}</a></td><td>{summary|escape}</td></tr>'
16
16
17 naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
17 naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
18 navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
18 navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
19 navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
19 navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
20 filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
20 filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
21 filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
21 filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
22 filenodelink = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
22 filenodelink = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
23 filenolink = '{file|escape} '
23 filenolink = '{file|escape} '
24 fileellipses = '...'
24 fileellipses = '...'
25 diffstatlink = diffstat.tmpl
25 diffstatlink = diffstat.tmpl
26 diffstatnolink = diffstat.tmpl
26 diffstatnolink = diffstat.tmpl
27 changelogentry = shortlogentry.tmpl
27 changelogentry = shortlogentry.tmpl
28 searchentry = shortlogentry.tmpl
28 searchentry = shortlogentry.tmpl
29 changeset = changeset.tmpl
29 changeset = changeset.tmpl
30 manifest = manifest.tmpl
30 manifest = manifest.tmpl
31
31
32 nav = '{before%naventry} {after%naventry}'
32 nav = '{before%naventry} {after%naventry}'
33 navshort = '{before%navshortentry}{after%navshortentry}'
33 navshort = '{before%navshortentry}{after%navshortentry}'
34 navgraph = '{before%navgraphentry}{after%navgraphentry}'
34 navgraph = '{before%navgraphentry}{after%navgraphentry}'
35 filenav = '{before%filenaventry}{after%filenaventry}'
35 filenav = '{before%filenaventry}{after%filenaventry}'
36
36
37 direntry = '
37 direntry = '
38 <tr class="fileline parity{parity}">
38 <tr class="fileline parity{parity}">
39 <td class="name">
39 <td class="name">
40 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">
40 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">
41 <img src="{staticurl}coal-folder.png" alt="dir."/> {basename|escape}/
41 <img src="{staticurl}coal-folder.png" alt="dir."/> {basename|escape}/
42 </a>
42 </a>
43 <a href="{url}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">
43 <a href="{url}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">
44 {emptydirs|escape}
44 {emptydirs|escape}
45 </a>
45 </a>
46 </td>
46 </td>
47 <td class="size"></td>
47 <td class="size"></td>
48 <td class="permissions">drwxr-xr-x</td>
48 <td class="permissions">drwxr-xr-x</td>
49 </tr>'
49 </tr>'
50
50
51 fileentry = '
51 fileentry = '
52 <tr class="fileline parity{parity}">
52 <tr class="fileline parity{parity}">
53 <td class="filename">
53 <td class="filename">
54 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
54 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
55 <img src="{staticurl}coal-file.png" alt="file"/> {basename|escape}
55 <img src="{staticurl}coal-file.png" alt="file"/> {basename|escape}
56 </a>
56 </a>
57 </td>
57 </td>
58 <td class="size">{size}</td>
58 <td class="size">{size}</td>
59 <td class="permissions">{permissions|permissions}</td>
59 <td class="permissions">{permissions|permissions}</td>
60 </tr>'
60 </tr>'
61
61
62 filerevision = filerevision.tmpl
62 filerevision = filerevision.tmpl
63 fileannotate = fileannotate.tmpl
63 fileannotate = fileannotate.tmpl
64 filediff = filediff.tmpl
64 filediff = filediff.tmpl
65 filecomparison = filecomparison.tmpl
65 filecomparison = filecomparison.tmpl
66 filelog = filelog.tmpl
66 filelog = filelog.tmpl
67 fileline = '
67 fileline = '
68 <div class="parity{parity} source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</div>'
68 <div class="parity{parity} source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</div>'
69 filelogentry = filelogentry.tmpl
69 filelogentry = filelogentry.tmpl
70
70
71 annotateline = '
71 annotateline = '
72 <tr class="parity{parity}">
72 <tr class="parity{parity}">
73 <td class="annotate">
73 <td class="annotate">
74 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"
74 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"
75 title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
75 title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
76 </td>
76 </td>
77 <td class="source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</td>
77 <td class="source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</td>
78 </tr>'
78 </tr>'
79
79
80 diffblock = '<div class="source bottomline parity{parity}"><pre>{lines}</pre></div>'
80 diffblock = '<div class="source bottomline parity{parity}"><pre>{lines}</pre></div>'
81 difflineplus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="plusline">{line|escape}</span>'
81 difflineplus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="plusline">{line|escape}</span>'
82 difflineminus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="minusline">{line|escape}</span>'
82 difflineminus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="minusline">{line|escape}</span>'
83 difflineat = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="atline">{line|escape}</span>'
83 difflineat = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="atline">{line|escape}</span>'
84 diffline = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}'
84 diffline = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}'
85
85
86 comparisonblock ='
86 comparisonblock ='
87 <tbody class="block">
87 <tbody class="block">
88 {lines}
88 {lines}
89 </tbody>'
89 </tbody>'
90 comparisonline = '
90 comparisonline = '
91 <tr>
91 <tr>
92 <td class="source {type}"><a href="#{lineid}" id="{lineid}">{leftlinenumber}</a> {leftline|escape}</td>
92 <td class="source {type}"><a href="#{lineid}" id="{lineid}">{leftlinenumber}</a> {leftline|escape}</td>
93 <td class="source {type}"><a href="#{lineid}" id="{lineid}">{rightlinenumber}</a> {rightline|escape}</td>
93 <td class="source {type}"><a href="#{lineid}" id="{lineid}">{rightlinenumber}</a> {rightline|escape}</td>
94 </tr>'
94 </tr>'
95
95
96 changelogparent = '
96 changelogparent = '
97 <tr>
97 <tr>
98 <th class="parent">parent {rev}:</th>
98 <th class="parent">parent {rev}:</th>
99 <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
99 <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
100 </tr>'
100 </tr>'
101
101
102 changesetparent = '<a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> '
102 changesetparent = '<a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> '
103
103
104 changesetbaseline = '<a href="{url}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">{node|short}</a> '
104 changesetbaseline = '<a href="{url}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">{node|short}</a> '
105
105
106 filerevparent = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rename%filerename}{node|short}</a> '
106 filerevparent = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rename%filerename}{node|short}</a> '
107 filerevchild = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> '
107 filerevchild = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> '
108
108
109 filerename = '{file|escape}@'
109 filerename = '{file|escape}@'
110 filelogrename = '
110 filelogrename = '
111 <span class="base">
111 <span class="base">
112 base
112 base
113 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
113 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
114 {file|escape}@{node|short}
114 {file|escape}@{node|short}
115 </a>
115 </a>
116 </span>'
116 </span>'
117 fileannotateparent = '
117 fileannotateparent = '
118 <tr>
118 <tr>
119 <td class="metatag">parent:</td>
119 <td class="metatag">parent:</td>
120 <td>
120 <td>
121 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
121 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
122 {rename%filerename}{node|short}
122 {rename%filerename}{node|short}
123 </a>
123 </a>
124 </td>
124 </td>
125 </tr>'
125 </tr>'
126 changesetchild = ' <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
126 changesetchild = ' <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
127 changelogchild = '
127 changelogchild = '
128 <tr>
128 <tr>
129 <th class="child">child</th>
129 <th class="child">child</th>
130 <td class="child">
130 <td class="child">
131 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
131 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
132 {node|short}
132 {node|short}
133 </a>
133 </a>
134 </td>
134 </td>
135 </tr>'
135 </tr>'
136 fileannotatechild = '
136 fileannotatechild = '
137 <tr>
137 <tr>
138 <td class="metatag">child:</td>
138 <td class="metatag">child:</td>
139 <td>
139 <td>
140 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
140 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
141 {node|short}
141 {node|short}
142 </a>
142 </a>
143 </td>
143 </td>
144 </tr>'
144 </tr>'
145 tags = tags.tmpl
145 tags = tags.tmpl
146 tagentry = '
146 tagentry = '
147 <tr class="tagEntry parity{parity}">
147 <tr class="tagEntry parity{parity}">
148 <td>
148 <td>
149 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
149 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
150 {tag|escape}
150 {tag|escape}
151 </a>
151 </a>
152 </td>
152 </td>
153 <td class="node">
153 <td class="node">
154 {node|short}
154 {node|short}
155 </td>
155 </td>
156 </tr>'
156 </tr>'
157 bookmarks = bookmarks.tmpl
157 bookmarks = bookmarks.tmpl
158 bookmarkentry = '
158 bookmarkentry = '
159 <tr class="tagEntry parity{parity}">
159 <tr class="tagEntry parity{parity}">
160 <td>
160 <td>
161 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
161 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">
162 {bookmark|escape}
162 {bookmark|escape}
163 </a>
163 </a>
164 </td>
164 </td>
165 <td class="node">
165 <td class="node">
166 {node|short}
166 {node|short}
167 </td>
167 </td>
168 </tr>'
168 </tr>'
169 branches = branches.tmpl
169 branches = branches.tmpl
170 branchentry = '
170 branchentry = '
171 <tr class="tagEntry parity{parity}">
171 <tr class="tagEntry parity{parity}">
172 <td>
172 <td>
173 <a href="{url}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">
173 <a href="{url}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">
174 {branch|escape}
174 {branch|escape}
175 </a>
175 </a>
176 </td>
176 </td>
177 <td class="node">
177 <td class="node">
178 {node|short}
178 {node|short}
179 </td>
179 </td>
180 </tr>'
180 </tr>'
181 changelogtag = '<span class="tag">{name|escape}</span> '
181 changelogtag = '<span class="tag">{name|escape}</span> '
182 changesettag = '<span class="tag">{tag|escape}</span> '
182 changesettag = '<span class="tag">{tag|escape}</span> '
183 changesetbookmark = '<span class="tag">{bookmark|escape}</span> '
183 changesetbookmark = '<span class="tag">{bookmark|escape}</span> '
184 changelogbranchhead = '<span class="branchhead">{name|escape}</span> '
184 changelogbranchhead = '<span class="branchhead">{name|escape}</span> '
185 changelogbranchname = '<span class="branchname">{name|escape}</span> '
185 changelogbranchname = '<span class="branchname">{name|escape}</span> '
186
186
187 filediffparent = '
187 filediffparent = '
188 <tr>
188 <tr>
189 <th class="parent">parent {rev}:</th>
189 <th class="parent">parent {rev}:</th>
190 <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
190 <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
191 </tr>'
191 </tr>'
192 filelogparent = '
192 filelogparent = '
193 <tr>
193 <tr>
194 <th>parent {rev}:</th>
194 <th>parent {rev}:</th>
195 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
195 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
196 </tr>'
196 </tr>'
197 filediffchild = '
197 filediffchild = '
198 <tr>
198 <tr>
199 <th class="child">child {rev}:</th>
199 <th class="child">child {rev}:</th>
200 <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
200 <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
201 </td>
201 </td>
202 </tr>'
202 </tr>'
203 filelogchild = '
203 filelogchild = '
204 <tr>
204 <tr>
205 <th>child {rev}:</th>
205 <th>child {rev}:</th>
206 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
206 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
207 </tr>'
207 </tr>'
208
208
209 indexentry = '
209 indexentry = '
210 <tr class="parity{parity}">
210 <tr class="parity{parity}">
211 <td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td>
211 <td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td>
212 <td>{description}</td>
212 <td>{description}</td>
213 <td>{contact|obfuscate}</td>
213 <td>{contact|obfuscate}</td>
214 <td class="age">{lastchange|rfc822date}</td>
214 <td class="age">{lastchange|rfc822date}</td>
215 <td class="indexlinks">{archives%indexarchiveentry}</td>
215 <td class="indexlinks">{archives%indexarchiveentry}</td>
216 <td>
216 <td>
217 {if(isdirectory, '',
217 {if(isdirectory, '',
218 '<a href="{url}atom-log" title="subscribe to repository atom feed">
218 '<a href="{url}atom-log" title="subscribe to repository atom feed">
219 <img class="atom-logo" src="{staticurl}feed-icon-14x14.png" alt="subscribe to repository atom feed">
219 <img class="atom-logo" src="{staticurl}feed-icon-14x14.png" alt="subscribe to repository atom feed">
220 </a>'
220 </a>'
221 )}
221 )}
222 </td>
222 </td>
223 </tr>\n'
223 </tr>\n'
224 indexarchiveentry = '<a href="{url}archive/{node|short}{extension|urlescape}">&nbsp;&darr;{type|escape}</a>'
224 indexarchiveentry = '<a href="{url}archive/{node|short}{extension|urlescape}">&nbsp;&darr;{type|escape}</a>'
225 index = index.tmpl
225 index = index.tmpl
226 archiveentry = '
226 archiveentry = '
227 <li>
227 <li>
228 <a href="{url}archive/{node|short}{extension|urlescape}">{type|escape}</a>
228 <a href="{url}archive/{node|short}{extension|urlescape}">{type|escape}</a>
229 </li>'
229 </li>'
230 notfound = notfound.tmpl
230 notfound = notfound.tmpl
231 error = error.tmpl
231 error = error.tmpl
232 urlparameter = '{separator}{name}={value|urlescape}'
232 urlparameter = '{separator}{name}={value|urlescape}'
233 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
233 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
234 breadcrumb = '&gt; <a href="{url}">{name}</a> '
@@ -1,55 +1,55 b''
1 {header}
1 {header}
2 <title>{repo|escape}: searching for {query|escape}</title>
2 <title>{repo|escape}: searching for {query|escape}</title>
3 </head>
3 </head>
4 <body>
4 <body>
5
5
6 <div class="container">
6 <div class="container">
7 <div class="menu">
7 <div class="menu">
8 <div class="logo">
8 <div class="logo">
9 <a href="{logourl}">
9 <a href="{logourl}">
10 <img src="{staticurl}{logoimg}" width=75 height=90 border=0 alt="mercurial"></a>
10 <img src="{staticurl}{logoimg}" width=75 height=90 border=0 alt="mercurial"></a>
11 </div>
11 </div>
12 <ul>
12 <ul>
13 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
13 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
14 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
14 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
16 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
16 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
17 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
17 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
18 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
18 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
19 </ul>
19 </ul>
20 </div>
20 </div>
21
21
22 <div class="main">
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 <h3>searching for '{query|escape}'</h3>
24 <h3>searching for '{query|escape}'</h3>
25
25
26 <form class="search" action="{url}log">
26 <form class="search" action="{url}log">
27 {sessionvars%hiddenformentry}
27 {sessionvars%hiddenformentry}
28 <p><input name="rev" id="search1" type="text" size="30"></p>
28 <p><input name="rev" id="search1" type="text" size="30"></p>
29 <div id="hint">find changesets by author, revision,
29 <div id="hint">find changesets by author, revision,
30 files, or words in the commit message</div>
30 files, or words in the commit message</div>
31 </form>
31 </form>
32
32
33 <div class="navigate">
33 <div class="navigate">
34 <a href="{url}search/{lessvars%urlparameter}">less</a>
34 <a href="{url}search/{lessvars%urlparameter}">less</a>
35 <a href="{url}search/{morevars%urlparameter}">more</a>
35 <a href="{url}search/{morevars%urlparameter}">more</a>
36 </div>
36 </div>
37
37
38 <table class="bigtable">
38 <table class="bigtable">
39 <tr>
39 <tr>
40 <th class="age">age</th>
40 <th class="age">age</th>
41 <th class="author">author</th>
41 <th class="author">author</th>
42 <th class="description">description</th>
42 <th class="description">description</th>
43 </tr>
43 </tr>
44 {entries}
44 {entries}
45 </table>
45 </table>
46
46
47 <div class="navigate">
47 <div class="navigate">
48 <a href="{url}search/{lessvars%urlparameter}">less</a>
48 <a href="{url}search/{lessvars%urlparameter}">less</a>
49 <a href="{url}search/{morevars%urlparameter}">more</a>
49 <a href="{url}search/{morevars%urlparameter}">more</a>
50 </div>
50 </div>
51
51
52 </div>
52 </div>
53 </div>
53 </div>
54
54
55 {footer}
55 {footer}
@@ -1,76 +1,76 b''
1 {header}
1 {header}
2 <title>{repo|escape}: log</title>
2 <title>{repo|escape}: log</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-log" title="Atom feed for {repo|escape}" />
4 href="{url}atom-log" title="Atom feed for {repo|escape}" />
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-log" title="RSS feed for {repo|escape}" />
6 href="{url}rss-log" title="RSS feed for {repo|escape}" />
7 </head>
7 </head>
8 <body>
8 <body>
9
9
10 <div class="container">
10 <div class="container">
11 <div class="menu">
11 <div class="menu">
12 <div class="logo">
12 <div class="logo">
13 <a href="{logourl}">
13 <a href="{logourl}">
14 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
14 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
15 </div>
15 </div>
16 <ul>
16 <ul>
17 <li class="active">log</li>
17 <li class="active">log</li>
18 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
18 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
19 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
19 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
20 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
20 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
21 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
21 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
22 </ul>
22 </ul>
23 <ul>
23 <ul>
24 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
24 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
25 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
25 <li><a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
26 </ul>
26 </ul>
27 <ul>
27 <ul>
28 {archives%archiveentry}
28 {archives%archiveentry}
29 </ul>
29 </ul>
30 <ul>
30 <ul>
31 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
31 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
32 </ul>
32 </ul>
33 <p>
33 <p>
34 <div class="atom-logo">
34 <div class="atom-logo">
35 <a href="{url}atom-log" title="subscribe to atom feed">
35 <a href="{url}atom-log" title="subscribe to atom feed">
36 <img class="atom-logo" src="{staticurl}feed-icon-14x14.png" alt="atom feed">
36 <img class="atom-logo" src="{staticurl}feed-icon-14x14.png" alt="atom feed">
37 </a>
37 </a>
38 </div>
38 </div>
39 </div>
39 </div>
40
40
41 <div class="main">
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 <h3>log</h3>
43 <h3>log</h3>
44
44
45 <form class="search" action="{url}log">
45 <form class="search" action="{url}log">
46 {sessionvars%hiddenformentry}
46 {sessionvars%hiddenformentry}
47 <p><input name="rev" id="search1" type="text" size="30" /></p>
47 <p><input name="rev" id="search1" type="text" size="30" /></p>
48 <div id="hint">find changesets by author, revision,
48 <div id="hint">find changesets by author, revision,
49 files, or words in the commit message</div>
49 files, or words in the commit message</div>
50 </form>
50 </form>
51
51
52 <div class="navigate">
52 <div class="navigate">
53 <a href="{url}shortlog/{rev}{lessvars%urlparameter}">less</a>
53 <a href="{url}shortlog/{rev}{lessvars%urlparameter}">less</a>
54 <a href="{url}shortlog/{rev}{morevars%urlparameter}">more</a>
54 <a href="{url}shortlog/{rev}{morevars%urlparameter}">more</a>
55 | rev {rev}: {changenav%navshort}
55 | rev {rev}: {changenav%navshort}
56 </div>
56 </div>
57
57
58 <table class="bigtable">
58 <table class="bigtable">
59 <tr>
59 <tr>
60 <th class="age">age</th>
60 <th class="age">age</th>
61 <th class="author">author</th>
61 <th class="author">author</th>
62 <th class="description">description</th>
62 <th class="description">description</th>
63 </tr>
63 </tr>
64 {entries%shortlogentry}
64 {entries%shortlogentry}
65 </table>
65 </table>
66
66
67 <div class="navigate">
67 <div class="navigate">
68 <a href="{url}shortlog/{rev}{lessvars%urlparameter}">less</a>
68 <a href="{url}shortlog/{rev}{lessvars%urlparameter}">less</a>
69 <a href="{url}shortlog/{rev}{morevars%urlparameter}">more</a>
69 <a href="{url}shortlog/{rev}{morevars%urlparameter}">more</a>
70 | rev {rev}: {changenav%navshort}
70 | rev {rev}: {changenav%navshort}
71 </div>
71 </div>
72
72
73 </div>
73 </div>
74 </div>
74 </div>
75
75
76 {footer}
76 {footer}
@@ -1,54 +1,54 b''
1 {header}
1 {header}
2 <title>{repo|escape}: tags</title>
2 <title>{repo|escape}: tags</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url}atom-tags" title="Atom feed for {repo|escape}: tags" />
4 href="{url}atom-tags" title="Atom feed for {repo|escape}: tags" />
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url}rss-tags" title="RSS feed for {repo|escape}: tags" />
6 href="{url}rss-tags" title="RSS feed for {repo|escape}: tags" />
7 </head>
7 </head>
8 <body>
8 <body>
9
9
10 <div class="container">
10 <div class="container">
11 <div class="menu">
11 <div class="menu">
12 <div class="logo">
12 <div class="logo">
13 <a href="{logourl}">
13 <a href="{logourl}">
14 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
14 <img src="{staticurl}{logoimg}" alt="mercurial" /></a>
15 </div>
15 </div>
16 <ul>
16 <ul>
17 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
17 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
18 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
18 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
19 <li class="active">tags</li>
19 <li class="active">tags</li>
20 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
20 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
21 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
21 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
22 </ul>
22 </ul>
23 <ul>
23 <ul>
24 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
24 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
25 </ul>
25 </ul>
26 <p>
26 <p>
27 <div class="atom-logo">
27 <div class="atom-logo">
28 <a href="{url}atom-tags" title="subscribe to atom feed">
28 <a href="{url}atom-tags" title="subscribe to atom feed">
29 <img class="atom-logo" src="{staticurl}feed-icon-14x14.png" alt="atom feed"></a>
29 <img class="atom-logo" src="{staticurl}feed-icon-14x14.png" alt="atom feed"></a>
30 </div>
30 </div>
31 </div>
31 </div>
32
32
33 <div class="main">
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 <h3>tags</h3>
35 <h3>tags</h3>
36
36
37 <form class="search" action="{url}log">
37 <form class="search" action="{url}log">
38 {sessionvars%hiddenformentry}
38 {sessionvars%hiddenformentry}
39 <p><input name="rev" id="search1" type="text" size="30" /></p>
39 <p><input name="rev" id="search1" type="text" size="30" /></p>
40 <div id="hint">find changesets by author, revision,
40 <div id="hint">find changesets by author, revision,
41 files, or words in the commit message</div>
41 files, or words in the commit message</div>
42 </form>
42 </form>
43
43
44 <table class="bigtable">
44 <table class="bigtable">
45 <tr>
45 <tr>
46 <th>tag</th>
46 <th>tag</th>
47 <th>node</th>
47 <th>node</th>
48 </tr>
48 </tr>
49 {entries%tagentry}
49 {entries%tagentry}
50 </table>
50 </table>
51 </div>
51 </div>
52 </div>
52 </div>
53
53
54 {footer}
54 {footer}
@@ -1,19 +1,19 b''
1 {header}
1 {header}
2 <title>Mercurial repositories index</title>
2 <title>Mercurial repositories index</title>
3 </head>
3 </head>
4 <body>
4 <body>
5
5
6 <h2>Mercurial Repositories</h2>
6 <h2><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
7
7
8 <table>
8 <table>
9 <tr>
9 <tr>
10 <td><a href="?sort={sort_name}">Name</a></td>
10 <td><a href="?sort={sort_name}">Name</a></td>
11 <td><a href="?sort={sort_description}">Description</a></td>
11 <td><a href="?sort={sort_description}">Description</a></td>
12 <td><a href="?sort={sort_contact}">Contact</a></td>
12 <td><a href="?sort={sort_contact}">Contact</a></td>
13 <td><a href="?sort={sort_lastchange}">Last modified</a></td>
13 <td><a href="?sort={sort_lastchange}">Last modified</a></td>
14 <td>&nbsp;</td>
14 <td>&nbsp;</td>
15 </tr>
15 </tr>
16 {entries%indexentry}
16 {entries%indexentry}
17 </table>
17 </table>
18
18
19 {footer}
19 {footer}
@@ -1,183 +1,184 b''
1 default = 'shortlog'
1 default = 'shortlog'
2 mimetype = 'text/html; charset={encoding}'
2 mimetype = 'text/html; charset={encoding}'
3 header = header.tmpl
3 header = header.tmpl
4 footer = footer.tmpl
4 footer = footer.tmpl
5 search = search.tmpl
5 search = search.tmpl
6 changelog = changelog.tmpl
6 changelog = changelog.tmpl
7 shortlog = shortlog.tmpl
7 shortlog = shortlog.tmpl
8 shortlogentry = shortlogentry.tmpl
8 shortlogentry = shortlogentry.tmpl
9 graph = graph.tmpl
9 graph = graph.tmpl
10 naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
10 naventry = '<a href="{url}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
11 navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
11 navshortentry = '<a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
12 navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
12 navgraphentry = '<a href="{url}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
13 filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
13 filenaventry = '<a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
14 filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
14 filedifflink = '<a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
15 filenodelink = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
15 filenodelink = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
16 filenolink = '{file|escape} '
16 filenolink = '{file|escape} '
17 fileellipses = '...'
17 fileellipses = '...'
18 changelogentry = changelogentry.tmpl
18 changelogentry = changelogentry.tmpl
19 searchentry = changelogentry.tmpl
19 searchentry = changelogentry.tmpl
20 changeset = changeset.tmpl
20 changeset = changeset.tmpl
21 manifest = manifest.tmpl
21 manifest = manifest.tmpl
22
22
23 nav = '{before%naventry} {after%naventry}'
23 nav = '{before%naventry} {after%naventry}'
24 navshort = '{before%navshortentry}{after%navshortentry}'
24 navshort = '{before%navshortentry}{after%navshortentry}'
25 navgraph = '{before%navgraphentry}{after%navgraphentry}'
25 navgraph = '{before%navgraphentry}{after%navgraphentry}'
26 filenav = '{before%filenaventry}{after%filenaventry}'
26 filenav = '{before%filenaventry}{after%filenaventry}'
27
27
28 direntry = '
28 direntry = '
29 <tr class="parity{parity}">
29 <tr class="parity{parity}">
30 <td><tt>drwxr-xr-x</tt>&nbsp;
30 <td><tt>drwxr-xr-x</tt>&nbsp;
31 <td>&nbsp;
31 <td>&nbsp;
32 <td>&nbsp;
32 <td>&nbsp;
33 <td>
33 <td>
34 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}/</a>
34 <a href="{url}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}/</a>
35 <a href="{url}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">
35 <a href="{url}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">
36 {emptydirs|urlescape}
36 {emptydirs|urlescape}
37 </a>'
37 </a>'
38
38
39 fileentry = '
39 fileentry = '
40 <tr class="parity{parity}">
40 <tr class="parity{parity}">
41 <td><tt>{permissions|permissions}</tt>&nbsp;
41 <td><tt>{permissions|permissions}</tt>&nbsp;
42 <td align=right><tt class="date">{date|isodate}</tt>&nbsp;
42 <td align=right><tt class="date">{date|isodate}</tt>&nbsp;
43 <td align=right><tt>{size}</tt>&nbsp;
43 <td align=right><tt>{size}</tt>&nbsp;
44 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>'
44 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>'
45
45
46 filerevision = filerevision.tmpl
46 filerevision = filerevision.tmpl
47 fileannotate = fileannotate.tmpl
47 fileannotate = fileannotate.tmpl
48 filediff = filediff.tmpl
48 filediff = filediff.tmpl
49 filelog = filelog.tmpl
49 filelog = filelog.tmpl
50 fileline = '<div class="parity{parity}"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>&nbsp;{line|escape}</div>'
50 fileline = '<div class="parity{parity}"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>&nbsp;{line|escape}</div>'
51 filelogentry = filelogentry.tmpl
51 filelogentry = filelogentry.tmpl
52
52
53 # The &nbsp; ensures that all table cells have content (even if there
53 # The &nbsp; ensures that all table cells have content (even if there
54 # is an empty line in the annotated file), which in turn ensures that
54 # is an empty line in the annotated file), which in turn ensures that
55 # all table rows have equal height.
55 # all table rows have equal height.
56 annotateline = '
56 annotateline = '
57 <tr class="parity{parity}">
57 <tr class="parity{parity}">
58 <td class="annotate">
58 <td class="annotate">
59 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"
59 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"
60 title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
60 title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
61 </td>
61 </td>
62 <td>
62 <td>
63 <a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>
63 <a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>
64 </td>
64 </td>
65 <td><pre>&nbsp;{line|escape}</pre></td>
65 <td><pre>&nbsp;{line|escape}</pre></td>
66 </tr>'
66 </tr>'
67 difflineplus = '<span class="plusline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>'
67 difflineplus = '<span class="plusline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>'
68 difflineminus = '<span class="minusline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>'
68 difflineminus = '<span class="minusline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>'
69 difflineat = '<span class="atline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>'
69 difflineat = '<span class="atline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>'
70 diffline = '<a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}'
70 diffline = '<a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}'
71 changelogparent = '
71 changelogparent = '
72 <tr>
72 <tr>
73 <th class="parent">parent {rev}:</th>
73 <th class="parent">parent {rev}:</th>
74 <td class="parent">
74 <td class="parent">
75 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
75 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
76 </td>
76 </td>
77 </tr>'
77 </tr>'
78 changesetparent = '
78 changesetparent = '
79 <tr>
79 <tr>
80 <th class="parent">parent {rev}:</th>
80 <th class="parent">parent {rev}:</th>
81 <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
81 <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
82 </tr>'
82 </tr>'
83 filerevparent = '
83 filerevparent = '
84 <tr>
84 <tr>
85 <td class="metatag">parent:</td>
85 <td class="metatag">parent:</td>
86 <td>
86 <td>
87 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
87 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
88 {rename%filerename}{node|short}
88 {rename%filerename}{node|short}
89 </a>
89 </a>
90 </td>
90 </td>
91 </tr>'
91 </tr>'
92 filerename = '{file|escape}@'
92 filerename = '{file|escape}@'
93 filelogrename = '
93 filelogrename = '
94 <tr>
94 <tr>
95 <th>base:</th>
95 <th>base:</th>
96 <td>
96 <td>
97 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
97 <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
98 {file|escape}@{node|short}
98 {file|escape}@{node|short}
99 </a>
99 </a>
100 </td>
100 </td>
101 </tr>'
101 </tr>'
102 fileannotateparent = '
102 fileannotateparent = '
103 <tr>
103 <tr>
104 <td class="metatag">parent:</td>
104 <td class="metatag">parent:</td>
105 <td>
105 <td>
106 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
106 <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
107 {rename%filerename}{node|short}
107 {rename%filerename}{node|short}
108 </a>
108 </a>
109 </td>
109 </td>
110 </tr>'
110 </tr>'
111 changesetchild = '
111 changesetchild = '
112 <tr>
112 <tr>
113 <th class="child">child {rev}:</th>
113 <th class="child">child {rev}:</th>
114 <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
114 <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
115 </tr>'
115 </tr>'
116 changelogchild = '
116 changelogchild = '
117 <tr>
117 <tr>
118 <th class="child">child {rev}:</th>
118 <th class="child">child {rev}:</th>
119 <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
119 <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
120 </tr>'
120 </tr>'
121 filerevchild = '
121 filerevchild = '
122 <tr>
122 <tr>
123 <td class="metatag">child:</td>
123 <td class="metatag">child:</td>
124 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
124 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
125 </tr>'
125 </tr>'
126 fileannotatechild = '
126 fileannotatechild = '
127 <tr>
127 <tr>
128 <td class="metatag">child:</td>
128 <td class="metatag">child:</td>
129 <td><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
129 <td><a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
130 </tr>'
130 </tr>'
131 tags = tags.tmpl
131 tags = tags.tmpl
132 tagentry = '
132 tagentry = '
133 <li class="tagEntry parity{parity}">
133 <li class="tagEntry parity{parity}">
134 <tt class="node">{node}</tt>
134 <tt class="node">{node}</tt>
135 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{tag|escape}</a>
135 <a href="{url}rev/{node|short}{sessionvars%urlparameter}">{tag|escape}</a>
136 </li>'
136 </li>'
137 branches = branches.tmpl
137 branches = branches.tmpl
138 branchentry = '
138 branchentry = '
139 <li class="tagEntry parity{parity}">
139 <li class="tagEntry parity{parity}">
140 <tt class="node">{node}</tt>
140 <tt class="node">{node}</tt>
141 <a href="{url}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">{branch|escape}</a>
141 <a href="{url}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">{branch|escape}</a>
142 </li>'
142 </li>'
143 diffblock = '<pre class="parity{parity}">{lines}</pre>'
143 diffblock = '<pre class="parity{parity}">{lines}</pre>'
144 changelogtag = '<tr><th class="tag">tag:</th><td class="tag">{tag|escape}</td></tr>'
144 changelogtag = '<tr><th class="tag">tag:</th><td class="tag">{tag|escape}</td></tr>'
145 changesettag = '<tr><th class="tag">tag:</th><td class="tag">{tag|escape}</td></tr>'
145 changesettag = '<tr><th class="tag">tag:</th><td class="tag">{tag|escape}</td></tr>'
146 filediffparent = '
146 filediffparent = '
147 <tr>
147 <tr>
148 <th class="parent">parent {rev}:</th>
148 <th class="parent">parent {rev}:</th>
149 <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
149 <td class="parent"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
150 </tr>'
150 </tr>'
151 filelogparent = '
151 filelogparent = '
152 <tr>
152 <tr>
153 <th>parent {rev}:</th>
153 <th>parent {rev}:</th>
154 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
154 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
155 </tr>'
155 </tr>'
156 filediffchild = '
156 filediffchild = '
157 <tr>
157 <tr>
158 <th class="child">child {rev}:</th>
158 <th class="child">child {rev}:</th>
159 <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
159 <td class="child"><a href="{url}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
160 </tr>'
160 </tr>'
161 filelogchild = '
161 filelogchild = '
162 <tr>
162 <tr>
163 <th>child {rev}:</th>
163 <th>child {rev}:</th>
164 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
164 <td><a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
165 </tr>'
165 </tr>'
166 indexentry = '
166 indexentry = '
167 <tr class="parity{parity}">
167 <tr class="parity{parity}">
168 <td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td>
168 <td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td>
169 <td>{description}</td>
169 <td>{description}</td>
170 <td>{contact|obfuscate}</td>
170 <td>{contact|obfuscate}</td>
171 <td class="age">{lastchange|rfc822date}</td>
171 <td class="age">{lastchange|rfc822date}</td>
172 <td class="indexlinks">
172 <td class="indexlinks">
173 <a href="{url}rss-log">RSS</a>
173 <a href="{url}rss-log">RSS</a>
174 <a href="{url}atom-log">Atom</a>
174 <a href="{url}atom-log">Atom</a>
175 {archives%archiveentry}
175 {archives%archiveentry}
176 </td>
176 </td>
177 </tr>'
177 </tr>'
178 index = index.tmpl
178 index = index.tmpl
179 archiveentry = '<a href="{url}archive/{node|short}{extension|urlescape}">{type|escape}</a> '
179 archiveentry = '<a href="{url}archive/{node|short}{extension|urlescape}">{type|escape}</a> '
180 notfound = notfound.tmpl
180 notfound = notfound.tmpl
181 error = error.tmpl
181 error = error.tmpl
182 urlparameter = '{separator}{name}={value|urlescape}'
182 urlparameter = '{separator}{name}={value|urlescape}'
183 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
183 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
184 breadcrumb = '&gt; <a href="{url}">{name}</a> '
@@ -1,325 +1,333 b''
1 body {
1 body {
2 margin: 0;
2 margin: 0;
3 padding: 0;
3 padding: 0;
4 background: black url(background.png) repeat-x;
4 background: black url(background.png) repeat-x;
5 font-family: sans-serif;
5 font-family: sans-serif;
6 }
6 }
7
7
8 .container {
8 .container {
9 padding-right: 150px;
9 padding-right: 150px;
10 }
10 }
11
11
12 .main {
12 .main {
13 position: relative;
13 position: relative;
14 background: white;
14 background: white;
15 padding: 2em;
15 padding: 2em;
16 border-right: 15px solid black;
16 border-right: 15px solid black;
17 border-bottom: 15px solid black;
17 border-bottom: 15px solid black;
18 }
18 }
19
19
20 #.main {
20 #.main {
21 width: 98%;
21 width: 98%;
22 }
22 }
23
23
24 .overflow {
24 .overflow {
25 width: 100%;
25 width: 100%;
26 overflow: auto;
26 overflow: auto;
27 }
27 }
28
28
29 .menu {
29 .menu {
30 background: #999;
30 background: #999;
31 padding: 10px;
31 padding: 10px;
32 width: 75px;
32 width: 75px;
33 margin: 0;
33 margin: 0;
34 font-size: 80%;
34 font-size: 80%;
35 text-align: left;
35 text-align: left;
36 position: fixed;
36 position: fixed;
37 top: 27px;
37 top: 27px;
38 left: auto;
38 left: auto;
39 right: 27px;
39 right: 27px;
40 }
40 }
41
41
42 #.menu {
42 #.menu {
43 position: absolute !important;
43 position: absolute !important;
44 top:expression(eval(document.body.scrollTop + 27));
44 top:expression(eval(document.body.scrollTop + 27));
45 }
45 }
46
46
47 .menu ul {
47 .menu ul {
48 list-style: none;
48 list-style: none;
49 padding: 0;
49 padding: 0;
50 margin: 10px 0 0 0;
50 margin: 10px 0 0 0;
51 }
51 }
52
52
53 .menu li {
53 .menu li {
54 margin-bottom: 3px;
54 margin-bottom: 3px;
55 padding: 2px 4px;
55 padding: 2px 4px;
56 background: white;
56 background: white;
57 color: black;
57 color: black;
58 font-weight: normal;
58 font-weight: normal;
59 }
59 }
60
60
61 .menu li.active {
61 .menu li.active {
62 background: black;
62 background: black;
63 color: white;
63 color: white;
64 }
64 }
65
65
66 .menu img {
66 .menu img {
67 width: 75px;
67 width: 75px;
68 height: 90px;
68 height: 90px;
69 border: 0;
69 border: 0;
70 }
70 }
71
71
72 .menu a { color: black; display: block; }
72 .menu a { color: black; display: block; }
73
73
74 .search {
74 .search {
75 position: absolute;
75 position: absolute;
76 top: .7em;
76 top: .7em;
77 right: 2em;
77 right: 2em;
78 }
78 }
79
79
80 form.search div#hint {
80 form.search div#hint {
81 display: none;
81 display: none;
82 position: absolute;
82 position: absolute;
83 top: 40px;
83 top: 40px;
84 right: 0px;
84 right: 0px;
85 width: 190px;
85 width: 190px;
86 padding: 5px;
86 padding: 5px;
87 background: #ffc;
87 background: #ffc;
88 font-size: 70%;
88 font-size: 70%;
89 border: 1px solid yellow;
89 border: 1px solid yellow;
90 -moz-border-radius: 5px; /* this works only in camino/firefox */
90 -moz-border-radius: 5px; /* this works only in camino/firefox */
91 -webkit-border-radius: 5px; /* this is just for Safari */
91 -webkit-border-radius: 5px; /* this is just for Safari */
92 }
92 }
93
93
94 form.search:hover div#hint { display: block; }
94 form.search:hover div#hint { display: block; }
95
95
96 a { text-decoration:none; }
96 a { text-decoration:none; }
97 .age { white-space:nowrap; }
97 .age { white-space:nowrap; }
98 .date { white-space:nowrap; }
98 .date { white-space:nowrap; }
99 .indexlinks { white-space:nowrap; }
99 .indexlinks { white-space:nowrap; }
100 .parity0 { background-color: #f0f0f0; }
100 .parity0 { background-color: #f0f0f0; }
101 .parity1 { background-color: white; }
101 .parity1 { background-color: white; }
102 .plusline { color: green; }
102 .plusline { color: green; }
103 .minusline { color: #dc143c; } /* crimson */
103 .minusline { color: #dc143c; } /* crimson */
104 .atline { color: purple; }
104 .atline { color: purple; }
105
105
106 .diffstat-file {
106 .diffstat-file {
107 white-space: nowrap;
107 white-space: nowrap;
108 font-size: 90%;
108 font-size: 90%;
109 }
109 }
110 .diffstat-total {
110 .diffstat-total {
111 white-space: nowrap;
111 white-space: nowrap;
112 font-size: 90%;
112 font-size: 90%;
113 }
113 }
114 .diffstat-graph {
114 .diffstat-graph {
115 width: 100%;
115 width: 100%;
116 }
116 }
117 .diffstat-add {
117 .diffstat-add {
118 background-color: green;
118 background-color: green;
119 float: left;
119 float: left;
120 }
120 }
121 .diffstat-remove {
121 .diffstat-remove {
122 background-color: red;
122 background-color: red;
123 float: left;
123 float: left;
124 }
124 }
125
125
126 .navigate {
126 .navigate {
127 text-align: right;
127 text-align: right;
128 font-size: 60%;
128 font-size: 60%;
129 margin: 1em 0;
129 margin: 1em 0;
130 }
130 }
131
131
132 .tag {
132 .tag {
133 color: #999;
133 color: #999;
134 font-size: 70%;
134 font-size: 70%;
135 font-weight: normal;
135 font-weight: normal;
136 margin-left: .5em;
136 margin-left: .5em;
137 vertical-align: baseline;
137 vertical-align: baseline;
138 }
138 }
139
139
140 .branchhead {
140 .branchhead {
141 color: #000;
141 color: #000;
142 font-size: 80%;
142 font-size: 80%;
143 font-weight: normal;
143 font-weight: normal;
144 margin-left: .5em;
144 margin-left: .5em;
145 vertical-align: baseline;
145 vertical-align: baseline;
146 }
146 }
147
147
148 ul#graphnodes .branchhead {
148 ul#graphnodes .branchhead {
149 font-size: 75%;
149 font-size: 75%;
150 }
150 }
151
151
152 .branchname {
152 .branchname {
153 color: #000;
153 color: #000;
154 font-size: 60%;
154 font-size: 60%;
155 font-weight: normal;
155 font-weight: normal;
156 margin-left: .5em;
156 margin-left: .5em;
157 vertical-align: baseline;
157 vertical-align: baseline;
158 }
158 }
159
159
160 h3 .branchname {
160 h3 .branchname {
161 font-size: 80%;
161 font-size: 80%;
162 }
162 }
163
163
164 /* Common */
164 /* Common */
165 pre { margin: 0; }
165 pre { margin: 0; }
166
166
167 h2 { font-size: 120%; border-bottom: 1px solid #999; }
167 h2 { font-size: 120%; border-bottom: 1px solid #999; }
168 h2 a { color: #000; }
168 h2 a { color: #000; }
169 h3 {
169 h3 {
170 margin-top: -.7em;
170 margin-top: -.7em;
171 font-size: 100%;
171 font-size: 100%;
172 }
172 }
173
173
174 /* log and tags tables */
174 /* log and tags tables */
175 .bigtable {
175 .bigtable {
176 border-bottom: 1px solid #999;
176 border-bottom: 1px solid #999;
177 border-collapse: collapse;
177 border-collapse: collapse;
178 font-size: 90%;
178 font-size: 90%;
179 width: 100%;
179 width: 100%;
180 font-weight: normal;
180 font-weight: normal;
181 text-align: left;
181 text-align: left;
182 }
182 }
183
183
184 .bigtable td {
184 .bigtable td {
185 vertical-align: top;
185 vertical-align: top;
186 }
186 }
187
187
188 .bigtable th {
188 .bigtable th {
189 padding: 1px 4px;
189 padding: 1px 4px;
190 border-bottom: 1px solid #999;
190 border-bottom: 1px solid #999;
191 }
191 }
192 .bigtable tr { border: none; }
192 .bigtable tr { border: none; }
193 .bigtable .age { width: 6em; }
193 .bigtable .age { width: 6em; }
194 .bigtable .author { width: 12em; }
194 .bigtable .author { width: 12em; }
195 .bigtable .description { }
195 .bigtable .description { }
196 .bigtable .description .base { font-size: 70%; float: right; line-height: 1.66; }
196 .bigtable .description .base { font-size: 70%; float: right; line-height: 1.66; }
197 .bigtable .node { width: 5em; font-family: monospace;}
197 .bigtable .node { width: 5em; font-family: monospace;}
198 .bigtable .lineno { width: 2em; text-align: right;}
198 .bigtable .lineno { width: 2em; text-align: right;}
199 .bigtable .lineno a { color: #999; font-size: smaller; font-family: monospace;}
199 .bigtable .lineno a { color: #999; font-size: smaller; font-family: monospace;}
200 .bigtable .permissions { width: 8em; text-align: left;}
200 .bigtable .permissions { width: 8em; text-align: left;}
201 .bigtable .size { width: 5em; text-align: right; }
201 .bigtable .size { width: 5em; text-align: right; }
202 .bigtable .annotate { text-align: right; }
202 .bigtable .annotate { text-align: right; }
203 .bigtable td.annotate { font-size: smaller; }
203 .bigtable td.annotate { font-size: smaller; }
204 .bigtable td.source { font-size: inherit; }
204 .bigtable td.source { font-size: inherit; }
205
205
206 .source, .sourcefirst, .sourcelast {
206 .source, .sourcefirst, .sourcelast {
207 font-family: monospace;
207 font-family: monospace;
208 white-space: pre;
208 white-space: pre;
209 padding: 1px 4px;
209 padding: 1px 4px;
210 font-size: 90%;
210 font-size: 90%;
211 }
211 }
212 .sourcefirst { border-bottom: 1px solid #999; font-weight: bold; }
212 .sourcefirst { border-bottom: 1px solid #999; font-weight: bold; }
213 .sourcelast { border-top: 1px solid #999; }
213 .sourcelast { border-top: 1px solid #999; }
214 .source a { color: #999; font-size: smaller; font-family: monospace;}
214 .source a { color: #999; font-size: smaller; font-family: monospace;}
215 .bottomline { border-bottom: 1px solid #999; }
215 .bottomline { border-bottom: 1px solid #999; }
216
216
217 .fileline { font-family: monospace; }
217 .fileline { font-family: monospace; }
218 .fileline img { border: 0; }
218 .fileline img { border: 0; }
219
219
220 .tagEntry .closed { color: #99f; }
220 .tagEntry .closed { color: #99f; }
221
221
222 /* Changeset entry */
222 /* Changeset entry */
223 #changesetEntry {
223 #changesetEntry {
224 border-collapse: collapse;
224 border-collapse: collapse;
225 font-size: 90%;
225 font-size: 90%;
226 width: 100%;
226 width: 100%;
227 margin-bottom: 1em;
227 margin-bottom: 1em;
228 }
228 }
229
229
230 #changesetEntry th {
230 #changesetEntry th {
231 padding: 1px 4px;
231 padding: 1px 4px;
232 width: 4em;
232 width: 4em;
233 text-align: right;
233 text-align: right;
234 font-weight: normal;
234 font-weight: normal;
235 color: #999;
235 color: #999;
236 margin-right: .5em;
236 margin-right: .5em;
237 vertical-align: top;
237 vertical-align: top;
238 }
238 }
239
239
240 div.description {
240 div.description {
241 border-left: 3px solid #999;
241 border-left: 3px solid #999;
242 margin: 1em 0 1em 0;
242 margin: 1em 0 1em 0;
243 padding: .3em;
243 padding: .3em;
244 white-space: pre;
244 white-space: pre;
245 font-family: monospace;
245 font-family: monospace;
246 }
246 }
247
247
248 /* Graph */
248 /* Graph */
249 div#wrapper {
249 div#wrapper {
250 position: relative;
250 position: relative;
251 border-top: 1px solid black;
251 border-top: 1px solid black;
252 border-bottom: 1px solid black;
252 border-bottom: 1px solid black;
253 margin: 0;
253 margin: 0;
254 padding: 0;
254 padding: 0;
255 }
255 }
256
256
257 canvas {
257 canvas {
258 position: absolute;
258 position: absolute;
259 z-index: 5;
259 z-index: 5;
260 top: -0.7em;
260 top: -0.7em;
261 margin: 0;
261 margin: 0;
262 }
262 }
263
263
264 ul#graphnodes {
264 ul#graphnodes {
265 position: absolute;
265 position: absolute;
266 z-index: 10;
266 z-index: 10;
267 top: -1.0em;
267 top: -1.0em;
268 list-style: none inside none;
268 list-style: none inside none;
269 padding: 0;
269 padding: 0;
270 }
270 }
271
271
272 ul#nodebgs {
272 ul#nodebgs {
273 list-style: none inside none;
273 list-style: none inside none;
274 padding: 0;
274 padding: 0;
275 margin: 0;
275 margin: 0;
276 top: -0.7em;
276 top: -0.7em;
277 }
277 }
278
278
279 ul#graphnodes li, ul#nodebgs li {
279 ul#graphnodes li, ul#nodebgs li {
280 height: 39px;
280 height: 39px;
281 }
281 }
282
282
283 ul#graphnodes li .info {
283 ul#graphnodes li .info {
284 display: block;
284 display: block;
285 font-size: 70%;
285 font-size: 70%;
286 position: relative;
286 position: relative;
287 top: -3px;
287 top: -3px;
288 }
288 }
289
289
290 /* Comparison */
290 /* Comparison */
291 .legend {
291 .legend {
292 padding: 1.5% 0 1.5% 0;
292 padding: 1.5% 0 1.5% 0;
293 }
293 }
294
294
295 .legendinfo {
295 .legendinfo {
296 border: 1px solid #999;
296 border: 1px solid #999;
297 font-size: 80%;
297 font-size: 80%;
298 text-align: center;
298 text-align: center;
299 padding: 0.5%;
299 padding: 0.5%;
300 }
300 }
301
301
302 .equal {
302 .equal {
303 background-color: #ffffff;
303 background-color: #ffffff;
304 }
304 }
305
305
306 .delete {
306 .delete {
307 background-color: #faa;
307 background-color: #faa;
308 color: #333;
308 color: #333;
309 }
309 }
310
310
311 .insert {
311 .insert {
312 background-color: #ffa;
312 background-color: #ffa;
313 }
313 }
314
314
315 .replace {
315 .replace {
316 background-color: #e8e8e8;
316 background-color: #e8e8e8;
317 }
317 }
318
318
319 .header {
319 .header {
320 text-align: center;
320 text-align: center;
321 }
321 }
322
322
323 .block {
323 .block {
324 border-top: 1px solid #999;
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 /*** Initial Settings ***/
1 /*** Initial Settings ***/
2 * {
2 * {
3 margin: 0;
3 margin: 0;
4 padding: 0;
4 padding: 0;
5 font-weight: normal;
5 font-weight: normal;
6 font-style: normal;
6 font-style: normal;
7 }
7 }
8
8
9 html {
9 html {
10 font-size: 100%;
10 font-size: 100%;
11 font-family: sans-serif;
11 font-family: sans-serif;
12 }
12 }
13
13
14 body {
14 body {
15 font-size: 77%;
15 font-size: 77%;
16 margin: 15px 50px;
16 margin: 15px 50px;
17 background: #4B4B4C;
17 background: #4B4B4C;
18 }
18 }
19
19
20 a {
20 a {
21 color:#0000cc;
21 color:#0000cc;
22 text-decoration: none;
22 text-decoration: none;
23 }
23 }
24 /*** end of Initial Settings ***/
24 /*** end of Initial Settings ***/
25
25
26
26
27 /** common settings **/
27 /** common settings **/
28 div#container {
28 div#container {
29 background: #FFFFFF;
29 background: #FFFFFF;
30 position: relative;
30 position: relative;
31 color: #666;
31 color: #666;
32 }
32 }
33
33
34 div.page-header {
34 div.page-header {
35 padding: 50px 20px 0;
35 padding: 50px 20px 0;
36 background: #006699 top left repeat-x;
36 background: #006699 top left repeat-x;
37 position: relative;
37 position: relative;
38 }
38 }
39 div.page-header h1 {
39 div.page-header h1 {
40 margin: 10px 0 30px;
40 margin: 10px 0 30px;
41 font-size: 1.8em;
41 font-size: 1.8em;
42 font-weight: bold;
42 font-weight: bold;
43 font-family: osaka,'MS P Gothic', Georgia, serif;
43 font-family: osaka,'MS P Gothic', Georgia, serif;
44 letter-spacing: 1px;
44 letter-spacing: 1px;
45 color: #DDD;
45 color: #DDD;
46 }
46 }
47 div.page-header h1 a {
47 div.page-header h1 a {
48 font-weight: bold;
48 font-weight: bold;
49 color: #FFF;
49 color: #FFF;
50 }
50 }
51 div.page-header a {
51 div.page-header a {
52 text-decoration: none;
52 text-decoration: none;
53 }
53 }
54
54
55 div.page-header form {
55 div.page-header form {
56 position: absolute;
56 position: absolute;
57 margin-bottom: 2px;
57 margin-bottom: 2px;
58 bottom: 0;
58 bottom: 0;
59 right: 20px;
59 right: 20px;
60 }
60 }
61 div.page-header form label {
61 div.page-header form label {
62 color: #DDD;
62 color: #DDD;
63 }
63 }
64 div.page-header form input {
64 div.page-header form input {
65 padding: 2px;
65 padding: 2px;
66 border: solid 1px #DDD;
66 border: solid 1px #DDD;
67 }
67 }
68 div.page-header form dl {
68 div.page-header form dl {
69 overflow: hidden;
69 overflow: hidden;
70 }
70 }
71 div.page-header form dl dt {
71 div.page-header form dl dt {
72 font-size: 1.2em;
72 font-size: 1.2em;
73 }
73 }
74 div.page-header form dl dt,
74 div.page-header form dl dt,
75 div.page-header form dl dd {
75 div.page-header form dl dd {
76 margin: 0 0 0 5px;
76 margin: 0 0 0 5px;
77 float: left;
77 float: left;
78 height: 24px;
78 height: 24px;
79 line-height: 20px;
79 line-height: 20px;
80 }
80 }
81
81
82 ul.page-nav {
82 ul.page-nav {
83 margin: 10px 0 0 0;
83 margin: 10px 0 0 0;
84 list-style-type: none;
84 list-style-type: none;
85 overflow: hidden;
85 overflow: hidden;
86 width: 900px;
86 width: 900px;
87 }
87 }
88 ul.page-nav li {
88 ul.page-nav li {
89 margin: 0 2px 0 0;
89 margin: 0 2px 0 0;
90 float: left;
90 float: left;
91 width: 80px;
91 width: 80px;
92 height: 24px;
92 height: 24px;
93 font-size: 1.1em;
93 font-size: 1.1em;
94 line-height: 24px;
94 line-height: 24px;
95 text-align: center;
95 text-align: center;
96 }
96 }
97 ul.page-nav li.current {
97 ul.page-nav li.current {
98 background: #FFF;
98 background: #FFF;
99 }
99 }
100 ul.page-nav li a {
100 ul.page-nav li a {
101 height: 24px;
101 height: 24px;
102 color: #666;
102 color: #666;
103 background: #DDD;
103 background: #DDD;
104 display: block;
104 display: block;
105 text-decoration: none;
105 text-decoration: none;
106 }
106 }
107 ul.page-nav li a:hover {
107 ul.page-nav li a:hover {
108 color:#333;
108 color:#333;
109 background: #FFF;
109 background: #FFF;
110 }
110 }
111
111
112 ul.submenu {
112 ul.submenu {
113 margin: 10px 0 -10px 20px;
113 margin: 10px 0 -10px 20px;
114 list-style-type: none;
114 list-style-type: none;
115 }
115 }
116 ul.submenu li {
116 ul.submenu li {
117 margin: 0 10px 0 0;
117 margin: 0 10px 0 0;
118 font-size: 1.2em;
118 font-size: 1.2em;
119 display: inline;
119 display: inline;
120 }
120 }
121
121
122 h2 {
122 h2 {
123 margin: 20px 0 10px;
123 margin: 20px 0 10px;
124 height: 30px;
124 height: 30px;
125 line-height: 30px;
125 line-height: 30px;
126 text-indent: 20px;
126 text-indent: 20px;
127 background: #FFF;
127 background: #FFF;
128 font-size: 1.2em;
128 font-size: 1.2em;
129 border-top: dotted 1px #D5E1E6;
129 border-top: dotted 1px #D5E1E6;
130 font-weight: bold;
130 font-weight: bold;
131 }
131 }
132 h2.no-link {
132 h2.no-link {
133 color:#006699;
133 color:#006699;
134 }
134 }
135 h2.no-border {
135 h2.no-border {
136 color: #FFF;
136 color: #FFF;
137 background: #006699;
137 background: #006699;
138 border: 0;
138 border: 0;
139 }
139 }
140 h2 a {
140 h2 a {
141 font-weight:bold;
141 font-weight:bold;
142 color:#006699;
142 color:#006699;
143 }
143 }
144
144
145 div.page-path {
145 div.page-path {
146 text-align: right;
146 text-align: right;
147 padding: 20px 30px 10px 0;
147 padding: 20px 30px 10px 0;
148 border:solid #d9d8d1;
148 border:solid #d9d8d1;
149 border-width:0px 0px 1px;
149 border-width:0px 0px 1px;
150 font-size: 1.2em;
150 font-size: 1.2em;
151 }
151 }
152
152
153 div.page-footer {
153 div.page-footer {
154 margin: 50px 0 0;
154 margin: 50px 0 0;
155 position: relative;
155 position: relative;
156 }
156 }
157 div.page-footer p {
157 div.page-footer p {
158 position: relative;
158 position: relative;
159 left: 20px;
159 left: 20px;
160 bottom: 5px;
160 bottom: 5px;
161 font-size: 1.2em;
161 font-size: 1.2em;
162 }
162 }
163
163
164 ul.rss-logo {
164 ul.rss-logo {
165 position: absolute;
165 position: absolute;
166 top: -10px;
166 top: -10px;
167 right: 20px;
167 right: 20px;
168 height: 20px;
168 height: 20px;
169 list-style-type: none;
169 list-style-type: none;
170 }
170 }
171 ul.rss-logo li {
171 ul.rss-logo li {
172 display: inline;
172 display: inline;
173 }
173 }
174 ul.rss-logo li a {
174 ul.rss-logo li a {
175 padding: 3px 6px;
175 padding: 3px 6px;
176 line-height: 10px;
176 line-height: 10px;
177 border:1px solid;
177 border:1px solid;
178 border-color:#fcc7a5 #7d3302 #3e1a01 #ff954e;
178 border-color:#fcc7a5 #7d3302 #3e1a01 #ff954e;
179 color:#ffffff;
179 color:#ffffff;
180 background-color:#ff6600;
180 background-color:#ff6600;
181 font-weight:bold;
181 font-weight:bold;
182 font-family:sans-serif;
182 font-family:sans-serif;
183 font-size:10px;
183 font-size:10px;
184 text-align:center;
184 text-align:center;
185 text-decoration:none;
185 text-decoration:none;
186 }
186 }
187 div.rss-logo li a:hover {
187 div.rss-logo li a:hover {
188 background-color:#ee5500;
188 background-color:#ee5500;
189 }
189 }
190
190
191 p.normal {
191 p.normal {
192 margin: 20px 0 20px 30px;
192 margin: 20px 0 20px 30px;
193 font-size: 1.2em;
193 font-size: 1.2em;
194 }
194 }
195
195
196 table {
196 table {
197 margin: 10px 0 0 20px;
197 margin: 10px 0 0 20px;
198 width: 95%;
198 width: 95%;
199 border-collapse: collapse;
199 border-collapse: collapse;
200 }
200 }
201 table tr td {
201 table tr td {
202 font-size: 1.1em;
202 font-size: 1.1em;
203 }
203 }
204 table tr td.nowrap {
204 table tr td.nowrap {
205 white-space: nowrap;
205 white-space: nowrap;
206 }
206 }
207 table tr td.closed {
207 table tr td.closed {
208 background-color: #99f;
208 background-color: #99f;
209 }
209 }
210 /*
210 /*
211 table tr.parity0:hover,
211 table tr.parity0:hover,
212 table tr.parity1:hover {
212 table tr.parity1:hover {
213 background: #D5E1E6;
213 background: #D5E1E6;
214 }
214 }
215 */
215 */
216 table tr.parity0 {
216 table tr.parity0 {
217 background: #F1F6F7;
217 background: #F1F6F7;
218 }
218 }
219 table tr.parity1 {
219 table tr.parity1 {
220 background: #FFFFFF;
220 background: #FFFFFF;
221 }
221 }
222 table tr td {
222 table tr td {
223 padding: 5px 5px;
223 padding: 5px 5px;
224 }
224 }
225 table.annotated tr td {
225 table.annotated tr td {
226 padding: 0px 5px;
226 padding: 0px 5px;
227 }
227 }
228
228
229 span.logtags span {
229 span.logtags span {
230 padding: 2px 6px;
230 padding: 2px 6px;
231 font-weight: normal;
231 font-weight: normal;
232 font-size: 11px;
232 font-size: 11px;
233 border: 1px solid;
233 border: 1px solid;
234 background-color: #ffaaff;
234 background-color: #ffaaff;
235 border-color: #ffccff #ff00ee #ff00ee #ffccff;
235 border-color: #ffccff #ff00ee #ff00ee #ffccff;
236 }
236 }
237 span.logtags span.tagtag {
237 span.logtags span.tagtag {
238 background-color: #ffffaa;
238 background-color: #ffffaa;
239 border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
239 border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
240 }
240 }
241 span.logtags span.branchtag {
241 span.logtags span.branchtag {
242 background-color: #aaffaa;
242 background-color: #aaffaa;
243 border-color: #ccffcc #00cc33 #00cc33 #ccffcc;
243 border-color: #ccffcc #00cc33 #00cc33 #ccffcc;
244 }
244 }
245 span.logtags span.inbranchtag {
245 span.logtags span.inbranchtag {
246 background-color: #d5dde6;
246 background-color: #d5dde6;
247 border-color: #e3ecf4 #9398f4 #9398f4 #e3ecf4;
247 border-color: #e3ecf4 #9398f4 #9398f4 #e3ecf4;
248 }
248 }
249 span.logtags span.bookmarktag {
249 span.logtags span.bookmarktag {
250 background-color: #afdffa;
250 background-color: #afdffa;
251 border-color: #ccecff #46ace6 #46ace6 #ccecff;
251 border-color: #ccecff #46ace6 #46ace6 #ccecff;
252 }
252 }
253
253
254 div.diff pre {
254 div.diff pre {
255 margin: 10px 0 0 0;
255 margin: 10px 0 0 0;
256 }
256 }
257 div.diff pre span {
257 div.diff pre span {
258 font-family: monospace;
258 font-family: monospace;
259 white-space: pre;
259 white-space: pre;
260 font-size: 1.2em;
260 font-size: 1.2em;
261 padding: 3px 0;
261 padding: 3px 0;
262 }
262 }
263 td.source {
263 td.source {
264 white-space: pre;
264 white-space: pre;
265 font-family: monospace;
265 font-family: monospace;
266 margin: 10px 30px 0;
266 margin: 10px 30px 0;
267 font-size: 1.2em;
267 font-size: 1.2em;
268 font-family: monospace;
268 font-family: monospace;
269 }
269 }
270 div.source div.parity0,
270 div.source div.parity0,
271 div.source div.parity1 {
271 div.source div.parity1 {
272 padding: 1px;
272 padding: 1px;
273 font-size: 1.2em;
273 font-size: 1.2em;
274 }
274 }
275 div.source div.parity0 {
275 div.source div.parity0 {
276 background: #F1F6F7;
276 background: #F1F6F7;
277 }
277 }
278 div.source div.parity1 {
278 div.source div.parity1 {
279 background: #FFFFFF;
279 background: #FFFFFF;
280 }
280 }
281 div.parity0:hover,
281 div.parity0:hover,
282 div.parity1:hover {
282 div.parity1:hover {
283 background: #D5E1E6;
283 background: #D5E1E6;
284 }
284 }
285 .linenr {
285 .linenr {
286 color: #999;
286 color: #999;
287 text-align: right;
287 text-align: right;
288 }
288 }
289 .lineno {
289 .lineno {
290 text-align: right;
290 text-align: right;
291 }
291 }
292 .lineno a {
292 .lineno a {
293 color: #999;
293 color: #999;
294 }
294 }
295 td.linenr {
295 td.linenr {
296 width: 60px;
296 width: 60px;
297 }
297 }
298
298
299 div#powered-by {
299 div#powered-by {
300 position: absolute;
300 position: absolute;
301 width: 75px;
301 width: 75px;
302 top: 15px;
302 top: 15px;
303 right: 20px;
303 right: 20px;
304 font-size: 1.2em;
304 font-size: 1.2em;
305 }
305 }
306 div#powered-by a {
306 div#powered-by a {
307 color: #EEE;
307 color: #EEE;
308 text-decoration: none;
308 text-decoration: none;
309 }
309 }
310 div#powered-by a:hover {
310 div#powered-by a:hover {
311 text-decoration: underline;
311 text-decoration: underline;
312 }
312 }
313 /*
313 /*
314 div#monoblue-corner-top-left {
314 div#monoblue-corner-top-left {
315 position: absolute;
315 position: absolute;
316 top: 0;
316 top: 0;
317 left: 0;
317 left: 0;
318 width: 10px;
318 width: 10px;
319 height: 10px;
319 height: 10px;
320 background: url(./monoblue-corner.png) top left no-repeat !important;
320 background: url(./monoblue-corner.png) top left no-repeat !important;
321 background: none;
321 background: none;
322 }
322 }
323 div#monoblue-corner-top-right {
323 div#monoblue-corner-top-right {
324 position: absolute;
324 position: absolute;
325 top: 0;
325 top: 0;
326 right: 0;
326 right: 0;
327 width: 10px;
327 width: 10px;
328 height: 10px;
328 height: 10px;
329 background: url(./monoblue-corner.png) top right no-repeat !important;
329 background: url(./monoblue-corner.png) top right no-repeat !important;
330 background: none;
330 background: none;
331 }
331 }
332 div#monoblue-corner-bottom-left {
332 div#monoblue-corner-bottom-left {
333 position: absolute;
333 position: absolute;
334 bottom: 0;
334 bottom: 0;
335 left: 0;
335 left: 0;
336 width: 10px;
336 width: 10px;
337 height: 10px;
337 height: 10px;
338 background: url(./monoblue-corner.png) bottom left no-repeat !important;
338 background: url(./monoblue-corner.png) bottom left no-repeat !important;
339 background: none;
339 background: none;
340 }
340 }
341 div#monoblue-corner-bottom-right {
341 div#monoblue-corner-bottom-right {
342 position: absolute;
342 position: absolute;
343 bottom: 0;
343 bottom: 0;
344 right: 0;
344 right: 0;
345 width: 10px;
345 width: 10px;
346 height: 10px;
346 height: 10px;
347 background: url(./monoblue-corner.png) bottom right no-repeat !important;
347 background: url(./monoblue-corner.png) bottom right no-repeat !important;
348 background: none;
348 background: none;
349 }
349 }
350 */
350 */
351 /** end of common settings **/
351 /** end of common settings **/
352
352
353 /** summary **/
353 /** summary **/
354 dl.overview {
354 dl.overview {
355 margin: 0 0 0 30px;
355 margin: 0 0 0 30px;
356 font-size: 1.1em;
356 font-size: 1.1em;
357 overflow: hidden;
357 overflow: hidden;
358 }
358 }
359 dl.overview dt,
359 dl.overview dt,
360 dl.overview dd {
360 dl.overview dd {
361 margin: 5px 0;
361 margin: 5px 0;
362 float: left;
362 float: left;
363 }
363 }
364 dl.overview dt {
364 dl.overview dt {
365 clear: left;
365 clear: left;
366 font-weight: bold;
366 font-weight: bold;
367 width: 150px;
367 width: 150px;
368 }
368 }
369 /** end of summary **/
369 /** end of summary **/
370
370
371 /** chagelog **/
371 /** chagelog **/
372 h3.changelog {
372 h3.changelog {
373 margin: 20px 0 5px 30px;
373 margin: 20px 0 5px 30px;
374 padding: 0 0 2px;
374 padding: 0 0 2px;
375 font-size: 1.4em;
375 font-size: 1.4em;
376 border-bottom: dotted 1px #D5E1E6;
376 border-bottom: dotted 1px #D5E1E6;
377 }
377 }
378 ul.changelog-entry {
378 ul.changelog-entry {
379 margin: 0 0 10px 30px;
379 margin: 0 0 10px 30px;
380 list-style-type: none;
380 list-style-type: none;
381 position: relative;
381 position: relative;
382 }
382 }
383 ul.changelog-entry li span.revdate {
383 ul.changelog-entry li span.revdate {
384 font-size: 1.1em;
384 font-size: 1.1em;
385 }
385 }
386 ul.changelog-entry li.age {
386 ul.changelog-entry li.age {
387 position: absolute;
387 position: absolute;
388 top: -25px;
388 top: -25px;
389 right: 10px;
389 right: 10px;
390 font-size: 1.4em;
390 font-size: 1.4em;
391 color: #CCC;
391 color: #CCC;
392 font-weight: bold;
392 font-weight: bold;
393 font-style: italic;
393 font-style: italic;
394 }
394 }
395 ul.changelog-entry li span.name {
395 ul.changelog-entry li span.name {
396 font-size: 1.2em;
396 font-size: 1.2em;
397 font-weight: bold;
397 font-weight: bold;
398 }
398 }
399 ul.changelog-entry li.description {
399 ul.changelog-entry li.description {
400 margin: 10px 0 0;
400 margin: 10px 0 0;
401 font-size: 1.1em;
401 font-size: 1.1em;
402 }
402 }
403 /** end of changelog **/
403 /** end of changelog **/
404
404
405 /** file **/
405 /** file **/
406 p.files {
406 p.files {
407 margin: 0 0 0 20px;
407 margin: 0 0 0 20px;
408 font-size: 2.0em;
408 font-size: 2.0em;
409 font-weight: bold;
409 font-weight: bold;
410 }
410 }
411 /** end of file **/
411 /** end of file **/
412
412
413 /** changeset **/
413 /** changeset **/
414 h3.changeset {
414 h3.changeset {
415 margin: 20px 0 5px 20px;
415 margin: 20px 0 5px 20px;
416 padding: 0 0 2px;
416 padding: 0 0 2px;
417 font-size: 1.6em;
417 font-size: 1.6em;
418 border-bottom: dotted 1px #D5E1E6;
418 border-bottom: dotted 1px #D5E1E6;
419 }
419 }
420 p.changeset-age {
420 p.changeset-age {
421 position: relative;
421 position: relative;
422 }
422 }
423 p.changeset-age span {
423 p.changeset-age span {
424 position: absolute;
424 position: absolute;
425 top: -25px;
425 top: -25px;
426 right: 10px;
426 right: 10px;
427 font-size: 1.4em;
427 font-size: 1.4em;
428 color: #CCC;
428 color: #CCC;
429 font-weight: bold;
429 font-weight: bold;
430 font-style: italic;
430 font-style: italic;
431 }
431 }
432 p.description {
432 p.description {
433 margin: 10px 30px 0 30px;
433 margin: 10px 30px 0 30px;
434 padding: 10px;
434 padding: 10px;
435 border: solid 1px #CCC;
435 border: solid 1px #CCC;
436 font-size: 1.2em;
436 font-size: 1.2em;
437 }
437 }
438 /** end of changeset **/
438 /** end of changeset **/
439
439
440 /** canvas **/
440 /** canvas **/
441 div#wrapper {
441 div#wrapper {
442 position: relative;
442 position: relative;
443 font-size: 1.2em;
443 font-size: 1.2em;
444 }
444 }
445
445
446 canvas {
446 canvas {
447 position: absolute;
447 position: absolute;
448 z-index: 5;
448 z-index: 5;
449 top: -0.7em;
449 top: -0.7em;
450 }
450 }
451
451
452 ul#nodebgs li.parity0 {
452 ul#nodebgs li.parity0 {
453 background: #F1F6F7;
453 background: #F1F6F7;
454 }
454 }
455
455
456 ul#nodebgs li.parity1 {
456 ul#nodebgs li.parity1 {
457 background: #FFFFFF;
457 background: #FFFFFF;
458 }
458 }
459
459
460 ul#graphnodes {
460 ul#graphnodes {
461 position: absolute;
461 position: absolute;
462 z-index: 10;
462 z-index: 10;
463 top: 7px;
463 top: 7px;
464 list-style: none inside none;
464 list-style: none inside none;
465 }
465 }
466
466
467 ul#nodebgs {
467 ul#nodebgs {
468 list-style: none inside none;
468 list-style: none inside none;
469 }
469 }
470
470
471 ul#graphnodes li, ul#nodebgs li {
471 ul#graphnodes li, ul#nodebgs li {
472 height: 39px;
472 height: 39px;
473 }
473 }
474
474
475 ul#graphnodes li .info {
475 ul#graphnodes li .info {
476 display: block;
476 display: block;
477 position: relative;
477 position: relative;
478 }
478 }
479 /** end of canvas **/
479 /** end of canvas **/
480
480
481 /** comparison **/
481 /** comparison **/
482 .legend {
482 .legend {
483 margin-left: 20px;
483 margin-left: 20px;
484 padding: 1.5% 0 1.5% 0;
484 padding: 1.5% 0 1.5% 0;
485 }
485 }
486
486
487 .legendinfo {
487 .legendinfo {
488 border: 1px solid #999;
488 border: 1px solid #999;
489 font-size: 80%;
489 font-size: 80%;
490 text-align: center;
490 text-align: center;
491 padding: 0.5%;
491 padding: 0.5%;
492 }
492 }
493
493
494 .equal {
494 .equal {
495 background-color: #ffffff;
495 background-color: #ffffff;
496 }
496 }
497
497
498 .delete {
498 .delete {
499 background-color: #faa;
499 background-color: #faa;
500 color: #333;
500 color: #333;
501 }
501 }
502
502
503 .insert {
503 .insert {
504 background-color: #ffa;
504 background-color: #ffa;
505 }
505 }
506
506
507 .replace {
507 .replace {
508 background-color: #e8e8e8;
508 background-color: #e8e8e8;
509 }
509 }
510
510
511 .comparison {
511 .comparison {
512 overflow-x: auto;
512 overflow-x: auto;
513 }
513 }
514
514
515 .comparison table td {
515 .comparison table td {
516 padding: 0px 5px;
516 padding: 0px 5px;
517 }
517 }
518
518
519 .header th {
519 .header th {
520 font-weight: bold;
520 font-weight: bold;
521 }
521 }
522
522
523 .block {
523 .block {
524 border-top: 1px solid #999;
524 border-top: 1px solid #999;
525 }
525 }
526 /** end of comparison **/
526 /** end of comparison **/
527
528 .breadcrumb a:hover {
529 text-decoration:underline;
530 }
@@ -1,320 +1,328 b''
1 body {
1 body {
2 margin: 0;
2 margin: 0;
3 padding: 0;
3 padding: 0;
4 background: white;
4 background: white;
5 font-family: sans-serif;
5 font-family: sans-serif;
6 }
6 }
7
7
8 .container {
8 .container {
9 padding-left: 115px;
9 padding-left: 115px;
10 }
10 }
11
11
12 .main {
12 .main {
13 position: relative;
13 position: relative;
14 background: white;
14 background: white;
15 padding: 2em 2em 2em 0;
15 padding: 2em 2em 2em 0;
16 }
16 }
17
17
18 #.main {
18 #.main {
19 width: 98%;
19 width: 98%;
20 }
20 }
21
21
22 .overflow {
22 .overflow {
23 width: 100%;
23 width: 100%;
24 overflow: auto;
24 overflow: auto;
25 }
25 }
26
26
27 .menu {
27 .menu {
28 width: 90px;
28 width: 90px;
29 margin: 0;
29 margin: 0;
30 font-size: 80%;
30 font-size: 80%;
31 text-align: left;
31 text-align: left;
32 position: absolute;
32 position: absolute;
33 top: 20px;
33 top: 20px;
34 left: 20px;
34 left: 20px;
35 right: auto;
35 right: auto;
36 }
36 }
37
37
38 .menu ul {
38 .menu ul {
39 list-style: none;
39 list-style: none;
40 padding: 0;
40 padding: 0;
41 margin: 10px 0 0 0;
41 margin: 10px 0 0 0;
42 border-left: 2px solid #999;
42 border-left: 2px solid #999;
43 }
43 }
44
44
45 .menu li {
45 .menu li {
46 margin-bottom: 3px;
46 margin-bottom: 3px;
47 padding: 2px 4px;
47 padding: 2px 4px;
48 background: white;
48 background: white;
49 color: black;
49 color: black;
50 font-weight: normal;
50 font-weight: normal;
51 }
51 }
52
52
53 .menu li.active {
53 .menu li.active {
54 font-weight: bold;
54 font-weight: bold;
55 }
55 }
56
56
57 .menu img {
57 .menu img {
58 width: 75px;
58 width: 75px;
59 height: 90px;
59 height: 90px;
60 border: 0;
60 border: 0;
61 }
61 }
62
62
63 .atom-logo img{
63 .atom-logo img{
64 width: 14px;
64 width: 14px;
65 height: 14px;
65 height: 14px;
66 border: 0;
66 border: 0;
67 }
67 }
68
68
69 .menu a { color: black; display: block; }
69 .menu a { color: black; display: block; }
70
70
71 .search {
71 .search {
72 position: absolute;
72 position: absolute;
73 top: .7em;
73 top: .7em;
74 right: 2em;
74 right: 2em;
75 }
75 }
76
76
77 form.search div#hint {
77 form.search div#hint {
78 display: none;
78 display: none;
79 position: absolute;
79 position: absolute;
80 top: 40px;
80 top: 40px;
81 right: 0px;
81 right: 0px;
82 width: 190px;
82 width: 190px;
83 padding: 5px;
83 padding: 5px;
84 background: #ffc;
84 background: #ffc;
85 font-size: 70%;
85 font-size: 70%;
86 border: 1px solid yellow;
86 border: 1px solid yellow;
87 -moz-border-radius: 5px; /* this works only in camino/firefox */
87 -moz-border-radius: 5px; /* this works only in camino/firefox */
88 -webkit-border-radius: 5px; /* this is just for Safari */
88 -webkit-border-radius: 5px; /* this is just for Safari */
89 }
89 }
90
90
91 form.search:hover div#hint { display: block; }
91 form.search:hover div#hint { display: block; }
92
92
93 a { text-decoration:none; }
93 a { text-decoration:none; }
94 .age { white-space:nowrap; }
94 .age { white-space:nowrap; }
95 .date { white-space:nowrap; }
95 .date { white-space:nowrap; }
96 .indexlinks { white-space:nowrap; }
96 .indexlinks { white-space:nowrap; }
97 .parity0 { background-color: #f0f0f0; }
97 .parity0 { background-color: #f0f0f0; }
98 .parity1 { background-color: white; }
98 .parity1 { background-color: white; }
99 .plusline { color: green; }
99 .plusline { color: green; }
100 .minusline { color: #dc143c; } /* crimson */
100 .minusline { color: #dc143c; } /* crimson */
101 .atline { color: purple; }
101 .atline { color: purple; }
102
102
103 .diffstat-file {
103 .diffstat-file {
104 white-space: nowrap;
104 white-space: nowrap;
105 font-size: 90%;
105 font-size: 90%;
106 }
106 }
107 .diffstat-total {
107 .diffstat-total {
108 white-space: nowrap;
108 white-space: nowrap;
109 font-size: 90%;
109 font-size: 90%;
110 }
110 }
111 .diffstat-graph {
111 .diffstat-graph {
112 width: 100%;
112 width: 100%;
113 }
113 }
114 .diffstat-add {
114 .diffstat-add {
115 background-color: green;
115 background-color: green;
116 float: left;
116 float: left;
117 }
117 }
118 .diffstat-remove {
118 .diffstat-remove {
119 background-color: red;
119 background-color: red;
120 float: left;
120 float: left;
121 }
121 }
122
122
123 .navigate {
123 .navigate {
124 text-align: right;
124 text-align: right;
125 font-size: 60%;
125 font-size: 60%;
126 margin: 1em 0;
126 margin: 1em 0;
127 }
127 }
128
128
129 .tag {
129 .tag {
130 color: #999;
130 color: #999;
131 font-size: 70%;
131 font-size: 70%;
132 font-weight: normal;
132 font-weight: normal;
133 margin-left: .5em;
133 margin-left: .5em;
134 vertical-align: baseline;
134 vertical-align: baseline;
135 }
135 }
136
136
137 .branchhead {
137 .branchhead {
138 color: #000;
138 color: #000;
139 font-size: 80%;
139 font-size: 80%;
140 font-weight: normal;
140 font-weight: normal;
141 margin-left: .5em;
141 margin-left: .5em;
142 vertical-align: baseline;
142 vertical-align: baseline;
143 }
143 }
144
144
145 ul#graphnodes .branchhead {
145 ul#graphnodes .branchhead {
146 font-size: 75%;
146 font-size: 75%;
147 }
147 }
148
148
149 .branchname {
149 .branchname {
150 color: #000;
150 color: #000;
151 font-size: 60%;
151 font-size: 60%;
152 font-weight: normal;
152 font-weight: normal;
153 margin-left: .5em;
153 margin-left: .5em;
154 vertical-align: baseline;
154 vertical-align: baseline;
155 }
155 }
156
156
157 h3 .branchname {
157 h3 .branchname {
158 font-size: 80%;
158 font-size: 80%;
159 }
159 }
160
160
161 /* Common */
161 /* Common */
162 pre { margin: 0; }
162 pre { margin: 0; }
163
163
164 h2 { font-size: 120%; border-bottom: 1px solid #999; }
164 h2 { font-size: 120%; border-bottom: 1px solid #999; }
165 h2 a { color: #000; }
165 h2 a { color: #000; }
166 h3 {
166 h3 {
167 margin-top: -.7em;
167 margin-top: -.7em;
168 font-size: 100%;
168 font-size: 100%;
169 }
169 }
170
170
171 /* log and tags tables */
171 /* log and tags tables */
172 .bigtable {
172 .bigtable {
173 border-bottom: 1px solid #999;
173 border-bottom: 1px solid #999;
174 border-collapse: collapse;
174 border-collapse: collapse;
175 font-size: 90%;
175 font-size: 90%;
176 width: 100%;
176 width: 100%;
177 font-weight: normal;
177 font-weight: normal;
178 text-align: left;
178 text-align: left;
179 }
179 }
180
180
181 .bigtable td {
181 .bigtable td {
182 vertical-align: top;
182 vertical-align: top;
183 }
183 }
184
184
185 .bigtable th {
185 .bigtable th {
186 padding: 1px 4px;
186 padding: 1px 4px;
187 border-bottom: 1px solid #999;
187 border-bottom: 1px solid #999;
188 }
188 }
189 .bigtable tr { border: none; }
189 .bigtable tr { border: none; }
190 .bigtable .age { width: 7em; }
190 .bigtable .age { width: 7em; }
191 .bigtable .author { width: 12em; }
191 .bigtable .author { width: 12em; }
192 .bigtable .description { }
192 .bigtable .description { }
193 .bigtable .description .base { font-size: 70%; float: right; line-height: 1.66; }
193 .bigtable .description .base { font-size: 70%; float: right; line-height: 1.66; }
194 .bigtable .node { width: 5em; font-family: monospace;}
194 .bigtable .node { width: 5em; font-family: monospace;}
195 .bigtable .permissions { width: 8em; text-align: left;}
195 .bigtable .permissions { width: 8em; text-align: left;}
196 .bigtable .size { width: 5em; text-align: right; }
196 .bigtable .size { width: 5em; text-align: right; }
197 .bigtable .annotate { text-align: right; }
197 .bigtable .annotate { text-align: right; }
198 .bigtable td.annotate { font-size: smaller; }
198 .bigtable td.annotate { font-size: smaller; }
199 .bigtable td.source { font-size: inherit; }
199 .bigtable td.source { font-size: inherit; }
200
200
201 .source, .sourcefirst, .sourcelast {
201 .source, .sourcefirst, .sourcelast {
202 font-family: monospace;
202 font-family: monospace;
203 white-space: pre;
203 white-space: pre;
204 padding: 1px 4px;
204 padding: 1px 4px;
205 font-size: 90%;
205 font-size: 90%;
206 }
206 }
207 .sourcefirst { border-bottom: 1px solid #999; font-weight: bold; }
207 .sourcefirst { border-bottom: 1px solid #999; font-weight: bold; }
208 .sourcelast { border-top: 1px solid #999; }
208 .sourcelast { border-top: 1px solid #999; }
209 .source a { color: #999; font-size: smaller; font-family: monospace;}
209 .source a { color: #999; font-size: smaller; font-family: monospace;}
210 .bottomline { border-bottom: 1px solid #999; }
210 .bottomline { border-bottom: 1px solid #999; }
211
211
212 .fileline { font-family: monospace; }
212 .fileline { font-family: monospace; }
213 .fileline img { border: 0; }
213 .fileline img { border: 0; }
214
214
215 .tagEntry .closed { color: #99f; }
215 .tagEntry .closed { color: #99f; }
216
216
217 /* Changeset entry */
217 /* Changeset entry */
218 #changesetEntry {
218 #changesetEntry {
219 border-collapse: collapse;
219 border-collapse: collapse;
220 font-size: 90%;
220 font-size: 90%;
221 width: 100%;
221 width: 100%;
222 margin-bottom: 1em;
222 margin-bottom: 1em;
223 }
223 }
224
224
225 #changesetEntry th {
225 #changesetEntry th {
226 padding: 1px 4px;
226 padding: 1px 4px;
227 width: 4em;
227 width: 4em;
228 text-align: right;
228 text-align: right;
229 font-weight: normal;
229 font-weight: normal;
230 color: #999;
230 color: #999;
231 margin-right: .5em;
231 margin-right: .5em;
232 vertical-align: top;
232 vertical-align: top;
233 }
233 }
234
234
235 div.description {
235 div.description {
236 border-left: 2px solid #999;
236 border-left: 2px solid #999;
237 margin: 1em 0 1em 0;
237 margin: 1em 0 1em 0;
238 padding: .3em;
238 padding: .3em;
239 white-space: pre;
239 white-space: pre;
240 font-family: monospace;
240 font-family: monospace;
241 }
241 }
242
242
243 /* Graph */
243 /* Graph */
244 div#wrapper {
244 div#wrapper {
245 position: relative;
245 position: relative;
246 border-top: 1px solid black;
246 border-top: 1px solid black;
247 border-bottom: 1px solid black;
247 border-bottom: 1px solid black;
248 margin: 0;
248 margin: 0;
249 padding: 0;
249 padding: 0;
250 }
250 }
251
251
252 canvas {
252 canvas {
253 position: absolute;
253 position: absolute;
254 z-index: 5;
254 z-index: 5;
255 top: -0.7em;
255 top: -0.7em;
256 margin: 0;
256 margin: 0;
257 }
257 }
258
258
259 ul#graphnodes {
259 ul#graphnodes {
260 position: absolute;
260 position: absolute;
261 z-index: 10;
261 z-index: 10;
262 top: -1.0em;
262 top: -1.0em;
263 list-style: none inside none;
263 list-style: none inside none;
264 padding: 0;
264 padding: 0;
265 }
265 }
266
266
267 ul#nodebgs {
267 ul#nodebgs {
268 list-style: none inside none;
268 list-style: none inside none;
269 padding: 0;
269 padding: 0;
270 margin: 0;
270 margin: 0;
271 top: -0.7em;
271 top: -0.7em;
272 }
272 }
273
273
274 ul#graphnodes li, ul#nodebgs li {
274 ul#graphnodes li, ul#nodebgs li {
275 height: 39px;
275 height: 39px;
276 }
276 }
277
277
278 ul#graphnodes li .info {
278 ul#graphnodes li .info {
279 display: block;
279 display: block;
280 font-size: 70%;
280 font-size: 70%;
281 position: relative;
281 position: relative;
282 top: -3px;
282 top: -3px;
283 }
283 }
284
284
285 /* Comparison */
285 /* Comparison */
286 .legend {
286 .legend {
287 padding: 1.5% 0 1.5% 0;
287 padding: 1.5% 0 1.5% 0;
288 }
288 }
289
289
290 .legendinfo {
290 .legendinfo {
291 border: 1px solid #999;
291 border: 1px solid #999;
292 font-size: 80%;
292 font-size: 80%;
293 text-align: center;
293 text-align: center;
294 padding: 0.5%;
294 padding: 0.5%;
295 }
295 }
296
296
297 .equal {
297 .equal {
298 background-color: #ffffff;
298 background-color: #ffffff;
299 }
299 }
300
300
301 .delete {
301 .delete {
302 background-color: #faa;
302 background-color: #faa;
303 color: #333;
303 color: #333;
304 }
304 }
305
305
306 .insert {
306 .insert {
307 background-color: #ffa;
307 background-color: #ffa;
308 }
308 }
309
309
310 .replace {
310 .replace {
311 background-color: #e8e8e8;
311 background-color: #e8e8e8;
312 }
312 }
313
313
314 .header {
314 .header {
315 text-align: center;
315 text-align: center;
316 }
316 }
317
317
318 .block {
318 .block {
319 border-top: 1px solid #999;
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