##// END OF EJS Templates
templatefilters: use \uxxxx style escape for JSON string...
Yuya Nishihara -
r11890:9dac951d stable
parent child Browse files
Show More
@@ -1,221 +1,227
1 # template-filters.py - common template expansion filters
1 # template-filters.py - common template expansion filters
2 #
2 #
3 # Copyright 2005-2008 Matt Mackall <mpm@selenic.com>
3 # Copyright 2005-2008 Matt Mackall <mpm@selenic.com>
4 #
4 #
5 # This software may be used and distributed according to the terms of the
5 # This software may be used and distributed according to the terms of the
6 # GNU General Public License version 2 or any later version.
6 # GNU General Public License version 2 or any later version.
7
7
8 import cgi, re, os, time, urllib
8 import cgi, re, os, time, urllib
9 import util, encoding
9 import util, encoding
10
10
11 def stringify(thing):
11 def stringify(thing):
12 '''turn nested template iterator into string.'''
12 '''turn nested template iterator into string.'''
13 if hasattr(thing, '__iter__') and not isinstance(thing, str):
13 if hasattr(thing, '__iter__') and not isinstance(thing, str):
14 return "".join([stringify(t) for t in thing if t is not None])
14 return "".join([stringify(t) for t in thing if t is not None])
15 return str(thing)
15 return str(thing)
16
16
17 agescales = [("year", 3600 * 24 * 365),
17 agescales = [("year", 3600 * 24 * 365),
18 ("month", 3600 * 24 * 30),
18 ("month", 3600 * 24 * 30),
19 ("week", 3600 * 24 * 7),
19 ("week", 3600 * 24 * 7),
20 ("day", 3600 * 24),
20 ("day", 3600 * 24),
21 ("hour", 3600),
21 ("hour", 3600),
22 ("minute", 60),
22 ("minute", 60),
23 ("second", 1)]
23 ("second", 1)]
24
24
25 def age(date):
25 def age(date):
26 '''turn a (timestamp, tzoff) tuple into an age string.'''
26 '''turn a (timestamp, tzoff) tuple into an age string.'''
27
27
28 def plural(t, c):
28 def plural(t, c):
29 if c == 1:
29 if c == 1:
30 return t
30 return t
31 return t + "s"
31 return t + "s"
32 def fmt(t, c):
32 def fmt(t, c):
33 return "%d %s" % (c, plural(t, c))
33 return "%d %s" % (c, plural(t, c))
34
34
35 now = time.time()
35 now = time.time()
36 then = date[0]
36 then = date[0]
37 if then > now:
37 if then > now:
38 return 'in the future'
38 return 'in the future'
39
39
40 delta = max(1, int(now - then))
40 delta = max(1, int(now - then))
41 if delta > agescales[0][1] * 2:
41 if delta > agescales[0][1] * 2:
42 return util.shortdate(date)
42 return util.shortdate(date)
43
43
44 for t, s in agescales:
44 for t, s in agescales:
45 n = delta // s
45 n = delta // s
46 if n >= 2 or s == 1:
46 if n >= 2 or s == 1:
47 return '%s ago' % fmt(t, n)
47 return '%s ago' % fmt(t, n)
48
48
49 para_re = None
49 para_re = None
50 space_re = None
50 space_re = None
51
51
52 def fill(text, width):
52 def fill(text, width):
53 '''fill many paragraphs.'''
53 '''fill many paragraphs.'''
54 global para_re, space_re
54 global para_re, space_re
55 if para_re is None:
55 if para_re is None:
56 para_re = re.compile('(\n\n|\n\\s*[-*]\\s*)', re.M)
56 para_re = re.compile('(\n\n|\n\\s*[-*]\\s*)', re.M)
57 space_re = re.compile(r' +')
57 space_re = re.compile(r' +')
58
58
59 def findparas():
59 def findparas():
60 start = 0
60 start = 0
61 while True:
61 while True:
62 m = para_re.search(text, start)
62 m = para_re.search(text, start)
63 if not m:
63 if not m:
64 uctext = unicode(text[start:], encoding.encoding)
64 uctext = unicode(text[start:], encoding.encoding)
65 w = len(uctext)
65 w = len(uctext)
66 while 0 < w and uctext[w - 1].isspace():
66 while 0 < w and uctext[w - 1].isspace():
67 w -= 1
67 w -= 1
68 yield (uctext[:w].encode(encoding.encoding),
68 yield (uctext[:w].encode(encoding.encoding),
69 uctext[w:].encode(encoding.encoding))
69 uctext[w:].encode(encoding.encoding))
70 break
70 break
71 yield text[start:m.start(0)], m.group(1)
71 yield text[start:m.start(0)], m.group(1)
72 start = m.end(1)
72 start = m.end(1)
73
73
74 return "".join([space_re.sub(' ', util.wrap(para, width=width)) + rest
74 return "".join([space_re.sub(' ', util.wrap(para, width=width)) + rest
75 for para, rest in findparas()])
75 for para, rest in findparas()])
76
76
77 def firstline(text):
77 def firstline(text):
78 '''return the first line of text'''
78 '''return the first line of text'''
79 try:
79 try:
80 return text.splitlines(True)[0].rstrip('\r\n')
80 return text.splitlines(True)[0].rstrip('\r\n')
81 except IndexError:
81 except IndexError:
82 return ''
82 return ''
83
83
84 def nl2br(text):
84 def nl2br(text):
85 '''replace raw newlines with xhtml line breaks.'''
85 '''replace raw newlines with xhtml line breaks.'''
86 return text.replace('\n', '<br/>\n')
86 return text.replace('\n', '<br/>\n')
87
87
88 def obfuscate(text):
88 def obfuscate(text):
89 text = unicode(text, encoding.encoding, 'replace')
89 text = unicode(text, encoding.encoding, 'replace')
90 return ''.join(['&#%d;' % ord(c) for c in text])
90 return ''.join(['&#%d;' % ord(c) for c in text])
91
91
92 def domain(author):
92 def domain(author):
93 '''get domain of author, or empty string if none.'''
93 '''get domain of author, or empty string if none.'''
94 f = author.find('@')
94 f = author.find('@')
95 if f == -1:
95 if f == -1:
96 return ''
96 return ''
97 author = author[f + 1:]
97 author = author[f + 1:]
98 f = author.find('>')
98 f = author.find('>')
99 if f >= 0:
99 if f >= 0:
100 author = author[:f]
100 author = author[:f]
101 return author
101 return author
102
102
103 def person(author):
103 def person(author):
104 '''get name of author, or else username.'''
104 '''get name of author, or else username.'''
105 if not '@' in author:
105 if not '@' in author:
106 return author
106 return author
107 f = author.find('<')
107 f = author.find('<')
108 if f == -1:
108 if f == -1:
109 return util.shortuser(author)
109 return util.shortuser(author)
110 return author[:f].rstrip()
110 return author[:f].rstrip()
111
111
112 def indent(text, prefix):
112 def indent(text, prefix):
113 '''indent each non-empty line of text after first with prefix.'''
113 '''indent each non-empty line of text after first with prefix.'''
114 lines = text.splitlines()
114 lines = text.splitlines()
115 num_lines = len(lines)
115 num_lines = len(lines)
116 endswithnewline = text[-1:] == '\n'
116 endswithnewline = text[-1:] == '\n'
117 def indenter():
117 def indenter():
118 for i in xrange(num_lines):
118 for i in xrange(num_lines):
119 l = lines[i]
119 l = lines[i]
120 if i and l.strip():
120 if i and l.strip():
121 yield prefix
121 yield prefix
122 yield l
122 yield l
123 if i < num_lines - 1 or endswithnewline:
123 if i < num_lines - 1 or endswithnewline:
124 yield '\n'
124 yield '\n'
125 return "".join(indenter())
125 return "".join(indenter())
126
126
127 def permissions(flags):
127 def permissions(flags):
128 if "l" in flags:
128 if "l" in flags:
129 return "lrwxrwxrwx"
129 return "lrwxrwxrwx"
130 if "x" in flags:
130 if "x" in flags:
131 return "-rwxr-xr-x"
131 return "-rwxr-xr-x"
132 return "-rw-r--r--"
132 return "-rw-r--r--"
133
133
134 def xmlescape(text):
134 def xmlescape(text):
135 text = (text
135 text = (text
136 .replace('&', '&amp;')
136 .replace('&', '&amp;')
137 .replace('<', '&lt;')
137 .replace('<', '&lt;')
138 .replace('>', '&gt;')
138 .replace('>', '&gt;')
139 .replace('"', '&quot;')
139 .replace('"', '&quot;')
140 .replace("'", '&#39;')) # &apos; invalid in HTML
140 .replace("'", '&#39;')) # &apos; invalid in HTML
141 return re.sub('[\x00-\x08\x0B\x0C\x0E-\x1F]', ' ', text)
141 return re.sub('[\x00-\x08\x0B\x0C\x0E-\x1F]', ' ', text)
142
142
143 _escapes = [
143 _escapes = [
144 ('\\', '\\\\'), ('"', '\\"'), ('\t', '\\t'), ('\n', '\\n'),
144 ('\\', '\\\\'), ('"', '\\"'), ('\t', '\\t'), ('\n', '\\n'),
145 ('\r', '\\r'), ('\f', '\\f'), ('\b', '\\b'),
145 ('\r', '\\r'), ('\f', '\\f'), ('\b', '\\b'),
146 ]
146 ]
147
147
148 def jsonescape(s):
148 def jsonescape(s):
149 for k, v in _escapes:
149 for k, v in _escapes:
150 s = s.replace(k, v)
150 s = s.replace(k, v)
151 return s
151
152 def uescape(c):
153 if ord(c) < 0x80:
154 return c
155 else:
156 return '\\u%04x' % ord(c)
157 return ''.join(uescape(c) for c in s)
152
158
153 def json(obj):
159 def json(obj):
154 if obj is None or obj is False or obj is True:
160 if obj is None or obj is False or obj is True:
155 return {None: 'null', False: 'false', True: 'true'}[obj]
161 return {None: 'null', False: 'false', True: 'true'}[obj]
156 elif isinstance(obj, int) or isinstance(obj, float):
162 elif isinstance(obj, int) or isinstance(obj, float):
157 return str(obj)
163 return str(obj)
158 elif isinstance(obj, str):
164 elif isinstance(obj, str):
159 u = unicode(obj, encoding.encoding, 'replace')
165 u = unicode(obj, encoding.encoding, 'replace')
160 return '"%s"' % jsonescape(u).encode('utf-8')
166 return '"%s"' % jsonescape(u)
161 elif isinstance(obj, unicode):
167 elif isinstance(obj, unicode):
162 return '"%s"' % jsonescape(obj).encode('utf-8')
168 return '"%s"' % jsonescape(obj)
163 elif hasattr(obj, 'keys'):
169 elif hasattr(obj, 'keys'):
164 out = []
170 out = []
165 for k, v in obj.iteritems():
171 for k, v in obj.iteritems():
166 s = '%s: %s' % (json(k), json(v))
172 s = '%s: %s' % (json(k), json(v))
167 out.append(s)
173 out.append(s)
168 return '{' + ', '.join(out) + '}'
174 return '{' + ', '.join(out) + '}'
169 elif hasattr(obj, '__iter__'):
175 elif hasattr(obj, '__iter__'):
170 out = []
176 out = []
171 for i in obj:
177 for i in obj:
172 out.append(json(i))
178 out.append(json(i))
173 return '[' + ', '.join(out) + ']'
179 return '[' + ', '.join(out) + ']'
174 else:
180 else:
175 raise TypeError('cannot encode type %s' % obj.__class__.__name__)
181 raise TypeError('cannot encode type %s' % obj.__class__.__name__)
176
182
177 def stripdir(text):
183 def stripdir(text):
178 '''Treat the text as path and strip a directory level, if possible.'''
184 '''Treat the text as path and strip a directory level, if possible.'''
179 dir = os.path.dirname(text)
185 dir = os.path.dirname(text)
180 if dir == "":
186 if dir == "":
181 return os.path.basename(text)
187 return os.path.basename(text)
182 else:
188 else:
183 return dir
189 return dir
184
190
185 def nonempty(str):
191 def nonempty(str):
186 return str or "(none)"
192 return str or "(none)"
187
193
188 filters = {
194 filters = {
189 "addbreaks": nl2br,
195 "addbreaks": nl2br,
190 "basename": os.path.basename,
196 "basename": os.path.basename,
191 "stripdir": stripdir,
197 "stripdir": stripdir,
192 "age": age,
198 "age": age,
193 "date": lambda x: util.datestr(x),
199 "date": lambda x: util.datestr(x),
194 "domain": domain,
200 "domain": domain,
195 "email": util.email,
201 "email": util.email,
196 "escape": lambda x: cgi.escape(x, True),
202 "escape": lambda x: cgi.escape(x, True),
197 "fill68": lambda x: fill(x, width=68),
203 "fill68": lambda x: fill(x, width=68),
198 "fill76": lambda x: fill(x, width=76),
204 "fill76": lambda x: fill(x, width=76),
199 "firstline": firstline,
205 "firstline": firstline,
200 "tabindent": lambda x: indent(x, '\t'),
206 "tabindent": lambda x: indent(x, '\t'),
201 "hgdate": lambda x: "%d %d" % x,
207 "hgdate": lambda x: "%d %d" % x,
202 "isodate": lambda x: util.datestr(x, '%Y-%m-%d %H:%M %1%2'),
208 "isodate": lambda x: util.datestr(x, '%Y-%m-%d %H:%M %1%2'),
203 "isodatesec": lambda x: util.datestr(x, '%Y-%m-%d %H:%M:%S %1%2'),
209 "isodatesec": lambda x: util.datestr(x, '%Y-%m-%d %H:%M:%S %1%2'),
204 "json": json,
210 "json": json,
205 "jsonescape": jsonescape,
211 "jsonescape": jsonescape,
206 "localdate": lambda x: (x[0], util.makedate()[1]),
212 "localdate": lambda x: (x[0], util.makedate()[1]),
207 "nonempty": nonempty,
213 "nonempty": nonempty,
208 "obfuscate": obfuscate,
214 "obfuscate": obfuscate,
209 "permissions": permissions,
215 "permissions": permissions,
210 "person": person,
216 "person": person,
211 "rfc822date": lambda x: util.datestr(x, "%a, %d %b %Y %H:%M:%S %1%2"),
217 "rfc822date": lambda x: util.datestr(x, "%a, %d %b %Y %H:%M:%S %1%2"),
212 "rfc3339date": lambda x: util.datestr(x, "%Y-%m-%dT%H:%M:%S%1:%2"),
218 "rfc3339date": lambda x: util.datestr(x, "%Y-%m-%dT%H:%M:%S%1:%2"),
213 "short": lambda x: x[:12],
219 "short": lambda x: x[:12],
214 "shortdate": util.shortdate,
220 "shortdate": util.shortdate,
215 "stringify": stringify,
221 "stringify": stringify,
216 "strip": lambda x: x.strip(),
222 "strip": lambda x: x.strip(),
217 "urlescape": lambda x: urllib.quote(x),
223 "urlescape": lambda x: urllib.quote(x),
218 "user": lambda x: util.shortuser(x),
224 "user": lambda x: util.shortuser(x),
219 "stringescape": lambda x: x.encode('string_escape'),
225 "stringescape": lambda x: x.encode('string_escape'),
220 "xmlescape": xmlescape,
226 "xmlescape": xmlescape,
221 }
227 }
@@ -1,988 +1,988
1 % Set up the repo
1 % Set up the repo
2 adding da/foo
2 adding da/foo
3 adding foo
3 adding foo
4 marked working directory as branch stable
4 marked working directory as branch stable
5 % Logs and changes
5 % Logs and changes
6 200 Script output follows
6 200 Script output follows
7
7
8 <?xml version="1.0" encoding="ascii"?>
8 <?xml version="1.0" encoding="ascii"?>
9 <feed xmlns="http://127.0.0.1/2005/Atom">
9 <feed xmlns="http://127.0.0.1/2005/Atom">
10 <!-- Changelog -->
10 <!-- Changelog -->
11 <id>http://127.0.0.1/</id>
11 <id>http://127.0.0.1/</id>
12 <link rel="self" href="http://127.0.0.1/atom-log"/>
12 <link rel="self" href="http://127.0.0.1/atom-log"/>
13 <link rel="alternate" href="http://127.0.0.1/"/>
13 <link rel="alternate" href="http://127.0.0.1/"/>
14 <title>test Changelog</title>
14 <title>test Changelog</title>
15 <updated>1970-01-01T00:00:00+00:00</updated>
15 <updated>1970-01-01T00:00:00+00:00</updated>
16
16
17 <entry>
17 <entry>
18 <title>branch</title>
18 <title>branch</title>
19 <id>http://127.0.0.1/#changeset-1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe</id>
19 <id>http://127.0.0.1/#changeset-1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe</id>
20 <link href="http://127.0.0.1/rev/1d22e65f027e"/>
20 <link href="http://127.0.0.1/rev/1d22e65f027e"/>
21 <author>
21 <author>
22 <name>test</name>
22 <name>test</name>
23 <email>&#116;&#101;&#115;&#116;</email>
23 <email>&#116;&#101;&#115;&#116;</email>
24 </author>
24 </author>
25 <updated>1970-01-01T00:00:00+00:00</updated>
25 <updated>1970-01-01T00:00:00+00:00</updated>
26 <published>1970-01-01T00:00:00+00:00</published>
26 <published>1970-01-01T00:00:00+00:00</published>
27 <content type="xhtml">
27 <content type="xhtml">
28 <div xmlns="http://127.0.0.1/1999/xhtml">
28 <div xmlns="http://127.0.0.1/1999/xhtml">
29 <pre xml:space="preserve">branch</pre>
29 <pre xml:space="preserve">branch</pre>
30 </div>
30 </div>
31 </content>
31 </content>
32 </entry>
32 </entry>
33 <entry>
33 <entry>
34 <title>Added tag 1.0 for changeset 2ef0ac749a14</title>
34 <title>Added tag 1.0 for changeset 2ef0ac749a14</title>
35 <id>http://127.0.0.1/#changeset-a4f92ed23982be056b9852de5dfe873eaac7f0de</id>
35 <id>http://127.0.0.1/#changeset-a4f92ed23982be056b9852de5dfe873eaac7f0de</id>
36 <link href="http://127.0.0.1/rev/a4f92ed23982"/>
36 <link href="http://127.0.0.1/rev/a4f92ed23982"/>
37 <author>
37 <author>
38 <name>test</name>
38 <name>test</name>
39 <email>&#116;&#101;&#115;&#116;</email>
39 <email>&#116;&#101;&#115;&#116;</email>
40 </author>
40 </author>
41 <updated>1970-01-01T00:00:00+00:00</updated>
41 <updated>1970-01-01T00:00:00+00:00</updated>
42 <published>1970-01-01T00:00:00+00:00</published>
42 <published>1970-01-01T00:00:00+00:00</published>
43 <content type="xhtml">
43 <content type="xhtml">
44 <div xmlns="http://127.0.0.1/1999/xhtml">
44 <div xmlns="http://127.0.0.1/1999/xhtml">
45 <pre xml:space="preserve">Added tag 1.0 for changeset 2ef0ac749a14</pre>
45 <pre xml:space="preserve">Added tag 1.0 for changeset 2ef0ac749a14</pre>
46 </div>
46 </div>
47 </content>
47 </content>
48 </entry>
48 </entry>
49 <entry>
49 <entry>
50 <title>base</title>
50 <title>base</title>
51 <id>http://127.0.0.1/#changeset-2ef0ac749a14e4f57a5a822464a0902c6f7f448f</id>
51 <id>http://127.0.0.1/#changeset-2ef0ac749a14e4f57a5a822464a0902c6f7f448f</id>
52 <link href="http://127.0.0.1/rev/2ef0ac749a14"/>
52 <link href="http://127.0.0.1/rev/2ef0ac749a14"/>
53 <author>
53 <author>
54 <name>test</name>
54 <name>test</name>
55 <email>&#116;&#101;&#115;&#116;</email>
55 <email>&#116;&#101;&#115;&#116;</email>
56 </author>
56 </author>
57 <updated>1970-01-01T00:00:00+00:00</updated>
57 <updated>1970-01-01T00:00:00+00:00</updated>
58 <published>1970-01-01T00:00:00+00:00</published>
58 <published>1970-01-01T00:00:00+00:00</published>
59 <content type="xhtml">
59 <content type="xhtml">
60 <div xmlns="http://127.0.0.1/1999/xhtml">
60 <div xmlns="http://127.0.0.1/1999/xhtml">
61 <pre xml:space="preserve">base</pre>
61 <pre xml:space="preserve">base</pre>
62 </div>
62 </div>
63 </content>
63 </content>
64 </entry>
64 </entry>
65
65
66 </feed>
66 </feed>
67 200 Script output follows
67 200 Script output follows
68
68
69 <?xml version="1.0" encoding="ascii"?>
69 <?xml version="1.0" encoding="ascii"?>
70 <feed xmlns="http://127.0.0.1/2005/Atom">
70 <feed xmlns="http://127.0.0.1/2005/Atom">
71 <!-- Changelog -->
71 <!-- Changelog -->
72 <id>http://127.0.0.1/</id>
72 <id>http://127.0.0.1/</id>
73 <link rel="self" href="http://127.0.0.1/atom-log"/>
73 <link rel="self" href="http://127.0.0.1/atom-log"/>
74 <link rel="alternate" href="http://127.0.0.1/"/>
74 <link rel="alternate" href="http://127.0.0.1/"/>
75 <title>test Changelog</title>
75 <title>test Changelog</title>
76 <updated>1970-01-01T00:00:00+00:00</updated>
76 <updated>1970-01-01T00:00:00+00:00</updated>
77
77
78 <entry>
78 <entry>
79 <title>branch</title>
79 <title>branch</title>
80 <id>http://127.0.0.1/#changeset-1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe</id>
80 <id>http://127.0.0.1/#changeset-1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe</id>
81 <link href="http://127.0.0.1/rev/1d22e65f027e"/>
81 <link href="http://127.0.0.1/rev/1d22e65f027e"/>
82 <author>
82 <author>
83 <name>test</name>
83 <name>test</name>
84 <email>&#116;&#101;&#115;&#116;</email>
84 <email>&#116;&#101;&#115;&#116;</email>
85 </author>
85 </author>
86 <updated>1970-01-01T00:00:00+00:00</updated>
86 <updated>1970-01-01T00:00:00+00:00</updated>
87 <published>1970-01-01T00:00:00+00:00</published>
87 <published>1970-01-01T00:00:00+00:00</published>
88 <content type="xhtml">
88 <content type="xhtml">
89 <div xmlns="http://127.0.0.1/1999/xhtml">
89 <div xmlns="http://127.0.0.1/1999/xhtml">
90 <pre xml:space="preserve">branch</pre>
90 <pre xml:space="preserve">branch</pre>
91 </div>
91 </div>
92 </content>
92 </content>
93 </entry>
93 </entry>
94 <entry>
94 <entry>
95 <title>Added tag 1.0 for changeset 2ef0ac749a14</title>
95 <title>Added tag 1.0 for changeset 2ef0ac749a14</title>
96 <id>http://127.0.0.1/#changeset-a4f92ed23982be056b9852de5dfe873eaac7f0de</id>
96 <id>http://127.0.0.1/#changeset-a4f92ed23982be056b9852de5dfe873eaac7f0de</id>
97 <link href="http://127.0.0.1/rev/a4f92ed23982"/>
97 <link href="http://127.0.0.1/rev/a4f92ed23982"/>
98 <author>
98 <author>
99 <name>test</name>
99 <name>test</name>
100 <email>&#116;&#101;&#115;&#116;</email>
100 <email>&#116;&#101;&#115;&#116;</email>
101 </author>
101 </author>
102 <updated>1970-01-01T00:00:00+00:00</updated>
102 <updated>1970-01-01T00:00:00+00:00</updated>
103 <published>1970-01-01T00:00:00+00:00</published>
103 <published>1970-01-01T00:00:00+00:00</published>
104 <content type="xhtml">
104 <content type="xhtml">
105 <div xmlns="http://127.0.0.1/1999/xhtml">
105 <div xmlns="http://127.0.0.1/1999/xhtml">
106 <pre xml:space="preserve">Added tag 1.0 for changeset 2ef0ac749a14</pre>
106 <pre xml:space="preserve">Added tag 1.0 for changeset 2ef0ac749a14</pre>
107 </div>
107 </div>
108 </content>
108 </content>
109 </entry>
109 </entry>
110 <entry>
110 <entry>
111 <title>base</title>
111 <title>base</title>
112 <id>http://127.0.0.1/#changeset-2ef0ac749a14e4f57a5a822464a0902c6f7f448f</id>
112 <id>http://127.0.0.1/#changeset-2ef0ac749a14e4f57a5a822464a0902c6f7f448f</id>
113 <link href="http://127.0.0.1/rev/2ef0ac749a14"/>
113 <link href="http://127.0.0.1/rev/2ef0ac749a14"/>
114 <author>
114 <author>
115 <name>test</name>
115 <name>test</name>
116 <email>&#116;&#101;&#115;&#116;</email>
116 <email>&#116;&#101;&#115;&#116;</email>
117 </author>
117 </author>
118 <updated>1970-01-01T00:00:00+00:00</updated>
118 <updated>1970-01-01T00:00:00+00:00</updated>
119 <published>1970-01-01T00:00:00+00:00</published>
119 <published>1970-01-01T00:00:00+00:00</published>
120 <content type="xhtml">
120 <content type="xhtml">
121 <div xmlns="http://127.0.0.1/1999/xhtml">
121 <div xmlns="http://127.0.0.1/1999/xhtml">
122 <pre xml:space="preserve">base</pre>
122 <pre xml:space="preserve">base</pre>
123 </div>
123 </div>
124 </content>
124 </content>
125 </entry>
125 </entry>
126
126
127 </feed>
127 </feed>
128 200 Script output follows
128 200 Script output follows
129
129
130 <?xml version="1.0" encoding="ascii"?>
130 <?xml version="1.0" encoding="ascii"?>
131 <feed xmlns="http://127.0.0.1/2005/Atom">
131 <feed xmlns="http://127.0.0.1/2005/Atom">
132 <id>http://127.0.0.1/atom-log/tip/foo</id>
132 <id>http://127.0.0.1/atom-log/tip/foo</id>
133 <link rel="self" href="http://127.0.0.1/atom-log/tip/foo"/>
133 <link rel="self" href="http://127.0.0.1/atom-log/tip/foo"/>
134 <title>test: foo history</title>
134 <title>test: foo history</title>
135 <updated>1970-01-01T00:00:00+00:00</updated>
135 <updated>1970-01-01T00:00:00+00:00</updated>
136
136
137 <entry>
137 <entry>
138 <title>base</title>
138 <title>base</title>
139 <id>http://127.0.0.1/#changeset-2ef0ac749a14e4f57a5a822464a0902c6f7f448f</id>
139 <id>http://127.0.0.1/#changeset-2ef0ac749a14e4f57a5a822464a0902c6f7f448f</id>
140 <link href="http://127.0.0.1/rev/2ef0ac749a14"/>
140 <link href="http://127.0.0.1/rev/2ef0ac749a14"/>
141 <author>
141 <author>
142 <name>test</name>
142 <name>test</name>
143 <email>&#116;&#101;&#115;&#116;</email>
143 <email>&#116;&#101;&#115;&#116;</email>
144 </author>
144 </author>
145 <updated>1970-01-01T00:00:00+00:00</updated>
145 <updated>1970-01-01T00:00:00+00:00</updated>
146 <published>1970-01-01T00:00:00+00:00</published>
146 <published>1970-01-01T00:00:00+00:00</published>
147 <content type="xhtml">
147 <content type="xhtml">
148 <div xmlns="http://127.0.0.1/1999/xhtml">
148 <div xmlns="http://127.0.0.1/1999/xhtml">
149 <pre xml:space="preserve">base</pre>
149 <pre xml:space="preserve">base</pre>
150 </div>
150 </div>
151 </content>
151 </content>
152 </entry>
152 </entry>
153
153
154 </feed>
154 </feed>
155 200 Script output follows
155 200 Script output follows
156
156
157 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
157 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
158 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
158 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
159 <head>
159 <head>
160 <link rel="icon" href="/static/hgicon.png" type="image/png" />
160 <link rel="icon" href="/static/hgicon.png" type="image/png" />
161 <meta name="robots" content="index, nofollow" />
161 <meta name="robots" content="index, nofollow" />
162 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
162 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
163
163
164 <title>test: log</title>
164 <title>test: log</title>
165 <link rel="alternate" type="application/atom+xml"
165 <link rel="alternate" type="application/atom+xml"
166 href="/atom-log" title="Atom feed for test" />
166 href="/atom-log" title="Atom feed for test" />
167 <link rel="alternate" type="application/rss+xml"
167 <link rel="alternate" type="application/rss+xml"
168 href="/rss-log" title="RSS feed for test" />
168 href="/rss-log" title="RSS feed for test" />
169 </head>
169 </head>
170 <body>
170 <body>
171
171
172 <div class="container">
172 <div class="container">
173 <div class="menu">
173 <div class="menu">
174 <div class="logo">
174 <div class="logo">
175 <a href="http://mercurial.selenic.com/">
175 <a href="http://mercurial.selenic.com/">
176 <img src="/static/hglogo.png" alt="mercurial" /></a>
176 <img src="/static/hglogo.png" alt="mercurial" /></a>
177 </div>
177 </div>
178 <ul>
178 <ul>
179 <li class="active">log</li>
179 <li class="active">log</li>
180 <li><a href="/graph/1d22e65f027e">graph</a></li>
180 <li><a href="/graph/1d22e65f027e">graph</a></li>
181 <li><a href="/tags">tags</a></li>
181 <li><a href="/tags">tags</a></li>
182 <li><a href="/branches">branches</a></li>
182 <li><a href="/branches">branches</a></li>
183 </ul>
183 </ul>
184 <ul>
184 <ul>
185 <li><a href="/rev/1d22e65f027e">changeset</a></li>
185 <li><a href="/rev/1d22e65f027e">changeset</a></li>
186 <li><a href="/file/1d22e65f027e">browse</a></li>
186 <li><a href="/file/1d22e65f027e">browse</a></li>
187 </ul>
187 </ul>
188 <ul>
188 <ul>
189
189
190 </ul>
190 </ul>
191 </div>
191 </div>
192
192
193 <div class="main">
193 <div class="main">
194 <h2><a href="/">test</a></h2>
194 <h2><a href="/">test</a></h2>
195 <h3>log</h3>
195 <h3>log</h3>
196
196
197 <form class="search" action="/log">
197 <form class="search" action="/log">
198
198
199 <p><input name="rev" id="search1" type="text" size="30" /></p>
199 <p><input name="rev" id="search1" type="text" size="30" /></p>
200 <div id="hint">find changesets by author, revision,
200 <div id="hint">find changesets by author, revision,
201 files, or words in the commit message</div>
201 files, or words in the commit message</div>
202 </form>
202 </form>
203
203
204 <div class="navigate">
204 <div class="navigate">
205 <a href="/shortlog/2?revcount=30">less</a>
205 <a href="/shortlog/2?revcount=30">less</a>
206 <a href="/shortlog/2?revcount=120">more</a>
206 <a href="/shortlog/2?revcount=120">more</a>
207 | rev 2: <a href="/shortlog/2ef0ac749a14">(0)</a> <a href="/shortlog/tip">tip</a>
207 | rev 2: <a href="/shortlog/2ef0ac749a14">(0)</a> <a href="/shortlog/tip">tip</a>
208 </div>
208 </div>
209
209
210 <table class="bigtable">
210 <table class="bigtable">
211 <tr>
211 <tr>
212 <th class="age">age</th>
212 <th class="age">age</th>
213 <th class="author">author</th>
213 <th class="author">author</th>
214 <th class="description">description</th>
214 <th class="description">description</th>
215 </tr>
215 </tr>
216 <tr class="parity0">
216 <tr class="parity0">
217 <td class="age">1970-01-01</td>
217 <td class="age">1970-01-01</td>
218 <td class="author">test</td>
218 <td class="author">test</td>
219 <td class="description"><a href="/rev/1d22e65f027e">branch</a><span class="branchhead">stable</span> <span class="tag">tip</span> </td>
219 <td class="description"><a href="/rev/1d22e65f027e">branch</a><span class="branchhead">stable</span> <span class="tag">tip</span> </td>
220 </tr>
220 </tr>
221 <tr class="parity1">
221 <tr class="parity1">
222 <td class="age">1970-01-01</td>
222 <td class="age">1970-01-01</td>
223 <td class="author">test</td>
223 <td class="author">test</td>
224 <td class="description"><a href="/rev/a4f92ed23982">Added tag 1.0 for changeset 2ef0ac749a14</a><span class="branchhead">default</span> </td>
224 <td class="description"><a href="/rev/a4f92ed23982">Added tag 1.0 for changeset 2ef0ac749a14</a><span class="branchhead">default</span> </td>
225 </tr>
225 </tr>
226 <tr class="parity0">
226 <tr class="parity0">
227 <td class="age">1970-01-01</td>
227 <td class="age">1970-01-01</td>
228 <td class="author">test</td>
228 <td class="author">test</td>
229 <td class="description"><a href="/rev/2ef0ac749a14">base</a><span class="tag">1.0</span> </td>
229 <td class="description"><a href="/rev/2ef0ac749a14">base</a><span class="tag">1.0</span> </td>
230 </tr>
230 </tr>
231
231
232 </table>
232 </table>
233
233
234 <div class="navigate">
234 <div class="navigate">
235 <a href="/shortlog/2?revcount=30">less</a>
235 <a href="/shortlog/2?revcount=30">less</a>
236 <a href="/shortlog/2?revcount=120">more</a>
236 <a href="/shortlog/2?revcount=120">more</a>
237 | rev 2: <a href="/shortlog/2ef0ac749a14">(0)</a> <a href="/shortlog/tip">tip</a>
237 | rev 2: <a href="/shortlog/2ef0ac749a14">(0)</a> <a href="/shortlog/tip">tip</a>
238 </div>
238 </div>
239
239
240 </div>
240 </div>
241 </div>
241 </div>
242
242
243
243
244
244
245 </body>
245 </body>
246 </html>
246 </html>
247
247
248 200 Script output follows
248 200 Script output follows
249
249
250 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
250 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
251 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
251 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
252 <head>
252 <head>
253 <link rel="icon" href="/static/hgicon.png" type="image/png" />
253 <link rel="icon" href="/static/hgicon.png" type="image/png" />
254 <meta name="robots" content="index, nofollow" />
254 <meta name="robots" content="index, nofollow" />
255 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
255 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
256
256
257 <title>test: 2ef0ac749a14</title>
257 <title>test: 2ef0ac749a14</title>
258 </head>
258 </head>
259 <body>
259 <body>
260 <div class="container">
260 <div class="container">
261 <div class="menu">
261 <div class="menu">
262 <div class="logo">
262 <div class="logo">
263 <a href="http://mercurial.selenic.com/">
263 <a href="http://mercurial.selenic.com/">
264 <img src="/static/hglogo.png" alt="mercurial" /></a>
264 <img src="/static/hglogo.png" alt="mercurial" /></a>
265 </div>
265 </div>
266 <ul>
266 <ul>
267 <li><a href="/shortlog/2ef0ac749a14">log</a></li>
267 <li><a href="/shortlog/2ef0ac749a14">log</a></li>
268 <li><a href="/graph/2ef0ac749a14">graph</a></li>
268 <li><a href="/graph/2ef0ac749a14">graph</a></li>
269 <li><a href="/tags">tags</a></li>
269 <li><a href="/tags">tags</a></li>
270 <li><a href="/branches">branches</a></li>
270 <li><a href="/branches">branches</a></li>
271 </ul>
271 </ul>
272 <ul>
272 <ul>
273 <li class="active">changeset</li>
273 <li class="active">changeset</li>
274 <li><a href="/raw-rev/2ef0ac749a14">raw</a></li>
274 <li><a href="/raw-rev/2ef0ac749a14">raw</a></li>
275 <li><a href="/file/2ef0ac749a14">browse</a></li>
275 <li><a href="/file/2ef0ac749a14">browse</a></li>
276 </ul>
276 </ul>
277 <ul>
277 <ul>
278
278
279 </ul>
279 </ul>
280 </div>
280 </div>
281
281
282 <div class="main">
282 <div class="main">
283
283
284 <h2><a href="/">test</a></h2>
284 <h2><a href="/">test</a></h2>
285 <h3>changeset 0:2ef0ac749a14 <span class="tag">1.0</span> </h3>
285 <h3>changeset 0:2ef0ac749a14 <span class="tag">1.0</span> </h3>
286
286
287 <form class="search" action="/log">
287 <form class="search" action="/log">
288
288
289 <p><input name="rev" id="search1" type="text" size="30" /></p>
289 <p><input name="rev" id="search1" type="text" size="30" /></p>
290 <div id="hint">find changesets by author, revision,
290 <div id="hint">find changesets by author, revision,
291 files, or words in the commit message</div>
291 files, or words in the commit message</div>
292 </form>
292 </form>
293
293
294 <div class="description">base</div>
294 <div class="description">base</div>
295
295
296 <table id="changesetEntry">
296 <table id="changesetEntry">
297 <tr>
297 <tr>
298 <th class="author">author</th>
298 <th class="author">author</th>
299 <td class="author">&#116;&#101;&#115;&#116;</td>
299 <td class="author">&#116;&#101;&#115;&#116;</td>
300 </tr>
300 </tr>
301 <tr>
301 <tr>
302 <th class="date">date</th>
302 <th class="date">date</th>
303 <td class="date">Thu Jan 01 00:00:00 1970 +0000 (1970-01-01)</td></tr>
303 <td class="date">Thu Jan 01 00:00:00 1970 +0000 (1970-01-01)</td></tr>
304 <tr>
304 <tr>
305 <th class="author">parents</th>
305 <th class="author">parents</th>
306 <td class="author"></td>
306 <td class="author"></td>
307 </tr>
307 </tr>
308 <tr>
308 <tr>
309 <th class="author">children</th>
309 <th class="author">children</th>
310 <td class="author"> <a href="/rev/a4f92ed23982">a4f92ed23982</a></td>
310 <td class="author"> <a href="/rev/a4f92ed23982">a4f92ed23982</a></td>
311 </tr>
311 </tr>
312 <tr>
312 <tr>
313 <th class="files">files</th>
313 <th class="files">files</th>
314 <td class="files"><a href="/file/2ef0ac749a14/da/foo">da/foo</a> <a href="/file/2ef0ac749a14/foo">foo</a> </td>
314 <td class="files"><a href="/file/2ef0ac749a14/da/foo">da/foo</a> <a href="/file/2ef0ac749a14/foo">foo</a> </td>
315 </tr>
315 </tr>
316 </table>
316 </table>
317
317
318 <div class="overflow">
318 <div class="overflow">
319 <div class="sourcefirst"> line diff</div>
319 <div class="sourcefirst"> line diff</div>
320
320
321 <div class="source bottomline parity0"><pre><a href="#l1.1" id="l1.1"> 1.1</a> <span class="minusline">--- /dev/null Thu Jan 01 00:00:00 1970 +0000
321 <div class="source bottomline parity0"><pre><a href="#l1.1" id="l1.1"> 1.1</a> <span class="minusline">--- /dev/null Thu Jan 01 00:00:00 1970 +0000
322 </span><a href="#l1.2" id="l1.2"> 1.2</a> <span class="plusline">+++ b/da/foo Thu Jan 01 00:00:00 1970 +0000
322 </span><a href="#l1.2" id="l1.2"> 1.2</a> <span class="plusline">+++ b/da/foo Thu Jan 01 00:00:00 1970 +0000
323 </span><a href="#l1.3" id="l1.3"> 1.3</a> <span class="atline">@@ -0,0 +1,1 @@
323 </span><a href="#l1.3" id="l1.3"> 1.3</a> <span class="atline">@@ -0,0 +1,1 @@
324 </span><a href="#l1.4" id="l1.4"> 1.4</a> <span class="plusline">+foo
324 </span><a href="#l1.4" id="l1.4"> 1.4</a> <span class="plusline">+foo
325 </span></pre></div><div class="source bottomline parity1"><pre><a href="#l2.1" id="l2.1"> 2.1</a> <span class="minusline">--- /dev/null Thu Jan 01 00:00:00 1970 +0000
325 </span></pre></div><div class="source bottomline parity1"><pre><a href="#l2.1" id="l2.1"> 2.1</a> <span class="minusline">--- /dev/null Thu Jan 01 00:00:00 1970 +0000
326 </span><a href="#l2.2" id="l2.2"> 2.2</a> <span class="plusline">+++ b/foo Thu Jan 01 00:00:00 1970 +0000
326 </span><a href="#l2.2" id="l2.2"> 2.2</a> <span class="plusline">+++ b/foo Thu Jan 01 00:00:00 1970 +0000
327 </span><a href="#l2.3" id="l2.3"> 2.3</a> <span class="atline">@@ -0,0 +1,1 @@
327 </span><a href="#l2.3" id="l2.3"> 2.3</a> <span class="atline">@@ -0,0 +1,1 @@
328 </span><a href="#l2.4" id="l2.4"> 2.4</a> <span class="plusline">+foo
328 </span><a href="#l2.4" id="l2.4"> 2.4</a> <span class="plusline">+foo
329 </span></pre></div>
329 </span></pre></div>
330 </div>
330 </div>
331
331
332 </div>
332 </div>
333 </div>
333 </div>
334
334
335
335
336 </body>
336 </body>
337 </html>
337 </html>
338
338
339 200 Script output follows
339 200 Script output follows
340
340
341
341
342 # HG changeset patch
342 # HG changeset patch
343 # User test
343 # User test
344 # Date 0 0
344 # Date 0 0
345 # Node ID a4f92ed23982be056b9852de5dfe873eaac7f0de
345 # Node ID a4f92ed23982be056b9852de5dfe873eaac7f0de
346 # Parent 2ef0ac749a14e4f57a5a822464a0902c6f7f448f
346 # Parent 2ef0ac749a14e4f57a5a822464a0902c6f7f448f
347 Added tag 1.0 for changeset 2ef0ac749a14
347 Added tag 1.0 for changeset 2ef0ac749a14
348
348
349 diff -r 2ef0ac749a14 -r a4f92ed23982 .hgtags
349 diff -r 2ef0ac749a14 -r a4f92ed23982 .hgtags
350 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
350 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
351 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
351 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
352 @@ -0,0 +1,1 @@
352 @@ -0,0 +1,1 @@
353 +2ef0ac749a14e4f57a5a822464a0902c6f7f448f 1.0
353 +2ef0ac749a14e4f57a5a822464a0902c6f7f448f 1.0
354
354
355 200 Script output follows
355 200 Script output follows
356
356
357 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
357 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
358 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
358 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
359 <head>
359 <head>
360 <link rel="icon" href="/static/hgicon.png" type="image/png" />
360 <link rel="icon" href="/static/hgicon.png" type="image/png" />
361 <meta name="robots" content="index, nofollow" />
361 <meta name="robots" content="index, nofollow" />
362 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
362 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
363
363
364 <title>test: searching for base</title>
364 <title>test: searching for base</title>
365 </head>
365 </head>
366 <body>
366 <body>
367
367
368 <div class="container">
368 <div class="container">
369 <div class="menu">
369 <div class="menu">
370 <div class="logo">
370 <div class="logo">
371 <a href="http://mercurial.selenic.com/">
371 <a href="http://mercurial.selenic.com/">
372 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial"></a>
372 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial"></a>
373 </div>
373 </div>
374 <ul>
374 <ul>
375 <li><a href="/shortlog">log</a></li>
375 <li><a href="/shortlog">log</a></li>
376 <li><a href="/graph">graph</a></li>
376 <li><a href="/graph">graph</a></li>
377 <li><a href="/tags">tags</a></li>
377 <li><a href="/tags">tags</a></li>
378 <li><a href="/branches">branches</a></li>
378 <li><a href="/branches">branches</a></li>
379 </ul>
379 </ul>
380 </div>
380 </div>
381
381
382 <div class="main">
382 <div class="main">
383 <h2><a href="/">test</a></h2>
383 <h2><a href="/">test</a></h2>
384 <h3>searching for 'base'</h3>
384 <h3>searching for 'base'</h3>
385
385
386 <form class="search" action="/log">
386 <form class="search" action="/log">
387
387
388 <p><input name="rev" id="search1" type="text" size="30"></p>
388 <p><input name="rev" id="search1" type="text" size="30"></p>
389 <div id="hint">find changesets by author, revision,
389 <div id="hint">find changesets by author, revision,
390 files, or words in the commit message</div>
390 files, or words in the commit message</div>
391 </form>
391 </form>
392
392
393 <div class="navigate">
393 <div class="navigate">
394 <a href="/search/?rev=base&revcount=5">less</a>
394 <a href="/search/?rev=base&revcount=5">less</a>
395 <a href="/search/?rev=base&revcount=20">more</a>
395 <a href="/search/?rev=base&revcount=20">more</a>
396 </div>
396 </div>
397
397
398 <table class="bigtable">
398 <table class="bigtable">
399 <tr>
399 <tr>
400 <th class="age">age</th>
400 <th class="age">age</th>
401 <th class="author">author</th>
401 <th class="author">author</th>
402 <th class="description">description</th>
402 <th class="description">description</th>
403 </tr>
403 </tr>
404 <tr class="parity0">
404 <tr class="parity0">
405 <td class="age">1970-01-01</td>
405 <td class="age">1970-01-01</td>
406 <td class="author">test</td>
406 <td class="author">test</td>
407 <td class="description"><a href="/rev/2ef0ac749a14">base</a><span class="tag">1.0</span> </td>
407 <td class="description"><a href="/rev/2ef0ac749a14">base</a><span class="tag">1.0</span> </td>
408 </tr>
408 </tr>
409
409
410 </table>
410 </table>
411
411
412 <div class="navigate">
412 <div class="navigate">
413 <a href="/search/?rev=base&revcount=5">less</a>
413 <a href="/search/?rev=base&revcount=5">less</a>
414 <a href="/search/?rev=base&revcount=20">more</a>
414 <a href="/search/?rev=base&revcount=20">more</a>
415 </div>
415 </div>
416
416
417 </div>
417 </div>
418 </div>
418 </div>
419
419
420
420
421
421
422 </body>
422 </body>
423 </html>
423 </html>
424
424
425 % File-related
425 % File-related
426 200 Script output follows
426 200 Script output follows
427
427
428 foo
428 foo
429 200 Script output follows
429 200 Script output follows
430
430
431
431
432 test@0: foo
432 test@0: foo
433
433
434
434
435
435
436
436
437 200 Script output follows
437 200 Script output follows
438
438
439
439
440 drwxr-xr-x da
440 drwxr-xr-x da
441 -rw-r--r-- 45 .hgtags
441 -rw-r--r-- 45 .hgtags
442 -rw-r--r-- 4 foo
442 -rw-r--r-- 4 foo
443
443
444
444
445 200 Script output follows
445 200 Script output follows
446
446
447 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
447 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
448 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
448 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
449 <head>
449 <head>
450 <link rel="icon" href="/static/hgicon.png" type="image/png" />
450 <link rel="icon" href="/static/hgicon.png" type="image/png" />
451 <meta name="robots" content="index, nofollow" />
451 <meta name="robots" content="index, nofollow" />
452 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
452 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
453
453
454 <title>test: a4f92ed23982 foo</title>
454 <title>test: a4f92ed23982 foo</title>
455 </head>
455 </head>
456 <body>
456 <body>
457
457
458 <div class="container">
458 <div class="container">
459 <div class="menu">
459 <div class="menu">
460 <div class="logo">
460 <div class="logo">
461 <a href="http://mercurial.selenic.com/">
461 <a href="http://mercurial.selenic.com/">
462 <img src="/static/hglogo.png" alt="mercurial" /></a>
462 <img src="/static/hglogo.png" alt="mercurial" /></a>
463 </div>
463 </div>
464 <ul>
464 <ul>
465 <li><a href="/shortlog/a4f92ed23982">log</a></li>
465 <li><a href="/shortlog/a4f92ed23982">log</a></li>
466 <li><a href="/graph/a4f92ed23982">graph</a></li>
466 <li><a href="/graph/a4f92ed23982">graph</a></li>
467 <li><a href="/tags">tags</a></li>
467 <li><a href="/tags">tags</a></li>
468 <li><a href="/branches">branches</a></li>
468 <li><a href="/branches">branches</a></li>
469 </ul>
469 </ul>
470 <ul>
470 <ul>
471 <li><a href="/rev/a4f92ed23982">changeset</a></li>
471 <li><a href="/rev/a4f92ed23982">changeset</a></li>
472 <li><a href="/file/a4f92ed23982/">browse</a></li>
472 <li><a href="/file/a4f92ed23982/">browse</a></li>
473 </ul>
473 </ul>
474 <ul>
474 <ul>
475 <li class="active">file</li>
475 <li class="active">file</li>
476 <li><a href="/file/tip/foo">latest</a></li>
476 <li><a href="/file/tip/foo">latest</a></li>
477 <li><a href="/diff/a4f92ed23982/foo">diff</a></li>
477 <li><a href="/diff/a4f92ed23982/foo">diff</a></li>
478 <li><a href="/annotate/a4f92ed23982/foo">annotate</a></li>
478 <li><a href="/annotate/a4f92ed23982/foo">annotate</a></li>
479 <li><a href="/log/a4f92ed23982/foo">file log</a></li>
479 <li><a href="/log/a4f92ed23982/foo">file log</a></li>
480 <li><a href="/raw-file/a4f92ed23982/foo">raw</a></li>
480 <li><a href="/raw-file/a4f92ed23982/foo">raw</a></li>
481 </ul>
481 </ul>
482 </div>
482 </div>
483
483
484 <div class="main">
484 <div class="main">
485 <h2><a href="/">test</a></h2>
485 <h2><a href="/">test</a></h2>
486 <h3>view foo @ 1:a4f92ed23982</h3>
486 <h3>view foo @ 1:a4f92ed23982</h3>
487
487
488 <form class="search" action="/log">
488 <form class="search" action="/log">
489
489
490 <p><input name="rev" id="search1" type="text" size="30" /></p>
490 <p><input name="rev" id="search1" type="text" size="30" /></p>
491 <div id="hint">find changesets by author, revision,
491 <div id="hint">find changesets by author, revision,
492 files, or words in the commit message</div>
492 files, or words in the commit message</div>
493 </form>
493 </form>
494
494
495 <div class="description">Added tag 1.0 for changeset 2ef0ac749a14</div>
495 <div class="description">Added tag 1.0 for changeset 2ef0ac749a14</div>
496
496
497 <table id="changesetEntry">
497 <table id="changesetEntry">
498 <tr>
498 <tr>
499 <th class="author">author</th>
499 <th class="author">author</th>
500 <td class="author">&#116;&#101;&#115;&#116;</td>
500 <td class="author">&#116;&#101;&#115;&#116;</td>
501 </tr>
501 </tr>
502 <tr>
502 <tr>
503 <th class="date">date</th>
503 <th class="date">date</th>
504 <td class="date">Thu Jan 01 00:00:00 1970 +0000 (1970-01-01)</td>
504 <td class="date">Thu Jan 01 00:00:00 1970 +0000 (1970-01-01)</td>
505 </tr>
505 </tr>
506 <tr>
506 <tr>
507 <th class="author">parents</th>
507 <th class="author">parents</th>
508 <td class="author"></td>
508 <td class="author"></td>
509 </tr>
509 </tr>
510 <tr>
510 <tr>
511 <th class="author">children</th>
511 <th class="author">children</th>
512 <td class="author"><a href="/file/1d22e65f027e/foo">1d22e65f027e</a> </td>
512 <td class="author"><a href="/file/1d22e65f027e/foo">1d22e65f027e</a> </td>
513 </tr>
513 </tr>
514
514
515 </table>
515 </table>
516
516
517 <div class="overflow">
517 <div class="overflow">
518 <div class="sourcefirst"> line source</div>
518 <div class="sourcefirst"> line source</div>
519
519
520 <div class="parity0 source"><a href="#l1" id="l1"> 1</a> foo
520 <div class="parity0 source"><a href="#l1" id="l1"> 1</a> foo
521 </div>
521 </div>
522 <div class="sourcelast"></div>
522 <div class="sourcelast"></div>
523 </div>
523 </div>
524 </div>
524 </div>
525 </div>
525 </div>
526
526
527
527
528
528
529 </body>
529 </body>
530 </html>
530 </html>
531
531
532 200 Script output follows
532 200 Script output follows
533
533
534
534
535 diff -r 000000000000 -r a4f92ed23982 foo
535 diff -r 000000000000 -r a4f92ed23982 foo
536 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
536 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
537 +++ b/foo Thu Jan 01 00:00:00 1970 +0000
537 +++ b/foo Thu Jan 01 00:00:00 1970 +0000
538 @@ -0,0 +1,1 @@
538 @@ -0,0 +1,1 @@
539 +foo
539 +foo
540
540
541
541
542
542
543
543
544 % Overviews
544 % Overviews
545 200 Script output follows
545 200 Script output follows
546
546
547 tip 1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe
547 tip 1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe
548 1.0 2ef0ac749a14e4f57a5a822464a0902c6f7f448f
548 1.0 2ef0ac749a14e4f57a5a822464a0902c6f7f448f
549 200 Script output follows
549 200 Script output follows
550
550
551 stable 1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe open
551 stable 1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe open
552 default a4f92ed23982be056b9852de5dfe873eaac7f0de inactive
552 default a4f92ed23982be056b9852de5dfe873eaac7f0de inactive
553 200 Script output follows
553 200 Script output follows
554
554
555 <?xml version="1.0" encoding="ascii"?>
555 <?xml version="1.0" encoding="ascii"?>
556 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
556 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
557 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
557 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
558 <head>
558 <head>
559 <link rel="icon" href="/static/hgicon.png" type="image/png" />
559 <link rel="icon" href="/static/hgicon.png" type="image/png" />
560 <meta name="robots" content="index, nofollow"/>
560 <meta name="robots" content="index, nofollow"/>
561 <link rel="stylesheet" href="/static/style-gitweb.css" type="text/css" />
561 <link rel="stylesheet" href="/static/style-gitweb.css" type="text/css" />
562
562
563
563
564 <title>test: Summary</title>
564 <title>test: Summary</title>
565 <link rel="alternate" type="application/atom+xml"
565 <link rel="alternate" type="application/atom+xml"
566 href="/atom-log" title="Atom feed for test"/>
566 href="/atom-log" title="Atom feed for test"/>
567 <link rel="alternate" type="application/rss+xml"
567 <link rel="alternate" type="application/rss+xml"
568 href="/rss-log" title="RSS feed for test"/>
568 href="/rss-log" title="RSS feed for test"/>
569 </head>
569 </head>
570 <body>
570 <body>
571
571
572 <div class="page_header">
572 <div class="page_header">
573 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="/summary?style=gitweb">test</a> / summary
573 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="/summary?style=gitweb">test</a> / summary
574
574
575 <form action="/log">
575 <form action="/log">
576 <input type="hidden" name="style" value="gitweb" />
576 <input type="hidden" name="style" value="gitweb" />
577 <div class="search">
577 <div class="search">
578 <input type="text" name="rev" />
578 <input type="text" name="rev" />
579 </div>
579 </div>
580 </form>
580 </form>
581 </div>
581 </div>
582
582
583 <div class="page_nav">
583 <div class="page_nav">
584 summary |
584 summary |
585 <a href="/shortlog?style=gitweb">shortlog</a> |
585 <a href="/shortlog?style=gitweb">shortlog</a> |
586 <a href="/log?style=gitweb">changelog</a> |
586 <a href="/log?style=gitweb">changelog</a> |
587 <a href="/graph?style=gitweb">graph</a> |
587 <a href="/graph?style=gitweb">graph</a> |
588 <a href="/tags?style=gitweb">tags</a> |
588 <a href="/tags?style=gitweb">tags</a> |
589 <a href="/branches?style=gitweb">branches</a> |
589 <a href="/branches?style=gitweb">branches</a> |
590 <a href="/file/1d22e65f027e?style=gitweb">files</a>
590 <a href="/file/1d22e65f027e?style=gitweb">files</a>
591 <br/>
591 <br/>
592 </div>
592 </div>
593
593
594 <div class="title">&nbsp;</div>
594 <div class="title">&nbsp;</div>
595 <table cellspacing="0">
595 <table cellspacing="0">
596 <tr><td>description</td><td>unknown</td></tr>
596 <tr><td>description</td><td>unknown</td></tr>
597 <tr><td>owner</td><td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td></tr>
597 <tr><td>owner</td><td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td></tr>
598 <tr><td>last change</td><td>Thu, 01 Jan 1970 00:00:00 +0000</td></tr>
598 <tr><td>last change</td><td>Thu, 01 Jan 1970 00:00:00 +0000</td></tr>
599 </table>
599 </table>
600
600
601 <div><a class="title" href="/shortlog?style=gitweb">changes</a></div>
601 <div><a class="title" href="/shortlog?style=gitweb">changes</a></div>
602 <table cellspacing="0">
602 <table cellspacing="0">
603
603
604 <tr class="parity0">
604 <tr class="parity0">
605 <td class="age"><i>1970-01-01</i></td>
605 <td class="age"><i>1970-01-01</i></td>
606 <td><i>test</i></td>
606 <td><i>test</i></td>
607 <td>
607 <td>
608 <a class="list" href="/rev/1d22e65f027e?style=gitweb">
608 <a class="list" href="/rev/1d22e65f027e?style=gitweb">
609 <b>branch</b>
609 <b>branch</b>
610 <span class="logtags"><span class="branchtag" title="stable">stable</span> <span class="tagtag" title="tip">tip</span> </span>
610 <span class="logtags"><span class="branchtag" title="stable">stable</span> <span class="tagtag" title="tip">tip</span> </span>
611 </a>
611 </a>
612 </td>
612 </td>
613 <td class="link" nowrap>
613 <td class="link" nowrap>
614 <a href="/rev/1d22e65f027e?style=gitweb">changeset</a> |
614 <a href="/rev/1d22e65f027e?style=gitweb">changeset</a> |
615 <a href="/file/1d22e65f027e?style=gitweb">files</a>
615 <a href="/file/1d22e65f027e?style=gitweb">files</a>
616 </td>
616 </td>
617 </tr>
617 </tr>
618 <tr class="parity1">
618 <tr class="parity1">
619 <td class="age"><i>1970-01-01</i></td>
619 <td class="age"><i>1970-01-01</i></td>
620 <td><i>test</i></td>
620 <td><i>test</i></td>
621 <td>
621 <td>
622 <a class="list" href="/rev/a4f92ed23982?style=gitweb">
622 <a class="list" href="/rev/a4f92ed23982?style=gitweb">
623 <b>Added tag 1.0 for changeset 2ef0ac749a14</b>
623 <b>Added tag 1.0 for changeset 2ef0ac749a14</b>
624 <span class="logtags"><span class="branchtag" title="default">default</span> </span>
624 <span class="logtags"><span class="branchtag" title="default">default</span> </span>
625 </a>
625 </a>
626 </td>
626 </td>
627 <td class="link" nowrap>
627 <td class="link" nowrap>
628 <a href="/rev/a4f92ed23982?style=gitweb">changeset</a> |
628 <a href="/rev/a4f92ed23982?style=gitweb">changeset</a> |
629 <a href="/file/a4f92ed23982?style=gitweb">files</a>
629 <a href="/file/a4f92ed23982?style=gitweb">files</a>
630 </td>
630 </td>
631 </tr>
631 </tr>
632 <tr class="parity0">
632 <tr class="parity0">
633 <td class="age"><i>1970-01-01</i></td>
633 <td class="age"><i>1970-01-01</i></td>
634 <td><i>test</i></td>
634 <td><i>test</i></td>
635 <td>
635 <td>
636 <a class="list" href="/rev/2ef0ac749a14?style=gitweb">
636 <a class="list" href="/rev/2ef0ac749a14?style=gitweb">
637 <b>base</b>
637 <b>base</b>
638 <span class="logtags"><span class="tagtag" title="1.0">1.0</span> </span>
638 <span class="logtags"><span class="tagtag" title="1.0">1.0</span> </span>
639 </a>
639 </a>
640 </td>
640 </td>
641 <td class="link" nowrap>
641 <td class="link" nowrap>
642 <a href="/rev/2ef0ac749a14?style=gitweb">changeset</a> |
642 <a href="/rev/2ef0ac749a14?style=gitweb">changeset</a> |
643 <a href="/file/2ef0ac749a14?style=gitweb">files</a>
643 <a href="/file/2ef0ac749a14?style=gitweb">files</a>
644 </td>
644 </td>
645 </tr>
645 </tr>
646 <tr class="light"><td colspan="4"><a class="list" href="/shortlog?style=gitweb">...</a></td></tr>
646 <tr class="light"><td colspan="4"><a class="list" href="/shortlog?style=gitweb">...</a></td></tr>
647 </table>
647 </table>
648
648
649 <div><a class="title" href="/tags?style=gitweb">tags</a></div>
649 <div><a class="title" href="/tags?style=gitweb">tags</a></div>
650 <table cellspacing="0">
650 <table cellspacing="0">
651
651
652 <tr class="parity0">
652 <tr class="parity0">
653 <td class="age"><i>1970-01-01</i></td>
653 <td class="age"><i>1970-01-01</i></td>
654 <td><a class="list" href="/rev/2ef0ac749a14?style=gitweb"><b>1.0</b></a></td>
654 <td><a class="list" href="/rev/2ef0ac749a14?style=gitweb"><b>1.0</b></a></td>
655 <td class="link">
655 <td class="link">
656 <a href="/rev/2ef0ac749a14?style=gitweb">changeset</a> |
656 <a href="/rev/2ef0ac749a14?style=gitweb">changeset</a> |
657 <a href="/log/2ef0ac749a14?style=gitweb">changelog</a> |
657 <a href="/log/2ef0ac749a14?style=gitweb">changelog</a> |
658 <a href="/file/2ef0ac749a14?style=gitweb">files</a>
658 <a href="/file/2ef0ac749a14?style=gitweb">files</a>
659 </td>
659 </td>
660 </tr>
660 </tr>
661 <tr class="light"><td colspan="3"><a class="list" href="/tags?style=gitweb">...</a></td></tr>
661 <tr class="light"><td colspan="3"><a class="list" href="/tags?style=gitweb">...</a></td></tr>
662 </table>
662 </table>
663
663
664 <div><a class="title" href="#">branches</a></div>
664 <div><a class="title" href="#">branches</a></div>
665 <table cellspacing="0">
665 <table cellspacing="0">
666
666
667 <tr class="parity0">
667 <tr class="parity0">
668 <td class="age"><i>1970-01-01</i></td>
668 <td class="age"><i>1970-01-01</i></td>
669 <td><a class="list" href="/shortlog/1d22e65f027e?style=gitweb"><b>1d22e65f027e</b></a></td>
669 <td><a class="list" href="/shortlog/1d22e65f027e?style=gitweb"><b>1d22e65f027e</b></a></td>
670 <td class="">stable</td>
670 <td class="">stable</td>
671 <td class="link">
671 <td class="link">
672 <a href="/changeset/1d22e65f027e?style=gitweb">changeset</a> |
672 <a href="/changeset/1d22e65f027e?style=gitweb">changeset</a> |
673 <a href="/log/1d22e65f027e?style=gitweb">changelog</a> |
673 <a href="/log/1d22e65f027e?style=gitweb">changelog</a> |
674 <a href="/file/1d22e65f027e?style=gitweb">files</a>
674 <a href="/file/1d22e65f027e?style=gitweb">files</a>
675 </td>
675 </td>
676 </tr>
676 </tr>
677 <tr class="parity1">
677 <tr class="parity1">
678 <td class="age"><i>1970-01-01</i></td>
678 <td class="age"><i>1970-01-01</i></td>
679 <td><a class="list" href="/shortlog/a4f92ed23982?style=gitweb"><b>a4f92ed23982</b></a></td>
679 <td><a class="list" href="/shortlog/a4f92ed23982?style=gitweb"><b>a4f92ed23982</b></a></td>
680 <td class="">default</td>
680 <td class="">default</td>
681 <td class="link">
681 <td class="link">
682 <a href="/changeset/a4f92ed23982?style=gitweb">changeset</a> |
682 <a href="/changeset/a4f92ed23982?style=gitweb">changeset</a> |
683 <a href="/log/a4f92ed23982?style=gitweb">changelog</a> |
683 <a href="/log/a4f92ed23982?style=gitweb">changelog</a> |
684 <a href="/file/a4f92ed23982?style=gitweb">files</a>
684 <a href="/file/a4f92ed23982?style=gitweb">files</a>
685 </td>
685 </td>
686 </tr>
686 </tr>
687 <tr class="light">
687 <tr class="light">
688 <td colspan="4"><a class="list" href="#">...</a></td>
688 <td colspan="4"><a class="list" href="#">...</a></td>
689 </tr>
689 </tr>
690 </table>
690 </table>
691 <div class="page_footer">
691 <div class="page_footer">
692 <div class="page_footer_text">test</div>
692 <div class="page_footer_text">test</div>
693 <div class="rss_logo">
693 <div class="rss_logo">
694 <a href="/rss-log">RSS</a>
694 <a href="/rss-log">RSS</a>
695 <a href="/atom-log">Atom</a>
695 <a href="/atom-log">Atom</a>
696 </div>
696 </div>
697 <br />
697 <br />
698
698
699 </div>
699 </div>
700 </body>
700 </body>
701 </html>
701 </html>
702
702
703 200 Script output follows
703 200 Script output follows
704
704
705 <?xml version="1.0" encoding="ascii"?>
705 <?xml version="1.0" encoding="ascii"?>
706 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
706 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
707 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
707 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
708 <head>
708 <head>
709 <link rel="icon" href="/static/hgicon.png" type="image/png" />
709 <link rel="icon" href="/static/hgicon.png" type="image/png" />
710 <meta name="robots" content="index, nofollow"/>
710 <meta name="robots" content="index, nofollow"/>
711 <link rel="stylesheet" href="/static/style-gitweb.css" type="text/css" />
711 <link rel="stylesheet" href="/static/style-gitweb.css" type="text/css" />
712
712
713
713
714 <title>test: Graph</title>
714 <title>test: Graph</title>
715 <link rel="alternate" type="application/atom+xml"
715 <link rel="alternate" type="application/atom+xml"
716 href="/atom-log" title="Atom feed for test"/>
716 href="/atom-log" title="Atom feed for test"/>
717 <link rel="alternate" type="application/rss+xml"
717 <link rel="alternate" type="application/rss+xml"
718 href="/rss-log" title="RSS feed for test"/>
718 href="/rss-log" title="RSS feed for test"/>
719 <!--[if IE]><script type="text/javascript" src="/static/excanvas.js"></script><![endif]-->
719 <!--[if IE]><script type="text/javascript" src="/static/excanvas.js"></script><![endif]-->
720 </head>
720 </head>
721 <body>
721 <body>
722
722
723 <div class="page_header">
723 <div class="page_header">
724 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="/summary?style=gitweb">test</a> / graph
724 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="/summary?style=gitweb">test</a> / graph
725 </div>
725 </div>
726
726
727 <form action="/log">
727 <form action="/log">
728 <input type="hidden" name="style" value="gitweb" />
728 <input type="hidden" name="style" value="gitweb" />
729 <div class="search">
729 <div class="search">
730 <input type="text" name="rev" />
730 <input type="text" name="rev" />
731 </div>
731 </div>
732 </form>
732 </form>
733 <div class="page_nav">
733 <div class="page_nav">
734 <a href="/summary?style=gitweb">summary</a> |
734 <a href="/summary?style=gitweb">summary</a> |
735 <a href="/shortlog?style=gitweb">shortlog</a> |
735 <a href="/shortlog?style=gitweb">shortlog</a> |
736 <a href="/log/2?style=gitweb">changelog</a> |
736 <a href="/log/2?style=gitweb">changelog</a> |
737 graph |
737 graph |
738 <a href="/tags?style=gitweb">tags</a> |
738 <a href="/tags?style=gitweb">tags</a> |
739 <a href="/branches?style=gitweb">branches</a> |
739 <a href="/branches?style=gitweb">branches</a> |
740 <a href="/file/1d22e65f027e?style=gitweb">files</a>
740 <a href="/file/1d22e65f027e?style=gitweb">files</a>
741 <br/>
741 <br/>
742 <a href="/graph/2?style=gitweb&revcount=30">less</a>
742 <a href="/graph/2?style=gitweb&revcount=30">less</a>
743 <a href="/graph/2?style=gitweb&revcount=120">more</a>
743 <a href="/graph/2?style=gitweb&revcount=120">more</a>
744 | <a href="/graph/2ef0ac749a14?style=gitweb">(0)</a> <a href="/graph/2ef0ac749a14?style=gitweb">-2</a> <a href="/graph/tip?style=gitweb">tip</a> <br/>
744 | <a href="/graph/2ef0ac749a14?style=gitweb">(0)</a> <a href="/graph/2ef0ac749a14?style=gitweb">-2</a> <a href="/graph/tip?style=gitweb">tip</a> <br/>
745 </div>
745 </div>
746
746
747 <div class="title">&nbsp;</div>
747 <div class="title">&nbsp;</div>
748
748
749 <noscript>The revision graph only works with JavaScript-enabled browsers.</noscript>
749 <noscript>The revision graph only works with JavaScript-enabled browsers.</noscript>
750
750
751 <div id="wrapper">
751 <div id="wrapper">
752 <ul id="nodebgs"></ul>
752 <ul id="nodebgs"></ul>
753 <canvas id="graph" width="224" height="129"></canvas>
753 <canvas id="graph" width="224" height="129"></canvas>
754 <ul id="graphnodes"></ul>
754 <ul id="graphnodes"></ul>
755 </div>
755 </div>
756
756
757 <script type="text/javascript" src="/static/graph.js"></script>
757 <script type="text/javascript" src="/static/graph.js"></script>
758 <script>
758 <script>
759 <!-- hide script content
759 <!-- hide script content
760
760
761 var data = [["1d22e65f027e", [0, 1], [[0, 0, 1]], "branch", "test", "1970-01-01", ["stable", true], ["tip"]], ["a4f92ed23982", [0, 1], [[0, 0, 1]], "Added tag 1.0 for changeset 2ef0ac749a14", "test", "1970-01-01", ["default", true], []], ["2ef0ac749a14", [0, 1], [], "base", "test", "1970-01-01", ["default", false], ["1.0"]]];
761 var data = [["1d22e65f027e", [0, 1], [[0, 0, 1]], "branch", "test", "1970-01-01", ["stable", true], ["tip"]], ["a4f92ed23982", [0, 1], [[0, 0, 1]], "Added tag 1.0 for changeset 2ef0ac749a14", "test", "1970-01-01", ["default", true], []], ["2ef0ac749a14", [0, 1], [], "base", "test", "1970-01-01", ["default", false], ["1.0"]]];
762 var graph = new Graph();
762 var graph = new Graph();
763 graph.scale(39);
763 graph.scale(39);
764
764
765 graph.edge = function(x0, y0, x1, y1, color) {
765 graph.edge = function(x0, y0, x1, y1, color) {
766
766
767 this.setColor(color, 0.0, 0.65);
767 this.setColor(color, 0.0, 0.65);
768 this.ctx.beginPath();
768 this.ctx.beginPath();
769 this.ctx.moveTo(x0, y0);
769 this.ctx.moveTo(x0, y0);
770 this.ctx.lineTo(x1, y1);
770 this.ctx.lineTo(x1, y1);
771 this.ctx.stroke();
771 this.ctx.stroke();
772
772
773 }
773 }
774
774
775 var revlink = '<li style="_STYLE"><span class="desc">';
775 var revlink = '<li style="_STYLE"><span class="desc">';
776 revlink += '<a class="list" href="/rev/_NODEID?style=gitweb" title="_NODEID"><b>_DESC</b></a>';
776 revlink += '<a class="list" href="/rev/_NODEID?style=gitweb" title="_NODEID"><b>_DESC</b></a>';
777 revlink += '</span> _TAGS';
777 revlink += '</span> _TAGS';
778 revlink += '<span class="info">_DATE, by _USER</span></li>';
778 revlink += '<span class="info">_DATE, by _USER</span></li>';
779
779
780 graph.vertex = function(x, y, color, parity, cur) {
780 graph.vertex = function(x, y, color, parity, cur) {
781
781
782 this.ctx.beginPath();
782 this.ctx.beginPath();
783 color = this.setColor(color, 0.25, 0.75);
783 color = this.setColor(color, 0.25, 0.75);
784 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
784 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
785 this.ctx.fill();
785 this.ctx.fill();
786
786
787 var bg = '<li class="bg parity' + parity + '"></li>';
787 var bg = '<li class="bg parity' + parity + '"></li>';
788 var left = (this.columns + 1) * this.bg_height;
788 var left = (this.columns + 1) * this.bg_height;
789 var nstyle = 'padding-left: ' + left + 'px;';
789 var nstyle = 'padding-left: ' + left + 'px;';
790 var item = revlink.replace(/_STYLE/, nstyle);
790 var item = revlink.replace(/_STYLE/, nstyle);
791 item = item.replace(/_PARITY/, 'parity' + parity);
791 item = item.replace(/_PARITY/, 'parity' + parity);
792 item = item.replace(/_NODEID/, cur[0]);
792 item = item.replace(/_NODEID/, cur[0]);
793 item = item.replace(/_NODEID/, cur[0]);
793 item = item.replace(/_NODEID/, cur[0]);
794 item = item.replace(/_DESC/, cur[3]);
794 item = item.replace(/_DESC/, cur[3]);
795 item = item.replace(/_USER/, cur[4]);
795 item = item.replace(/_USER/, cur[4]);
796 item = item.replace(/_DATE/, cur[5]);
796 item = item.replace(/_DATE/, cur[5]);
797
797
798 var tagspan = '';
798 var tagspan = '';
799 if (cur[7].length || (cur[6][0] != 'default' || cur[6][1])) {
799 if (cur[7].length || (cur[6][0] != 'default' || cur[6][1])) {
800 tagspan = '<span class="logtags">';
800 tagspan = '<span class="logtags">';
801 if (cur[6][1]) {
801 if (cur[6][1]) {
802 tagspan += '<span class="branchtag" title="' + cur[6][0] + '">';
802 tagspan += '<span class="branchtag" title="' + cur[6][0] + '">';
803 tagspan += cur[6][0] + '</span> ';
803 tagspan += cur[6][0] + '</span> ';
804 } else if (!cur[6][1] && cur[6][0] != 'default') {
804 } else if (!cur[6][1] && cur[6][0] != 'default') {
805 tagspan += '<span class="inbranchtag" title="' + cur[6][0] + '">';
805 tagspan += '<span class="inbranchtag" title="' + cur[6][0] + '">';
806 tagspan += cur[6][0] + '</span> ';
806 tagspan += cur[6][0] + '</span> ';
807 }
807 }
808 if (cur[7].length) {
808 if (cur[7].length) {
809 for (var t in cur[7]) {
809 for (var t in cur[7]) {
810 var tag = cur[7][t];
810 var tag = cur[7][t];
811 tagspan += '<span class="tagtag">' + tag + '</span> ';
811 tagspan += '<span class="tagtag">' + tag + '</span> ';
812 }
812 }
813 }
813 }
814 tagspan += '</span>';
814 tagspan += '</span>';
815 }
815 }
816
816
817 item = item.replace(/_TAGS/, tagspan);
817 item = item.replace(/_TAGS/, tagspan);
818 return [bg, item];
818 return [bg, item];
819
819
820 }
820 }
821
821
822 graph.render(data);
822 graph.render(data);
823
823
824 // stop hiding script -->
824 // stop hiding script -->
825 </script>
825 </script>
826
826
827 <div class="page_nav">
827 <div class="page_nav">
828 <a href="/graph/2?style=gitweb&revcount=30">less</a>
828 <a href="/graph/2?style=gitweb&revcount=30">less</a>
829 <a href="/graph/2?style=gitweb&revcount=120">more</a>
829 <a href="/graph/2?style=gitweb&revcount=120">more</a>
830 | <a href="/graph/2ef0ac749a14?style=gitweb">(0)</a> <a href="/graph/2ef0ac749a14?style=gitweb">-2</a> <a href="/graph/tip?style=gitweb">tip</a>
830 | <a href="/graph/2ef0ac749a14?style=gitweb">(0)</a> <a href="/graph/2ef0ac749a14?style=gitweb">-2</a> <a href="/graph/tip?style=gitweb">tip</a>
831 </div>
831 </div>
832
832
833 <div class="page_footer">
833 <div class="page_footer">
834 <div class="page_footer_text">test</div>
834 <div class="page_footer_text">test</div>
835 <div class="rss_logo">
835 <div class="rss_logo">
836 <a href="/rss-log">RSS</a>
836 <a href="/rss-log">RSS</a>
837 <a href="/atom-log">Atom</a>
837 <a href="/atom-log">Atom</a>
838 </div>
838 </div>
839 <br />
839 <br />
840
840
841 </div>
841 </div>
842 </body>
842 </body>
843 </html>
843 </html>
844
844
845 % capabilities
845 % capabilities
846 200 Script output follows
846 200 Script output follows
847
847
848 lookup changegroupsubset branchmap pushkey unbundle=HG10GZ,HG10BZ,HG10UN% heads
848 lookup changegroupsubset branchmap pushkey unbundle=HG10GZ,HG10BZ,HG10UN% heads
849 200 Script output follows
849 200 Script output follows
850
850
851 1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe
851 1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe
852 % lookup
852 % lookup
853 200 Script output follows
853 200 Script output follows
854
854
855 0 'key'
855 0 'key'
856 % branches
856 % branches
857 200 Script output follows
857 200 Script output follows
858
858
859 1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe 2ef0ac749a14e4f57a5a822464a0902c6f7f448f 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000
859 1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe 2ef0ac749a14e4f57a5a822464a0902c6f7f448f 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000
860 % changegroup
860 % changegroup
861 200 Script output follows
861 200 Script output follows
862
862
863 x\x9c\xbdTMHUA\x14\xbe\xa8\xf9\xec\xda&\x10\x11*\xb8\x88\x81\x99\xbef\xe6\xce\xbdw\xc6\xf2a\x16E\x1b\x11[%\x98\xcc\xaf\x8f\x8c\xf7\xc0\xf7\x82
863 x\x9c\xbdTMHUA\x14\xbe\xa8\xf9\xec\xda&\x10\x11*\xb8\x88\x81\x99\xbef\xe6\xce\xbdw\xc6\xf2a\x16E\x1b\x11[%\x98\xcc\xaf\x8f\x8c\xf7\xc0\xf7\x82
864 4\x11KP2m\x95\xad*\xabE\x05AP\xd0\xc22Z\x14\xf9\x03\xb9j\xa3\x9b$\xa4MJ\xb4\x90\xc0\x9a\x9bO0\x10\xdf\x13\xa2\x81\x0f\x869g\xe6|\xe7\x9c\xef\x8ceY\xf7\xa2KO\xd2\xb7K\x16~\
864 4\x11KP2m\x95\xad*\xabE\x05AP\xd0\xc22Z\x14\xf9\x03\xb9j\xa3\x9b$\xa4MJ\xb4\x90\xc0\x9a\x9bO0\x10\xdf\x13\xa2\x81\x0f\x869g\xe6|\xe7\x9c\xef\x8ceY\xf7\xa2KO\xd2\xb7K\x16~\
865 \xe9\xad\x90w\x86\xab\x93W\x8e\xdf\xb0r\\Y\xee6(\xa2)\xf6\x95\xc6\x01\xe4\x1az\x80R\xe8kN\x98\xe7R\xa4\xa9K@\xe0!A\xb4k\xa7U*m\x03\x07\xd8\x92\x1d\xd2\xc9\xa4\x1d\xc2\xe6,\xa5\xcc+\x1f\xef\xafDgi\xef\xab\x1d\x1d\xb7\x9a\xe7[W\xfbc\x8f\xde-\xcd\xe7\xcaz\xb3\xbb\x19\xd3\x81\x10>c>\x08\x00"X\x11\xc2\x84@\xd2\xe7B*L\x00\x01P\x04R\xc3@\xbaB0\xdb8#\x83:\x83\xa2h\xbc=\xcd\xdaS\xe1Y,L\xd3\xa0\xf2\xa8\x94J:\xe6\xd8\x81Q\xe0\xe8d\xa7#\xe2,\xd1\xaeR*\xed \xa5\x01\x13\x01\xa6\x0cb\xe3;\xbe\xaf\xfcK[^wK\xe1N\xaf\xbbk\xe8B\xd1\xf4\xc1\x07\xb3\xab[\x10\xfdkmvwcB\xa6\xa4\xd4G\xc4D\xc2\x141\xad\x91\x10\x00\x08J\x81\xcb}\xee\t\xee+W\xba\x8a\x80\x90|\xd4\xa0\xd6\xa0\xd4T\xde\xe1\x9d,!\xe2\xb5\xa94\xe3\xe7\xd5\x9f\x06\x18\xcba\x03aP\xb8f\xcd\x04\x1a_\\9\xf1\xed\xe4\x9e\xe5\xa6\xd1\xd2\x9f\x03\xa7o\xae\x90H\xf3\xfb\xef\xffH3\xadk
865 \xe9\xad\x90w\x86\xab\x93W\x8e\xdf\xb0r\\Y\xee6(\xa2)\xf6\x95\xc6\x01\xe4\x1az\x80R\xe8kN\x98\xe7R\xa4\xa9K@\xe0!A\xb4k\xa7U*m\x03\x07\xd8\x92\x1d\xd2\xc9\xa4\x1d\xc2\xe6,\xa5\xcc+\x1f\xef\xafDgi\xef\xab\x1d\x1d\xb7\x9a\xe7[W\xfbc\x8f\xde-\xcd\xe7\xcaz\xb3\xbb\x19\xd3\x81\x10>c>\x08\x00"X\x11\xc2\x84@\xd2\xe7B*L\x00\x01P\x04R\xc3@\xbaB0\xdb8#\x83:\x83\xa2h\xbc=\xcd\xdaS\xe1Y,L\xd3\xa0\xf2\xa8\x94J:\xe6\xd8\x81Q\xe0\xe8d\xa7#\xe2,\xd1\xaeR*\xed \xa5\x01\x13\x01\xa6\x0cb\xe3;\xbe\xaf\xfcK[^wK\xe1N\xaf\xbbk\xe8B\xd1\xf4\xc1\x07\xb3\xab[\x10\xfdkmvwcB\xa6\xa4\xd4G\xc4D\xc2\x141\xad\x91\x10\x00\x08J\x81\xcb}\xee\t\xee+W\xba\x8a\x80\x90|\xd4\xa0\xd6\xa0\xd4T\xde\xe1\x9d,!\xe2\xb5\xa94\xe3\xe7\xd5\x9f\x06\x18\xcba\x03aP\xb8f\xcd\x04\x1a_\\9\xf1\xed\xe4\x9e\xe5\xa6\xd1\xd2\x9f\x03\xa7o\xae\x90H\xf3\xfb\xef\xffH3\xadk
866 \xb0\x90\x92\x88\xb9\x14"\x068\xc2\x1e@\x00\xbb\x8a)\xd3\'\x859
866 \xb0\x90\x92\x88\xb9\x14"\x068\xc2\x1e@\x00\xbb\x8a)\xd3\'\x859
867 \xa8\x80\x84S \xa5\xbd-g\x13`\xe4\xdc\xc3H^\xdf\xe2\xc0TM\xc7\xf4BO\xcf\xde\xae\xe5\xae#\x1frM(K\x97`F\x19\x16s\x05GD\xb9\x01\xc1\x00+\x8c|\x9fp\xc11\xf0\x14\x00\x9cJ\x82<\xe0\x12\x9f\xc1\x90\xd0\xf5\xc8\x19>Pr\xaa\xeaW\xf5\xc4\xae\xd1\xfc\x17\xcf\'\x13u\xb1\x9e\xcdHnC\x0e\xcc`\xc8\xa0&\xac\x0e\xf1|\x8c\x10$\xc4\x8c\xa2p\x05`\xdc\x08 \x80\xc4\xd7Rr-\x94\x10\x102\xedi;\xf3f\xf1z\x16\x86\xdb\xd8d\xe5\xe7\x8b\xf5\x8d\rzp\xb2\xfe\xac\xf5\xf2\xd3\xfe\xfckws\xedt\x96b\xd5l\x1c\x0b\x85\xb5\x170\x8f\x11\x84\xb0\x8f\x19\xa0\x00\t_\x07\x1ac\xa2\xc3\x89Z\xe7\x96\xf9 \xccNFg\xc7F\xaa\x8a+\x9a\x9cc_\x17\x1b\x17\x9e]z38<\x97+\xb5,",\xc8\xc8?\\\x91\xff\x17.~U\x96\x97\xf5%\xdeN<\x8e\xf5\x97%\xe7^\xcfL\xed~\xda\x96k\xdc->\x86\x02\x83"\x96H\xa6\xe3\xaas=-\xeb7\xe5\xda\x8f\xbc
867 \xa8\x80\x84S \xa5\xbd-g\x13`\xe4\xdc\xc3H^\xdf\xe2\xc0TM\xc7\xf4BO\xcf\xde\xae\xe5\xae#\x1frM(K\x97`F\x19\x16s\x05GD\xb9\x01\xc1\x00+\x8c|\x9fp\xc11\xf0\x14\x00\x9cJ\x82<\xe0\x12\x9f\xc1\x90\xd0\xf5\xc8\x19>Pr\xaa\xeaW\xf5\xc4\xae\xd1\xfc\x17\xcf\'\x13u\xb1\x9e\xcdHnC\x0e\xcc`\xc8\xa0&\xac\x0e\xf1|\x8c\x10$\xc4\x8c\xa2p\x05`\xdc\x08 \x80\xc4\xd7Rr-\x94\x10\x102\xedi;\xf3f\xf1z\x16\x86\xdb\xd8d\xe5\xe7\x8b\xf5\x8d\rzp\xb2\xfe\xac\xf5\xf2\xd3\xfe\xfckws\xedt\x96b\xd5l\x1c\x0b\x85\xb5\x170\x8f\x11\x84\xb0\x8f\x19\xa0\x00\t_\x07\x1ac\xa2\xc3\x89Z\xe7\x96\xf9 \xccNFg\xc7F\xaa\x8a+\x9a\x9cc_\x17\x1b\x17\x9e]z38<\x97+\xb5,",\xc8\xc8?\\\x91\xff\x17.~U\x96\x97\xf5%\xdeN<\x8e\xf5\x97%\xe7^\xcfL\xed~\xda\x96k\xdc->\x86\x02\x83"\x96H\xa6\xe3\xaas=-\xeb7\xe5\xda\x8f\xbc
868 % stream_out
868 % stream_out
869 200 Script output follows
869 200 Script output follows
870
870
871 1
871 1
872 % failing unbundle, requires POST request
872 % failing unbundle, requires POST request
873 405 push requires POST request
873 405 push requires POST request
874
874
875 0
875 0
876 push requires POST request
876 push requires POST request
877 % Static files
877 % Static files
878 200 Script output follows
878 200 Script output follows
879
879
880 a { text-decoration:none; }
880 a { text-decoration:none; }
881 .age { white-space:nowrap; }
881 .age { white-space:nowrap; }
882 .date { white-space:nowrap; }
882 .date { white-space:nowrap; }
883 .indexlinks { white-space:nowrap; }
883 .indexlinks { white-space:nowrap; }
884 .parity0 { background-color: #ddd; }
884 .parity0 { background-color: #ddd; }
885 .parity1 { background-color: #eee; }
885 .parity1 { background-color: #eee; }
886 .lineno { width: 60px; color: #aaa; font-size: smaller;
886 .lineno { width: 60px; color: #aaa; font-size: smaller;
887 text-align: right; }
887 text-align: right; }
888 .plusline { color: green; }
888 .plusline { color: green; }
889 .minusline { color: red; }
889 .minusline { color: red; }
890 .atline { color: purple; }
890 .atline { color: purple; }
891 .annotate { font-size: smaller; text-align: right; padding-right: 1em; }
891 .annotate { font-size: smaller; text-align: right; padding-right: 1em; }
892 .buttons a {
892 .buttons a {
893 background-color: #666;
893 background-color: #666;
894 padding: 2pt;
894 padding: 2pt;
895 color: white;
895 color: white;
896 font-family: sans;
896 font-family: sans;
897 font-weight: bold;
897 font-weight: bold;
898 }
898 }
899 .navigate a {
899 .navigate a {
900 background-color: #ccc;
900 background-color: #ccc;
901 padding: 2pt;
901 padding: 2pt;
902 font-family: sans;
902 font-family: sans;
903 color: black;
903 color: black;
904 }
904 }
905
905
906 .metatag {
906 .metatag {
907 background-color: #888;
907 background-color: #888;
908 color: white;
908 color: white;
909 text-align: right;
909 text-align: right;
910 }
910 }
911
911
912 /* Common */
912 /* Common */
913 pre { margin: 0; }
913 pre { margin: 0; }
914
914
915 .logo {
915 .logo {
916 float: right;
916 float: right;
917 clear: right;
917 clear: right;
918 }
918 }
919
919
920 /* Changelog/Filelog entries */
920 /* Changelog/Filelog entries */
921 .logEntry { width: 100%; }
921 .logEntry { width: 100%; }
922 .logEntry .age { width: 15%; }
922 .logEntry .age { width: 15%; }
923 .logEntry th { font-weight: normal; text-align: right; vertical-align: top; }
923 .logEntry th { font-weight: normal; text-align: right; vertical-align: top; }
924 .logEntry th.age, .logEntry th.firstline { font-weight: bold; }
924 .logEntry th.age, .logEntry th.firstline { font-weight: bold; }
925 .logEntry th.firstline { text-align: left; width: inherit; }
925 .logEntry th.firstline { text-align: left; width: inherit; }
926
926
927 /* Shortlog entries */
927 /* Shortlog entries */
928 .slogEntry { width: 100%; }
928 .slogEntry { width: 100%; }
929 .slogEntry .age { width: 8em; }
929 .slogEntry .age { width: 8em; }
930 .slogEntry td { font-weight: normal; text-align: left; vertical-align: top; }
930 .slogEntry td { font-weight: normal; text-align: left; vertical-align: top; }
931 .slogEntry td.author { width: 15em; }
931 .slogEntry td.author { width: 15em; }
932
932
933 /* Tag entries */
933 /* Tag entries */
934 #tagEntries { list-style: none; margin: 0; padding: 0; }
934 #tagEntries { list-style: none; margin: 0; padding: 0; }
935 #tagEntries .tagEntry { list-style: none; margin: 0; padding: 0; }
935 #tagEntries .tagEntry { list-style: none; margin: 0; padding: 0; }
936
936
937 /* Changeset entry */
937 /* Changeset entry */
938 #changesetEntry { }
938 #changesetEntry { }
939 #changesetEntry th { font-weight: normal; background-color: #888; color: #fff; text-align: right; }
939 #changesetEntry th { font-weight: normal; background-color: #888; color: #fff; text-align: right; }
940 #changesetEntry th.files, #changesetEntry th.description { vertical-align: top; }
940 #changesetEntry th.files, #changesetEntry th.description { vertical-align: top; }
941
941
942 /* File diff view */
942 /* File diff view */
943 #filediffEntry { }
943 #filediffEntry { }
944 #filediffEntry th { font-weight: normal; background-color: #888; color: #fff; text-align: right; }
944 #filediffEntry th { font-weight: normal; background-color: #888; color: #fff; text-align: right; }
945
945
946 /* Graph */
946 /* Graph */
947 div#wrapper {
947 div#wrapper {
948 position: relative;
948 position: relative;
949 margin: 0;
949 margin: 0;
950 padding: 0;
950 padding: 0;
951 }
951 }
952
952
953 canvas {
953 canvas {
954 position: absolute;
954 position: absolute;
955 z-index: 5;
955 z-index: 5;
956 top: -0.6em;
956 top: -0.6em;
957 margin: 0;
957 margin: 0;
958 }
958 }
959
959
960 ul#nodebgs {
960 ul#nodebgs {
961 list-style: none inside none;
961 list-style: none inside none;
962 padding: 0;
962 padding: 0;
963 margin: 0;
963 margin: 0;
964 top: -0.7em;
964 top: -0.7em;
965 }
965 }
966
966
967 ul#graphnodes li, ul#nodebgs li {
967 ul#graphnodes li, ul#nodebgs li {
968 height: 39px;
968 height: 39px;
969 }
969 }
970
970
971 ul#graphnodes {
971 ul#graphnodes {
972 position: absolute;
972 position: absolute;
973 z-index: 10;
973 z-index: 10;
974 top: -0.85em;
974 top: -0.85em;
975 list-style: none inside none;
975 list-style: none inside none;
976 padding: 0;
976 padding: 0;
977 }
977 }
978
978
979 ul#graphnodes li .info {
979 ul#graphnodes li .info {
980 display: block;
980 display: block;
981 font-size: 70%;
981 font-size: 70%;
982 position: relative;
982 position: relative;
983 top: -1px;
983 top: -1px;
984 }
984 }
985 % Stop and restart with HGENCODING=cp932
985 % Stop and restart with HGENCODING=cp932
986 % Graph json escape of multibyte character
986 % Graph json escape of multibyte character
987 var data = [["40b4d6888e92", [0, 1], [[0, 0, 1]], "", "test", "1970-01-01", ["stable", true], ["tip"]], ["1d22e65f027e", [0, 1], [[0, 0, 1]], "branch", "test", "1970-01-01", ["stable", false], []], ["a4f92ed23982", [0, 1], [[0, 0, 1]], "Added tag 1.0 for changeset 2ef0ac749a14", "test", "1970-01-01", ["default", true], []], ["2ef0ac749a14", [0, 1], [], "base", "test", "1970-01-01", ["default", false], ["1.0"]]];
987 var data = [["40b4d6888e92", [0, 1], [[0, 0, 1]], "\u80fd", "test", "1970-01-01", ["stable", true], ["tip"]], ["1d22e65f027e", [0, 1], [[0, 0, 1]], "branch", "test", "1970-01-01", ["stable", false], []], ["a4f92ed23982", [0, 1], [[0, 0, 1]], "Added tag 1.0 for changeset 2ef0ac749a14", "test", "1970-01-01", ["default", true], []], ["2ef0ac749a14", [0, 1], [], "base", "test", "1970-01-01", ["default", false], ["1.0"]]];
988 % ERRORS ENCOUNTERED
988 % ERRORS ENCOUNTERED
General Comments 0
You need to be logged in to leave comments. Login now