##// END OF EJS Templates
hgweb: add links to diff and changeset in hover-box on annotate view
Denis Laxalde -
r29523:4b6afd1b default
parent child Browse files
Show More
@@ -1,339 +1,341
1 1 default = 'summary'
2 2 mimetype = 'text/html; charset={encoding}'
3 3 header = header.tmpl
4 4 footer = footer.tmpl
5 5 search = search.tmpl
6 6 changelog = changelog.tmpl
7 7 summary = summary.tmpl
8 8 error = error.tmpl
9 9 notfound = notfound.tmpl
10 10
11 11 help = help.tmpl
12 12 helptopics = helptopics.tmpl
13 13
14 14 helpentry = '
15 15 <tr><td>
16 16 <a href="{url|urlescape}help/{topic|escape}{sessionvars%urlparameter}">
17 17 {if(basename, '{basename|escape}', '{topic|escape}')}
18 18 </a>
19 19 </td><td>
20 20 {summary|escape}
21 21 </td></tr>'
22 22
23 23 naventry = '<a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
24 24 navshortentry = '<a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
25 25 navgraphentry = '<a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
26 26 filenaventry = '<a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
27 27 filedifflink = '<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
28 28 filenodelink = '
29 29 <tr class="parity{parity}">
30 30 <td><a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
31 31 <td></td>
32 32 <td class="link">
33 33 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
34 34 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
35 35 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
36 36 <a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
37 37 <a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
38 38 </td>
39 39 </tr>'
40 40 filenolink = '
41 41 <tr class="parity{parity}">
42 42 <td><a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
43 43 <td></td>
44 44 <td class="link">
45 45 file |
46 46 annotate |
47 47 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
48 48 <a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
49 49 <a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
50 50 </td>
51 51 </tr>'
52 52
53 53 nav = '{before%naventry} {after%naventry}'
54 54 navshort = '{before%navshortentry}{after%navshortentry}'
55 55 navgraph = '{before%navgraphentry}{after%navgraphentry}'
56 56 filenav = '{before%filenaventry}{after%filenaventry}'
57 57
58 58 fileellipses = '...'
59 59 changelogentry = changelogentry.tmpl
60 60 searchentry = changelogentry.tmpl
61 61 changeset = changeset.tmpl
62 62 manifest = manifest.tmpl
63 63 direntry = '
64 64 <tr class="parity{parity}">
65 65 <td style="font-family:monospace">drwxr-xr-x</td>
66 66 <td style="font-family:monospace"></td>
67 67 <td style="font-family:monospace"></td>
68 68 <td>
69 69 <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
70 70 <a href="{url|urlescape}file/{symrev}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">{emptydirs|escape}</a>
71 71 </td>
72 72 <td class="link">
73 73 <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a>
74 74 </td>
75 75 </tr>'
76 76 fileentry = '
77 77 <tr class="parity{parity}">
78 78 <td style="font-family:monospace">{permissions|permissions}</td>
79 79 <td style="font-family:monospace" align=right>{date|isodate}</td>
80 80 <td style="font-family:monospace" align=right>{size}</td>
81 81 <td class="list">
82 82 <a class="list" href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
83 83 </td>
84 84 <td class="link">
85 85 <a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
86 86 <a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
87 87 <a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
88 88 </td>
89 89 </tr>'
90 90 filerevision = filerevision.tmpl
91 91 fileannotate = fileannotate.tmpl
92 92 filediff = filediff.tmpl
93 93 filecomparison = filecomparison.tmpl
94 94 filelog = filelog.tmpl
95 95 fileline = '
96 96 <a href="#{lineid}"></a><span id="{lineid}">{strip(line|escape, '\r\n')}</span>'
97 97 annotateline = '
98 98 <tr id="{lineid}" style="font-family:monospace" class="parity{parity}{ifeq(node, originalnode, ' thisrev')}">
99 99 <td class="annotate linenr" style="text-align: right;">
100 100 {if(blockhead,
101 101 '<a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
102 102 {author|user}@{rev}
103 103 </a>')}
104 104 <div class="annotate-info">
105 105 <div>{node|short}: {desc|escape|firstline}</div>
106 106 <div>parents: {parents%annotateparent}</div>
107 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>
108 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a>
107 109 </div>
108 110 </td>
109 111 <td><pre><a class="linenr" href="#{lineid}">{linenumber}</a></pre></td>
110 112 <td><pre>{line|escape}</pre></td>
111 113 </tr>'
112 114 annotateparent = '
113 115 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rev}</a>'
114 116 difflineplus = '
115 117 <a href="#{lineid}"></a><span id="{lineid}" class="difflineplus">{strip(line|escape, '\r\n')}</span>'
116 118 difflineminus = '
117 119 <a href="#{lineid}"></a><span id="{lineid}" class="difflineminus">{strip(line|escape, '\r\n')}</span>'
118 120 difflineat = '
119 121 <a href="#{lineid}"></a><span id="{lineid}" class="difflineat">{strip(line|escape, '\r\n')}</span>'
120 122 diffline = '
121 123 <a href="#{lineid}"></a><span id="{lineid}">{strip(line|escape, '\r\n')}</span>'
122 124
123 125 comparisonblock ='
124 126 <tbody class="block">
125 127 {lines}
126 128 </tbody>'
127 129 comparisonline = '
128 130 <tr id="{lineid}" style="font-family:monospace">
129 131 <td class="{type}"><pre><a class="linenr" href="#{lineid}">{leftlinenumber}</a> {leftline|escape}</pre></td>
130 132 <td class="{type}"><pre><a class="linenr" href="#{lineid}">{rightlinenumber}</a> {rightline|escape}</pre></td>
131 133 </tr>'
132 134
133 135 changelogparent = '
134 136 <tr>
135 137 <th class="parent">parent {rev}:</th>
136 138 <td class="parent">
137 139 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
138 140 </td>
139 141 </tr>'
140 142 changesetlink = '<a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
141 143 changesetbranch = '<tr><td>branch</td><td>{name|escape}</td></tr>'
142 144 changesetparent = '
143 145 <tr>
144 146 <td>parent {rev}</td>
145 147 <td style="font-family:monospace">
146 148 {changesetlink}
147 149 </td>
148 150 </tr>'
149 151 changesetparentdiff = '
150 152 <tr>
151 153 <td>parent {rev}</td>
152 154 <td style="font-family:monospace">
153 155 {changesetlink} {ifeq(node, basenode, '(current diff)', '({difffrom})')}
154 156 </td>
155 157 </tr>'
156 158 difffrom = '<a href="{url|urlescape}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">diff</a>'
157 159 filerevbranch = '<tr><td>branch</td><td>{name|escape}</td></tr>'
158 160 filerevparent = '
159 161 <tr>
160 162 <td>parent {rev}</td>
161 163 <td style="font-family:monospace">
162 164 <a class="list" href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
163 165 {rename%filerename}{node|short}
164 166 </a>
165 167 </td>
166 168 </tr>'
167 169 filerename = '{file|escape}@'
168 170 filelogrename = '| <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>'
169 171 fileannotateparent = '
170 172 <tr>
171 173 <td>parent {rev}</td>
172 174 <td style="font-family:monospace">
173 175 <a class="list" href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
174 176 {rename%filerename}{node|short}
175 177 </a>
176 178 </td>
177 179 </tr>'
178 180 changelogchild = '
179 181 <tr>
180 182 <th class="child">child {rev}:</th>
181 183 <td class="child"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
182 184 </tr>'
183 185 changesetchild = '
184 186 <tr>
185 187 <td>child {rev}</td>
186 188 <td style="font-family:monospace">
187 189 <a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
188 190 </td>
189 191 </tr>'
190 192 filerevchild = '
191 193 <tr>
192 194 <td>child {rev}</td>
193 195 <td style="font-family:monospace">
194 196 <a class="list" href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
195 197 </tr>'
196 198 fileannotatechild = '
197 199 <tr>
198 200 <td>child {rev}</td>
199 201 <td style="font-family:monospace">
200 202 <a class="list" href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
201 203 </tr>'
202 204 tags = tags.tmpl
203 205 tagentry = '
204 206 <tr class="parity{parity}">
205 207 <td class="age"><i class="age">{date|rfc822date}</i></td>
206 208 <td><a class="list" href="{url|urlescape}rev/{tag|revescape}{sessionvars%urlparameter}"><b>{tag|escape}</b></a></td>
207 209 <td class="link">
208 210 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
209 211 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
210 212 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
211 213 </td>
212 214 </tr>'
213 215 bookmarks = bookmarks.tmpl
214 216 bookmarkentry = '
215 217 <tr class="parity{parity}">
216 218 <td class="age"><i class="age">{date|rfc822date}</i></td>
217 219 <td><a class="list" href="{url|urlescape}rev/{bookmark|revescape}{sessionvars%urlparameter}"><b>{bookmark|escape}</b></a></td>
218 220 <td class="link">
219 221 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
220 222 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
221 223 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
222 224 </td>
223 225 </tr>'
224 226 branches = branches.tmpl
225 227 branchentry = '
226 228 <tr class="parity{parity}">
227 229 <td class="age"><i class="age">{date|rfc822date}</i></td>
228 230 <td class="{status}"><a class="list" href="{url|urlescape}shortlog/{branch|revescape}{sessionvars%urlparameter}"><b>{branch|escape}</b></a></td>
229 231 <td class="link">
230 232 <a href="{url|urlescape}changeset/{node|short}{sessionvars%urlparameter}">changeset</a> |
231 233 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
232 234 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
233 235 </td>
234 236 </tr>'
235 237 diffblock = '<div class="diffblock"><pre class="sourcelines">{lines}</pre></div>'
236 238 filediffparent = '
237 239 <tr>
238 240 <td>parent {rev}</td>
239 241 <td style="font-family:monospace">
240 242 <a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
241 243 {node|short}
242 244 </a>
243 245 </td>
244 246 </tr>'
245 247 filecompparent = '
246 248 <tr>
247 249 <td>parent {rev}</td>
248 250 <td style="font-family:monospace">
249 251 <a class="list" href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
250 252 {node|short}
251 253 </a>
252 254 </td>
253 255 </tr>'
254 256 filelogparent = '
255 257 <tr>
256 258 <td align="right">parent {rev}:&nbsp;</td>
257 259 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
258 260 </tr>'
259 261 filediffchild = '
260 262 <tr>
261 263 <td>child {rev}</td>
262 264 <td style="font-family:monospace">
263 265 <a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
264 266 </td>
265 267 </tr>'
266 268 filecompchild = '
267 269 <tr>
268 270 <td>child {rev}</td>
269 271 <td style="font-family:monospace">
270 272 <a class="list" href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
271 273 </td>
272 274 </tr>'
273 275 filelogchild = '
274 276 <tr>
275 277 <td align="right">child {rev}:&nbsp;</td>
276 278 <td><a href="{url|urlescape}file{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
277 279 </tr>'
278 280 shortlog = shortlog.tmpl
279 281 graph = graph.tmpl
280 282 tagtag = '<span class="tagtag" title="{name|escape}">{name|escape}</span> '
281 283 branchtag = '<span class="branchtag" title="{name|escape}">{name|escape}</span> '
282 284 inbranchtag = '<span class="inbranchtag" title="{name|escape}">{name|escape}</span> '
283 285 bookmarktag = '<span class="bookmarktag" title="{name|escape}">{name|escape}</span> '
284 286 shortlogentry = '
285 287 <tr class="parity{parity}">
286 288 <td class="age"><i class="age">{date|rfc822date}</i></td>
287 289 <td><i>{author|person}</i></td>
288 290 <td>
289 291 <a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
290 292 <b>{desc|strip|firstline|escape|nonempty}</b>
291 293 <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>
292 294 </a>
293 295 </td>
294 296 <td class="link" nowrap>
295 297 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
296 298 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
297 299 </td>
298 300 </tr>'
299 301 filelogentry = '
300 302 <tr class="parity{parity}">
301 303 <td class="age"><i class="age">{date|rfc822date}</i></td>
302 304 <td><i>{author|person}</i></td>
303 305 <td>
304 306 <a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
305 307 <b>{desc|strip|firstline|escape|nonempty}</b>
306 308 <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>
307 309 </a>
308 310 </td>
309 311 <td class="link">
310 312 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
311 313 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
312 314 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
313 315 {rename%filelogrename}
314 316 </td>
315 317 </tr>'
316 318 archiveentry = ' | <a href="{url|urlescape}archive/{symrev}{extension}{ifeq(path,'/','',path|urlescape)}">{type|escape}</a> '
317 319 indexentry = '
318 320 <tr class="parity{parity}">
319 321 <td>
320 322 <a class="list" href="{url|urlescape}{sessionvars%urlparameter}">
321 323 <b>{name|escape}</b>
322 324 </a>
323 325 </td>
324 326 <td>{description}</td>
325 327 <td>{contact|obfuscate}</td>
326 328 <td class="age">{lastchange|rfc822date}</td>
327 329 <td class="indexlinks">{archives%indexarchiveentry}</td>
328 330 <td>{if(isdirectory, '',
329 331 '<div class="rss_logo">
330 332 <a href="{url|urlescape}rss-log">RSS</a> <a href="{url|urlescape}atom-log">Atom</a>
331 333 </div>'
332 334 )}
333 335 </td>
334 336 </tr>\n'
335 337 indexarchiveentry = ' <a href="{url|urlescape}archive/{node|short}{extension}">{type|escape}</a> '
336 338 index = index.tmpl
337 339 urlparameter = '{separator}{name}={value|urlescape}'
338 340 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
339 341 breadcrumb = '&gt; <a href="{url|urlescape}">{name|escape}</a> '
@@ -1,294 +1,296
1 1 default = 'summary'
2 2 mimetype = 'text/html; charset={encoding}'
3 3 header = header.tmpl
4 4 footer = footer.tmpl
5 5 search = search.tmpl
6 6 changelog = changelog.tmpl
7 7 summary = summary.tmpl
8 8 error = error.tmpl
9 9 notfound = notfound.tmpl
10 10
11 11 help = help.tmpl
12 12 helptopics = helptopics.tmpl
13 13
14 14 helpentry = '
15 15 <tr><td>
16 16 <a href="{url|urlescape}help/{topic|escape}{sessionvars%urlparameter}">
17 17 {if(basename, '{basename|escape}', '{topic|escape}')}
18 18 </a>
19 19 </td><td>
20 20 {summary|escape}
21 21 </td></tr>'
22 22
23 23 naventry = '<a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
24 24 navshortentry = '<a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
25 25 navgraphentry = '<a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
26 26 filenaventry = '<a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
27 27 filedifflink = '<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
28 28 filenodelink = '
29 29 <tr class="parity{parity}">
30 30 <td><a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
31 31 <td></td>
32 32 <td>
33 33 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
34 34 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
35 35 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
36 36 <a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
37 37 <a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
38 38 </td>
39 39 </tr>'
40 40 filenolink = '
41 41 <tr class="parity{parity}">
42 42 <td><a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
43 43 <td></td>
44 44 <td>
45 45 file |
46 46 annotate |
47 47 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
48 48 <a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
49 49 <a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
50 50 </td>
51 51 </tr>'
52 52
53 53 nav = '{before%naventry} {after%naventry}'
54 54 navshort = '{before%navshortentry}{after%navshortentry}'
55 55 navgraph = '{before%navgraphentry}{after%navgraphentry}'
56 56 filenav = '{before%filenaventry}{after%filenaventry}'
57 57
58 58 fileellipses = '...'
59 59 changelogentry = changelogentry.tmpl
60 60 searchentry = changelogentry.tmpl
61 61 changeset = changeset.tmpl
62 62 manifest = manifest.tmpl
63 63 direntry = '
64 64 <tr class="parity{parity}">
65 65 <td>drwxr-xr-x</td>
66 66 <td></td>
67 67 <td></td>
68 68 <td>
69 69 <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
70 70 <a href="{url|urlescape}file/{symrev}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">{emptydirs|escape}</a>
71 71 </td>
72 72 <td><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a></td>
73 73 </tr>'
74 74 fileentry = '
75 75 <tr class="parity{parity}">
76 76 <td>{permissions|permissions}</td>
77 77 <td>{date|isodate}</td>
78 78 <td>{size}</td>
79 79 <td><a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a></td>
80 80 <td>
81 81 <a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
82 82 <a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
83 83 <a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
84 84 </td>
85 85 </tr>'
86 86 filerevision = filerevision.tmpl
87 87 fileannotate = fileannotate.tmpl
88 88 filediff = filediff.tmpl
89 89 filecomparison = filecomparison.tmpl
90 90 filelog = filelog.tmpl
91 91 fileline = '
92 92 <a href="#{lineid}"></a><span id="{lineid}">{strip(line|escape, '\r\n')}</span>'
93 93 annotateline = '
94 94 <tr id="{lineid}" class="parity{parity}{ifeq(node, originalnode, ' thisrev')}">
95 95 <td class="annotate linenr">
96 96 {if(blockhead,
97 97 '<a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
98 98 {author|user}@{rev}
99 99 </a>')}
100 100 <div class="annotate-info">
101 101 <div>{node|short}: {desc|escape|firstline}</div>
102 102 <div>parents: {parents%annotateparent}</div>
103 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>
104 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a>
103 105 </div>
104 106 </td>
105 107 <td class="lineno">
106 108 <a href="#{lineid}">{linenumber}</a>
107 109 </td>
108 110 <td class="source">{line|escape}</td>
109 111 </tr>'
110 112 annotateparent = '
111 113 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rev}</a>'
112 114 difflineplus = '
113 115 <a href="#{lineid}"></a><span id="{lineid}" class="difflineplus">{strip(line|escape, '\r\n')}</span>'
114 116 difflineminus = '
115 117 <a href="#{lineid}"></a><span id="{lineid}" class="difflineminus">{strip(line|escape, '\r\n')}</span>'
116 118 difflineat = '
117 119 <a href="#{lineid}"></a><span id="{lineid}" class="difflineat">{strip(line|escape, '\r\n')}</span>'
118 120 diffline = '
119 121 <a href="#{lineid}"></a><span id="{lineid}">{strip(line|escape, '\r\n')}</span>'
120 122
121 123 comparisonblock ='
122 124 <tbody class="block">
123 125 {lines}
124 126 </tbody>'
125 127 comparisonline = '
126 128 <tr id="{lineid}">
127 129 <td class="source {type}"><a class="linenr" href="#{lineid}">{leftlinenumber}</a> {leftline|escape}</td>
128 130 <td class="source {type}"><a class="linenr" href="#{lineid}">{rightlinenumber}</a> {rightline|escape}</td>
129 131 </tr>'
130 132
131 133 changesetlink = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
132 134 changelogparent = '
133 135 <tr>
134 136 <th class="parent">parent {rev}:</th>
135 137 <td class="parent">
136 138 {changesetlink}
137 139 </td>
138 140 </tr>'
139 141 changesetbranch = '<dt>branch</dt><dd>{name|escape}</dd>'
140 142 changesetparent = '
141 143 <dt>parent {rev}</dt>
142 144 <dd>{changesetlink}</dd>'
143 145 changesetparentdiff = '
144 146 <dt>parent {rev}</dt>
145 147 <dd>{changesetlink} {ifeq(node, basenode, '(current diff)', '({difffrom})')}</dd>'
146 148 difffrom = '<a href="{url|urlescape}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">diff</a>'
147 149 filerevbranch = '<dt>branch</dt><dd>{name|escape}</dd>'
148 150 filerevparent = '
149 151 <dt>parent {rev}</dt>
150 152 <dd>
151 153 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
152 154 {rename%filerename}{node|short}
153 155 </a>
154 156 </dd>'
155 157 filerename = '{file|escape}@'
156 158 filelogrename = '| <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>'
157 159 fileannotateparent = '
158 160 <dt>parent {rev}</dt>
159 161 <dd>
160 162 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
161 163 {rename%filerename}{node|short}
162 164 </a>
163 165 </dd>'
164 166 changelogchild = '
165 167 <dt>child {rev}:</dt>
166 168 <dd><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>'
167 169 changesetchild = '
168 170 <dt>child {rev}</dt>
169 171 <dd><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>'
170 172 filerevchild = '
171 173 <dt>child {rev}</dt>
172 174 <dd>
173 175 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
174 176 </dd>'
175 177 fileannotatechild = '
176 178 <dt>child {rev}</dt>
177 179 <dd>
178 180 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
179 181 </dd>'
180 182 tags = tags.tmpl
181 183 tagentry = '
182 184 <tr class="parity{parity}">
183 185 <td class="nowrap age">{date|rfc822date}</td>
184 186 <td><a href="{url|urlescape}rev/{tag|revescape}{sessionvars%urlparameter}">{tag|escape}</a></td>
185 187 <td class="nowrap">
186 188 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
187 189 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
188 190 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
189 191 </td>
190 192 </tr>'
191 193 bookmarks = bookmarks.tmpl
192 194 bookmarkentry = '
193 195 <tr class="parity{parity}">
194 196 <td class="nowrap age">{date|rfc822date}</td>
195 197 <td><a href="{url|urlescape}rev/{bookmark|revescape}{sessionvars%urlparameter}">{bookmark|escape}</a></td>
196 198 <td class="nowrap">
197 199 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
198 200 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
199 201 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
200 202 </td>
201 203 </tr>'
202 204 branches = branches.tmpl
203 205 branchentry = '
204 206 <tr class="parity{parity}">
205 207 <td class="nowrap age">{date|rfc822date}</td>
206 208 <td class="{status}"><a href="{url|urlescape}shortlog/{branch|revescape}{sessionvars%urlparameter}">{branch|escape}</a></td>
207 209 <td class="nowrap">
208 210 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
209 211 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
210 212 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
211 213 </td>
212 214 </tr>'
213 215 diffblock = '<div class="diffblock"><pre class="sourcelines">{lines}</pre></div>'
214 216 filediffparent = '
215 217 <dt>parent {rev}</dt>
216 218 <dd><a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
217 219 filecompparent = '
218 220 <dt>parent {rev}</dt>
219 221 <dd><a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
220 222 filelogparent = '
221 223 <tr>
222 224 <td align="right">parent {rev}:&nbsp;</td>
223 225 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
224 226 </tr>'
225 227 filediffchild = '
226 228 <dt>child {rev}</dt>
227 229 <dd><a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
228 230 filecompchild = '
229 231 <dt>child {rev}</dt>
230 232 <dd><a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
231 233 filelogchild = '
232 234 <tr>
233 235 <td align="right">child {rev}:&nbsp;</td>
234 236 <td><a href="{url|urlescape}file{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
235 237 </tr>'
236 238 shortlog = shortlog.tmpl
237 239 tagtag = '<span class="tagtag" title="{name|escape}">{name|escape}</span> '
238 240 branchtag = '<span class="branchtag" title="{name|escape}">{name|escape}</span> '
239 241 inbranchtag = '<span class="inbranchtag" title="{name|escape}">{name|escape}</span> '
240 242 bookmarktag = '<span class="bookmarktag" title="{name|escape}">{name|escape}</span> '
241 243 shortlogentry = '
242 244 <tr class="parity{parity}">
243 245 <td class="nowrap age">{date|rfc822date}</td>
244 246 <td>{author|person}</td>
245 247 <td>
246 248 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
247 249 {desc|strip|firstline|escape|nonempty}
248 250 <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>
249 251 </a>
250 252 </td>
251 253 <td class="nowrap">
252 254 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
253 255 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
254 256 </td>
255 257 </tr>'
256 258 filelogentry = '
257 259 <tr class="parity{parity}">
258 260 <td class="nowrap age">{date|rfc822date}</td>
259 261 <td>{author|person}</td>
260 262 <td>
261 263 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
262 264 {desc|strip|firstline|escape|nonempty}
263 265 <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>
264 266 </a>
265 267 </td>
266 268 <td class="nowrap">
267 269 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
268 270 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
269 271 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
270 272 {rename%filelogrename}
271 273 </td>
272 274 </tr>'
273 275 archiveentry = '<li><a href="{url|urlescape}archive/{symrev}{extension}{ifeq(path,'/','',path|urlescape)}">{type|escape}</a></li>'
274 276 indexentry = '
275 277 <tr class="parity{parity}">
276 278 <td><a href="{url|urlescape}{sessionvars%urlparameter}">{name|escape}</a></td>
277 279 <td>{description}</td>
278 280 <td>{contact|obfuscate}</td>
279 281 <td class="age">{lastchange|rfc822date}</td>
280 282 <td class="indexlinks">{archives%indexarchiveentry}</td>
281 283 <td>
282 284 {if(isdirectory, '',
283 285 '<div class="rss_logo">
284 286 <a href="{url|urlescape}rss-log">RSS</a> <a href="{url|urlescape}atom-log">Atom</a>
285 287 </div>'
286 288 )}
287 289 </td>
288 290 </tr>\n'
289 291 indexarchiveentry = '<a href="{url|urlescape}archive/{node|short}{extension}">{type|escape}</a> '
290 292 index = index.tmpl
291 293 urlparameter = '{separator}{name}={value|urlescape}'
292 294 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
293 295 graph = graph.tmpl
294 296 breadcrumb = '&gt; <a href="{url|urlescape}">{name|escape}</a> '
@@ -1,265 +1,267
1 1 default = 'shortlog'
2 2
3 3 mimetype = 'text/html; charset={encoding}'
4 4 header = header.tmpl
5 5 footer = footer.tmpl
6 6 search = search.tmpl
7 7
8 8 changelog = shortlog.tmpl
9 9 shortlog = shortlog.tmpl
10 10 shortlogentry = shortlogentry.tmpl
11 11 graph = graph.tmpl
12 12 help = help.tmpl
13 13 helptopics = helptopics.tmpl
14 14
15 15 helpentry = '
16 16 <tr><td>
17 17 <a href="{url|urlescape}help/{topic|escape}{sessionvars%urlparameter}">
18 18 {if(basename, '{basename|escape}', '{topic|escape}')}
19 19 </a>
20 20 </td><td>
21 21 {summary|escape}
22 22 </td></tr>'
23 23
24 24 naventry = '<a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
25 25 navshortentry = '<a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
26 26 navgraphentry = '<a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
27 27 filenaventry = '<a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
28 28 filedifflink = '<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
29 29 filenodelink = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
30 30 filenolink = '{file|escape} '
31 31 fileellipses = '...'
32 32 diffstatlink = diffstat.tmpl
33 33 diffstatnolink = diffstat.tmpl
34 34 changelogentry = shortlogentry.tmpl
35 35 searchentry = shortlogentry.tmpl
36 36 changeset = changeset.tmpl
37 37 manifest = manifest.tmpl
38 38
39 39 nav = '{before%naventry} {after%naventry}'
40 40 navshort = '{before%navshortentry}{after%navshortentry}'
41 41 navgraph = '{before%navgraphentry}{after%navgraphentry}'
42 42 filenav = '{before%filenaventry}{after%filenaventry}'
43 43
44 44 direntry = '
45 45 <tr class="fileline">
46 46 <td class="name">
47 47 <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">
48 48 <img src="{staticurl|urlescape}coal-folder.png" alt="dir."/> {basename|escape}/
49 49 </a>
50 50 <a href="{url|urlescape}file/{symrev}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">
51 51 {emptydirs|escape}
52 52 </a>
53 53 </td>
54 54 <td class="size"></td>
55 55 <td class="permissions">drwxr-xr-x</td>
56 56 </tr>'
57 57
58 58 fileentry = '
59 59 <tr class="fileline">
60 60 <td class="filename">
61 61 <a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">
62 62 <img src="{staticurl|urlescape}coal-file.png" alt="file"/> {basename|escape}
63 63 </a>
64 64 </td>
65 65 <td class="size">{size}</td>
66 66 <td class="permissions">{permissions|permissions}</td>
67 67 </tr>'
68 68
69 69 filerevision = filerevision.tmpl
70 70 fileannotate = fileannotate.tmpl
71 71 filediff = filediff.tmpl
72 72 filecomparison = filecomparison.tmpl
73 73 filelog = filelog.tmpl
74 74 fileline = '
75 75 <span id="{lineid}">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>'
76 76 filelogentry = filelogentry.tmpl
77 77
78 78 annotateline = '
79 79 <tr id="{lineid}"{ifeq(node, originalnode, ' class="thisrev"')}>
80 80 <td class="annotate">
81 81 {if(blockhead,
82 82 '<a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
83 83 {author|user}@{rev}
84 84 </a>')}
85 85 <div class="annotate-info">
86 86 <div>{node|short}: {desc|escape|firstline}</div>
87 87 <div>parents: {parents%annotateparent}</div>
88 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>
89 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a>
88 90 </div>
89 91 </td>
90 92 <td class="source"><a href="#{lineid}">{linenumber}</a> {line|escape}</td>
91 93 </tr>'
92 94 annotateparent = '
93 95 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rev}</a>'
94 96 diffblock = '<div class="bottomline inc-lineno"><pre class="sourcelines wrap">{lines}</pre></div>'
95 97 difflineplus = '
96 98 <span id="{lineid}" class="plusline">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>'
97 99 difflineminus = '
98 100 <span id="{lineid}" class="minusline">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>'
99 101 difflineat = '
100 102 <span id="{lineid}" class="atline">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>'
101 103 diffline = '
102 104 <span id="{lineid}">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>'
103 105
104 106 comparisonblock ='
105 107 <tbody class="block">
106 108 {lines}
107 109 </tbody>'
108 110 comparisonline = '
109 111 <tr id="{lineid}">
110 112 <td class="source {type}"><a href="#{lineid}">{leftlinenumber}</a> {leftline|escape}</td>
111 113 <td class="source {type}"><a href="#{lineid}">{rightlinenumber}</a> {rightline|escape}</td>
112 114 </tr>'
113 115
114 116 changelogparent = '
115 117 <tr>
116 118 <th class="parent">parent {rev}:</th>
117 119 <td class="parent"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
118 120 </tr>'
119 121
120 122 changesetparent = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> '
121 123
122 124 changesetparentdiff = '
123 125 {changesetparent}
124 126 {ifeq(node, basenode, '(current diff)', '({difffrom})')}'
125 127
126 128 difffrom = '<a href="{url|urlescape}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">diff</a>'
127 129
128 130 filerevparent = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rename%filerename}{node|short}</a> '
129 131 filerevchild = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> '
130 132
131 133 filerename = '{file|escape}@'
132 134 filelogrename = '
133 135 <span class="base">
134 136 base
135 137 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
136 138 {file|escape}@{node|short}
137 139 </a>
138 140 </span>'
139 141 fileannotateparent = '
140 142 <tr>
141 143 <td class="metatag">parent:</td>
142 144 <td>
143 145 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
144 146 {rename%filerename}{node|short}
145 147 </a>
146 148 </td>
147 149 </tr>'
148 150 changesetchild = ' <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
149 151 changelogchild = '
150 152 <tr>
151 153 <th class="child">child</th>
152 154 <td class="child">
153 155 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
154 156 {node|short}
155 157 </a>
156 158 </td>
157 159 </tr>'
158 160 fileannotatechild = '
159 161 <tr>
160 162 <td class="metatag">child:</td>
161 163 <td>
162 164 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
163 165 {node|short}
164 166 </a>
165 167 </td>
166 168 </tr>'
167 169 tags = tags.tmpl
168 170 tagentry = '
169 171 <tr class="tagEntry">
170 172 <td>
171 173 <a href="{url|urlescape}rev/{tag|revescape}{sessionvars%urlparameter}">
172 174 {tag|escape}
173 175 </a>
174 176 </td>
175 177 <td class="node">
176 178 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
177 179 {node|short}
178 180 </a>
179 181 </td>
180 182 </tr>'
181 183 bookmarks = bookmarks.tmpl
182 184 bookmarkentry = '
183 185 <tr class="tagEntry">
184 186 <td>
185 187 <a href="{url|urlescape}rev/{bookmark|revescape}{sessionvars%urlparameter}">
186 188 {bookmark|escape}
187 189 </a>
188 190 </td>
189 191 <td class="node">
190 192 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
191 193 {node|short}
192 194 </a>
193 195 </td>
194 196 </tr>'
195 197 branches = branches.tmpl
196 198 branchentry = '
197 199 <tr class="tagEntry">
198 200 <td>
199 201 <a href="{url|urlescape}shortlog/{branch|revescape}{sessionvars%urlparameter}" class="{status}">
200 202 {branch|escape}
201 203 </a>
202 204 </td>
203 205 <td class="node">
204 206 <a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">
205 207 {node|short}
206 208 </a>
207 209 </td>
208 210 </tr>'
209 211 changelogtag = '<span class="tag">{name|escape}</span> '
210 212 changesettag = '<span class="tag">{tag|escape}</span> '
211 213 changesetbookmark = '<span class="tag">{bookmark|escape}</span> '
212 214 changelogbranchhead = '<span class="branchhead">{name|escape}</span> '
213 215 changelogbranchname = '<span class="branchname">{name|escape}</span> '
214 216
215 217 filediffparent = '
216 218 <tr>
217 219 <th class="parent">parent {rev}:</th>
218 220 <td class="parent"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
219 221 </tr>'
220 222 filelogparent = '
221 223 <tr>
222 224 <th>parent {rev}:</th>
223 225 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
224 226 </tr>'
225 227 filediffchild = '
226 228 <tr>
227 229 <th class="child">child {rev}:</th>
228 230 <td class="child"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
229 231 </td>
230 232 </tr>'
231 233 filelogchild = '
232 234 <tr>
233 235 <th>child {rev}:</th>
234 236 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
235 237 </tr>'
236 238
237 239 indexentry = '
238 240 <tr>
239 241 <td><a href="{url|urlescape}{sessionvars%urlparameter}">{name|escape}</a></td>
240 242 <td>{description}</td>
241 243 <td>{contact|obfuscate}</td>
242 244 <td class="age">{lastchange|rfc822date}</td>
243 245 <td class="indexlinks">{archives%indexarchiveentry}</td>
244 246 <td>
245 247 {if(isdirectory, '',
246 248 '<a href="{url|urlescape}atom-log" title="subscribe to repository atom feed">
247 249 <img class="atom-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="subscribe to repository atom feed">
248 250 </a>'
249 251 )}
250 252 </td>
251 253 </tr>\n'
252 254 indexarchiveentry = '<a href="{url|urlescape}archive/{node|short}{extension|urlescape}">&nbsp;&darr;{type|escape}</a>'
253 255 index = index.tmpl
254 256 archiveentry = '
255 257 <li>
256 258 <a href="{url|urlescape}archive/{symrev}{extension|urlescape}{ifeq(path,'/','',path|urlescape)}">{type|escape}</a>
257 259 </li>'
258 260 notfound = notfound.tmpl
259 261 error = error.tmpl
260 262 urlparameter = '{separator}{name}={value|urlescape}'
261 263 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
262 264 breadcrumb = '&gt; <a href="{url|urlescape}">{name|escape}</a> '
263 265
264 266 searchhint = 'Find changesets by keywords (author, files, the commit message), revision
265 267 number or hash, or <a href="{url|urlescape}help/revsets">revset expression</a>.'
@@ -1,199 +1,201
1 1 default = 'shortlog'
2 2 mimetype = 'text/html; charset={encoding}'
3 3 header = header.tmpl
4 4 footer = footer.tmpl
5 5 search = search.tmpl
6 6 changelog = changelog.tmpl
7 7 shortlog = shortlog.tmpl
8 8 shortlogentry = shortlogentry.tmpl
9 9 graph = graph.tmpl
10 10 naventry = '<a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
11 11 navshortentry = '<a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
12 12 navgraphentry = '<a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
13 13 filenaventry = '<a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
14 14 filedifflink = '<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
15 15 filenodelink = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
16 16 filenolink = '{file|escape} '
17 17 fileellipses = '...'
18 18 changelogentry = changelogentry.tmpl
19 19 searchentry = changelogentry.tmpl
20 20 changeset = changeset.tmpl
21 21 manifest = manifest.tmpl
22 22
23 23 nav = '{before%naventry} {after%naventry}'
24 24 navshort = '{before%navshortentry}{after%navshortentry}'
25 25 navgraph = '{before%navgraphentry}{after%navgraphentry}'
26 26 filenav = '{before%filenaventry}{after%filenaventry}'
27 27
28 28 direntry = '
29 29 <tr class="parity{parity}">
30 30 <td><tt>drwxr-xr-x</tt>&nbsp;
31 31 <td>&nbsp;
32 32 <td>&nbsp;
33 33 <td>
34 34 <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}/</a>
35 35 <a href="{url|urlescape}file/{symrev}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">
36 36 {emptydirs|urlescape}
37 37 </a>'
38 38
39 39 fileentry = '
40 40 <tr class="parity{parity}">
41 41 <td><tt>{permissions|permissions}</tt>&nbsp;
42 42 <td align=right><tt class="date">{date|isodate}</tt>&nbsp;
43 43 <td align=right><tt>{size}</tt>&nbsp;
44 44 <td><a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>'
45 45
46 46 filerevision = filerevision.tmpl
47 47 fileannotate = fileannotate.tmpl
48 48 filediff = filediff.tmpl
49 49 filelog = filelog.tmpl
50 50 fileline = '<div class="parity{parity}"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>&nbsp;{line|escape}</div>'
51 51 filelogentry = filelogentry.tmpl
52 52
53 53 # The &nbsp; ensures that all table cells have content (even if there
54 54 # is an empty line in the annotated file), which in turn ensures that
55 55 # all table rows have equal height.
56 56 annotateline = '
57 57 <tr class="parity{parity}{ifeq(node, originalnode, ' thisrev')}">
58 58 <td class="annotate">
59 59 {if(blockhead,
60 60 '<a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
61 61 {author|user}@{rev}
62 62 </a>')}
63 63 <div class="annotate-info">
64 64 <div>{node|short}: {desc|escape|firstline}</div>
65 65 <div>parents: {parents%annotateparent}</div>
66 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>
67 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a>
66 68 </div>
67 69 </td>
68 70 <td>
69 71 <a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>
70 72 </td>
71 73 <td><pre>&nbsp;{line|escape}</pre></td>
72 74 </tr>'
73 75 annotateparent = '
74 76 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rev}</a>'
75 77 difflineplus = '<span class="plusline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>'
76 78 difflineminus = '<span class="minusline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>'
77 79 difflineat = '<span class="atline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>'
78 80 diffline = '<a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}'
79 81 changesetlink = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
80 82 changelogparent = '
81 83 <tr>
82 84 <th class="parent">parent {rev}:</th>
83 85 <td class="parent">
84 86 {changesetlink}
85 87 </td>
86 88 </tr>'
87 89 changesetparent = '
88 90 <tr>
89 91 <th class="parent">parent {rev}:</th>
90 92 <td class="parent">{changesetlink}</td>
91 93 </tr>'
92 94 changesetparentdiff = '
93 95 <tr>
94 96 <th class="parent">parent {rev}:</th>
95 97 <td class="parent">{changesetlink} {ifeq(node, basenode, '(current diff)', '({difffrom})')}</td>
96 98 </tr>'
97 99 difffrom = '<a href="{url|urlescape}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">diff</a>'
98 100 filerevparent = '
99 101 <tr>
100 102 <td class="metatag">parent:</td>
101 103 <td>
102 104 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
103 105 {rename%filerename}{node|short}
104 106 </a>
105 107 </td>
106 108 </tr>'
107 109 filerename = '{file|escape}@'
108 110 filelogrename = '
109 111 <tr>
110 112 <th>base:</th>
111 113 <td>
112 114 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
113 115 {file|escape}@{node|short}
114 116 </a>
115 117 </td>
116 118 </tr>'
117 119 fileannotateparent = '
118 120 <tr>
119 121 <td class="metatag">parent:</td>
120 122 <td>
121 123 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
122 124 {rename%filerename}{node|short}
123 125 </a>
124 126 </td>
125 127 </tr>'
126 128 changesetchild = '
127 129 <tr>
128 130 <th class="child">child {rev}:</th>
129 131 <td class="child"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
130 132 </tr>'
131 133 changelogchild = '
132 134 <tr>
133 135 <th class="child">child {rev}:</th>
134 136 <td class="child"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
135 137 </tr>'
136 138 filerevchild = '
137 139 <tr>
138 140 <td class="metatag">child:</td>
139 141 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
140 142 </tr>'
141 143 fileannotatechild = '
142 144 <tr>
143 145 <td class="metatag">child:</td>
144 146 <td><a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
145 147 </tr>'
146 148 tags = tags.tmpl
147 149 tagentry = '
148 150 <li class="tagEntry parity{parity}">
149 151 <tt class="node">{node}</tt>
150 152 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{tag|escape}</a>
151 153 </li>'
152 154 branches = branches.tmpl
153 155 branchentry = '
154 156 <li class="tagEntry parity{parity}">
155 157 <tt class="node">{node}</tt>
156 158 <a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">{branch|escape}</a>
157 159 </li>'
158 160 diffblock = '<pre class="parity{parity}">{lines}</pre>'
159 161 changelogtag = '<tr><th class="tag">tag:</th><td class="tag">{tag|escape}</td></tr>'
160 162 changesettag = '<tr><th class="tag">tag:</th><td class="tag">{tag|escape}</td></tr>'
161 163 filediffparent = '
162 164 <tr>
163 165 <th class="parent">parent {rev}:</th>
164 166 <td class="parent"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
165 167 </tr>'
166 168 filelogparent = '
167 169 <tr>
168 170 <th>parent {rev}:</th>
169 171 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
170 172 </tr>'
171 173 filediffchild = '
172 174 <tr>
173 175 <th class="child">child {rev}:</th>
174 176 <td class="child"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
175 177 </tr>'
176 178 filelogchild = '
177 179 <tr>
178 180 <th>child {rev}:</th>
179 181 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
180 182 </tr>'
181 183 indexentry = '
182 184 <tr class="parity{parity}">
183 185 <td><a href="{url|urlescape}{sessionvars%urlparameter}">{name|escape}</a></td>
184 186 <td>{description}</td>
185 187 <td>{contact|obfuscate}</td>
186 188 <td class="age">{lastchange|rfc822date}</td>
187 189 <td class="indexlinks">
188 190 <a href="{url|urlescape}rss-log">RSS</a>
189 191 <a href="{url|urlescape}atom-log">Atom</a>
190 192 {archives%archiveentry}
191 193 </td>
192 194 </tr>'
193 195 index = index.tmpl
194 196 archiveentry = '<a href="{url|urlescape}archive/{symrev}{extension|urlescape}">{type|escape}</a> '
195 197 notfound = notfound.tmpl
196 198 error = error.tmpl
197 199 urlparameter = '{separator}{name}={value|urlescape}'
198 200 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
199 201 breadcrumb = '&gt; <a href="{url|urlescape}">{name|escape}</a> '
@@ -1,1057 +1,1077
1 1 #require serve
2 2
3 3 Test symbolic revision usage in links produced by hgweb pages. There are
4 4 multiple issues related to this:
5 5 - issue2296
6 6 - issue2826
7 7 - issue3594
8 8 - issue3634
9 9
10 10 Set up the repo
11 11
12 12 $ hg init test
13 13 $ cd test
14 14 $ echo 0 > foo
15 15 $ mkdir dir
16 16 $ echo 0 > dir/bar
17 17 $ hg ci -Am 'first'
18 18 adding dir/bar
19 19 adding foo
20 20 $ echo 1 >> foo
21 21 $ hg ci -m 'second'
22 22 $ echo 2 >> foo
23 23 $ hg ci -m 'third'
24 24 $ hg bookmark -r1 xyzzy
25 25
26 26 $ hg log -G --template '{rev}:{node|short} {tags} {bookmarks}\n'
27 27 @ 2:9d8c40cba617 tip
28 28 |
29 29 o 1:a7c1559b7bba xyzzy
30 30 |
31 31 o 0:43c799df6e75
32 32
33 33 $ hg serve --config web.allow_archive=zip -n test -p $HGPORT -d --pid-file=hg.pid -E errors.log
34 34 $ cat hg.pid >> $DAEMON_PIDS
35 35
36 36 $ REVLINKS='href=[^>]+(rev=|/)(43c799df6e75|0|a7c1559b7bba|1|xyzzy|9d8c40cba617|2|tip|default)'
37 37
38 38 (De)referencing symbolic revisions (paper)
39 39
40 40 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=paper' | egrep $REVLINKS
41 41 <li><a href="/graph/tip?style=paper">graph</a></li>
42 42 <li><a href="/rev/tip?style=paper">changeset</a></li>
43 43 <li><a href="/file/tip?style=paper">browse</a></li>
44 44 <a href="/archive/tip.zip">zip</a>
45 45 <a href="/shortlog/tip?revcount=30&style=paper">less</a>
46 46 <a href="/shortlog/tip?revcount=120&style=paper">more</a>
47 47 | rev 2: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a>
48 48 <a href="/rev/9d8c40cba617?style=paper">third</a>
49 49 <a href="/rev/a7c1559b7bba?style=paper">second</a>
50 50 <a href="/rev/43c799df6e75?style=paper">first</a>
51 51 <a href="/shortlog/tip?revcount=30&style=paper">less</a>
52 52 <a href="/shortlog/tip?revcount=120&style=paper">more</a>
53 53 | rev 2: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a>
54 54
55 55 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph?style=paper' | egrep $REVLINKS
56 56 <li><a href="/shortlog/tip?style=paper">log</a></li>
57 57 <li><a href="/rev/tip?style=paper">changeset</a></li>
58 58 <li><a href="/file/tip?style=paper">browse</a></li>
59 59 <a href="/graph/tip?revcount=30&style=paper">less</a>
60 60 <a href="/graph/tip?revcount=120&style=paper">more</a>
61 61 | rev 2: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a>
62 62 <a href="/graph/tip?revcount=30&style=paper">less</a>
63 63 <a href="/graph/tip?revcount=120&style=paper">more</a>
64 64 | rev 2: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a>
65 65
66 66 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file?style=paper' | egrep $REVLINKS
67 67 <li><a href="/shortlog/tip?style=paper">log</a></li>
68 68 <li><a href="/graph/tip?style=paper">graph</a></li>
69 69 <li><a href="/rev/tip?style=paper">changeset</a></li>
70 70 <a href="/archive/tip.zip">zip</a>
71 71 directory / @ 2:<a href="/rev/9d8c40cba617?style=paper">9d8c40cba617</a>
72 72 <td class="name"><a href="/file/tip/?style=paper">[up]</a></td>
73 73 <a href="/file/tip/dir?style=paper">
74 74 <a href="/file/tip/dir/?style=paper">
75 75 <a href="/file/tip/foo?style=paper">
76 76
77 77 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'branches?style=paper' | egrep $REVLINKS
78 78 <a href="/shortlog/default?style=paper" class="open">
79 79 <a href="/shortlog/9d8c40cba617?style=paper" class="open">
80 80
81 81 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'tags?style=paper' | egrep $REVLINKS
82 82 <a href="/rev/tip?style=paper">
83 83 <a href="/rev/9d8c40cba617?style=paper">
84 84
85 85 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'bookmarks?style=paper' | egrep $REVLINKS
86 86 <a href="/rev/xyzzy?style=paper">
87 87 <a href="/rev/a7c1559b7bba?style=paper">
88 88
89 89 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=paper&rev=all()' | egrep $REVLINKS
90 90 <a href="/rev/9d8c40cba617?style=paper">third</a>
91 91 <a href="/rev/a7c1559b7bba?style=paper">second</a>
92 92 <a href="/rev/43c799df6e75?style=paper">first</a>
93 93
94 94 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'rev/xyzzy?style=paper' | egrep $REVLINKS
95 95 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
96 96 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
97 97 <li><a href="/raw-rev/xyzzy?style=paper">raw</a></li>
98 98 <li><a href="/file/xyzzy?style=paper">browse</a></li>
99 99 <a href="/archive/xyzzy.zip">zip</a>
100 100 changeset 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
101 101 <td class="author"><a href="/rev/43c799df6e75?style=paper">43c799df6e75</a> </td>
102 102 <td class="author"> <a href="/rev/9d8c40cba617?style=paper">9d8c40cba617</a></td>
103 103 <td class="files"><a href="/file/a7c1559b7bba/foo?style=paper">foo</a> </td>
104 104
105 105 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog/xyzzy?style=paper' | egrep $REVLINKS
106 106 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
107 107 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
108 108 <li><a href="/file/xyzzy?style=paper">browse</a></li>
109 109 <a href="/archive/xyzzy.zip">zip</a>
110 110 <a href="/shortlog/xyzzy?revcount=30&style=paper">less</a>
111 111 <a href="/shortlog/xyzzy?revcount=120&style=paper">more</a>
112 112 | rev 1: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a>
113 113 <a href="/rev/a7c1559b7bba?style=paper">second</a>
114 114 <a href="/rev/43c799df6e75?style=paper">first</a>
115 115 <a href="/shortlog/xyzzy?revcount=30&style=paper">less</a>
116 116 <a href="/shortlog/xyzzy?revcount=120&style=paper">more</a>
117 117 | rev 1: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a>
118 118
119 119 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph/xyzzy?style=paper' | egrep $REVLINKS
120 120 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
121 121 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
122 122 <li><a href="/file/xyzzy?style=paper">browse</a></li>
123 123 <a href="/graph/xyzzy?revcount=30&style=paper">less</a>
124 124 <a href="/graph/xyzzy?revcount=120&style=paper">more</a>
125 125 | rev 1: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a>
126 126 <a href="/graph/xyzzy?revcount=30&style=paper">less</a>
127 127 <a href="/graph/xyzzy?revcount=120&style=paper">more</a>
128 128 | rev 1: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a>
129 129
130 130 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy?style=paper' | egrep $REVLINKS
131 131 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
132 132 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
133 133 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
134 134 <a href="/archive/xyzzy.zip">zip</a>
135 135 directory / @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
136 136 <td class="name"><a href="/file/xyzzy/?style=paper">[up]</a></td>
137 137 <a href="/file/xyzzy/dir?style=paper">
138 138 <a href="/file/xyzzy/dir/?style=paper">
139 139 <a href="/file/xyzzy/foo?style=paper">
140 140
141 141 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy/foo?style=paper' | egrep $REVLINKS
142 142 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
143 143 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
144 144 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
145 145 <li><a href="/file/xyzzy/?style=paper">browse</a></li>
146 146 <li><a href="/file/tip/foo?style=paper">latest</a></li>
147 147 <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li>
148 148 <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li>
149 149 <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li>
150 150 <li><a href="/log/xyzzy/foo?style=paper">file log</a></li>
151 151 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
152 152 view foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
153 153 <td class="author"><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td>
154 154 <td class="author"><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td>
155 155
156 156 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy/foo?style=paper' | egrep $REVLINKS
157 157 href="/atom-log/tip/foo" title="Atom feed for test:foo" />
158 158 href="/rss-log/tip/foo" title="RSS feed for test:foo" />
159 159 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
160 160 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
161 161 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
162 162 <li><a href="/file/xyzzy?style=paper">browse</a></li>
163 163 <li><a href="/file/xyzzy/foo?style=paper">file</a></li>
164 164 <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li>
165 165 <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li>
166 166 <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li>
167 167 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
168 168 <a href="/atom-log/tip/foo" title="subscribe to atom feed">
169 169 log foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
170 170 <a href="/log/xyzzy/foo?revcount=30&style=paper">less</a>
171 171 <a href="/log/xyzzy/foo?revcount=120&style=paper">more</a>
172 172 | <a href="/log/43c799df6e75/foo?style=paper">(0)</a> <a href="/log/tip/foo?style=paper">tip</a> </div>
173 173 <a href="/rev/a7c1559b7bba?style=paper">second</a>
174 174 <a href="/rev/43c799df6e75?style=paper">first</a>
175 175 <a href="/log/xyzzy/foo?revcount=30&style=paper">less</a>
176 176 <a href="/log/xyzzy/foo?revcount=120&style=paper">more</a>
177 177 | <a href="/log/43c799df6e75/foo?style=paper">(0)</a> <a href="/log/tip/foo?style=paper">tip</a>
178 178
179 179 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'annotate/xyzzy/foo?style=paper' | egrep $REVLINKS
180 180 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
181 181 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
182 182 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
183 183 <li><a href="/file/xyzzy/?style=paper">browse</a></li>
184 184 <li><a href="/file/xyzzy/foo?style=paper">file</a></li>
185 185 <li><a href="/file/tip/foo?style=paper">latest</a></li>
186 186 <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li>
187 187 <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li>
188 188 <li><a href="/log/xyzzy/foo?style=paper">file log</a></li>
189 189 <li><a href="/raw-annotate/xyzzy/foo">raw</a></li>
190 190 annotate foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
191 191 <td class="author"><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td>
192 192 <td class="author"><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td>
193 193 <a href="/annotate/43c799df6e75/foo?style=paper#l1">
194 <a href="/diff/43c799df6e75/foo?style=paper">diff</a>
195 <a href="/rev/43c799df6e75?style=paper">changeset</a>
194 196 <a href="/annotate/a7c1559b7bba/foo?style=paper#l2">
195 197 <a href="/annotate/43c799df6e75/foo?style=paper">0</a></div>
198 <a href="/diff/a7c1559b7bba/foo?style=paper">diff</a>
199 <a href="/rev/a7c1559b7bba?style=paper">changeset</a>
196 200
197 201 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'diff/xyzzy/foo?style=paper' | egrep $REVLINKS
198 202 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
199 203 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
200 204 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
201 205 <li><a href="/file/xyzzy?style=paper">browse</a></li>
202 206 <li><a href="/file/xyzzy/foo?style=paper">file</a></li>
203 207 <li><a href="/file/tip/foo?style=paper">latest</a></li>
204 208 <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li>
205 209 <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li>
206 210 <li><a href="/log/xyzzy/foo?style=paper">file log</a></li>
207 211 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
208 212 diff foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
209 213 <td><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td>
210 214 <td><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td>
211 215
212 216 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'comparison/xyzzy/foo?style=paper' | egrep $REVLINKS
213 217 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
214 218 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
215 219 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
216 220 <li><a href="/file/xyzzy?style=paper">browse</a></li>
217 221 <li><a href="/file/xyzzy/foo?style=paper">file</a></li>
218 222 <li><a href="/file/tip/foo?style=paper">latest</a></li>
219 223 <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li>
220 224 <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li>
221 225 <li><a href="/log/xyzzy/foo?style=paper">file log</a></li>
222 226 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
223 227 comparison foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
224 228 <td><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td>
225 229 <td><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td>
226 230
227 231 (De)referencing symbolic revisions (coal)
228 232
229 233 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=coal' | egrep $REVLINKS
230 234 <li><a href="/graph/tip?style=coal">graph</a></li>
231 235 <li><a href="/rev/tip?style=coal">changeset</a></li>
232 236 <li><a href="/file/tip?style=coal">browse</a></li>
233 237 <a href="/archive/tip.zip">zip</a>
234 238 <a href="/shortlog/tip?revcount=30&style=coal">less</a>
235 239 <a href="/shortlog/tip?revcount=120&style=coal">more</a>
236 240 | rev 2: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a>
237 241 <a href="/rev/9d8c40cba617?style=coal">third</a>
238 242 <a href="/rev/a7c1559b7bba?style=coal">second</a>
239 243 <a href="/rev/43c799df6e75?style=coal">first</a>
240 244 <a href="/shortlog/tip?revcount=30&style=coal">less</a>
241 245 <a href="/shortlog/tip?revcount=120&style=coal">more</a>
242 246 | rev 2: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a>
243 247
244 248 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph?style=coal' | egrep $REVLINKS
245 249 <li><a href="/shortlog/tip?style=coal">log</a></li>
246 250 <li><a href="/rev/tip?style=coal">changeset</a></li>
247 251 <li><a href="/file/tip?style=coal">browse</a></li>
248 252 <a href="/graph/tip?revcount=30&style=coal">less</a>
249 253 <a href="/graph/tip?revcount=120&style=coal">more</a>
250 254 | rev 2: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a>
251 255 <a href="/graph/tip?revcount=30&style=coal">less</a>
252 256 <a href="/graph/tip?revcount=120&style=coal">more</a>
253 257 | rev 2: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a>
254 258
255 259 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file?style=coal' | egrep $REVLINKS
256 260 <li><a href="/shortlog/tip?style=coal">log</a></li>
257 261 <li><a href="/graph/tip?style=coal">graph</a></li>
258 262 <li><a href="/rev/tip?style=coal">changeset</a></li>
259 263 <a href="/archive/tip.zip">zip</a>
260 264 directory / @ 2:<a href="/rev/9d8c40cba617?style=coal">9d8c40cba617</a>
261 265 <td class="name"><a href="/file/tip/?style=coal">[up]</a></td>
262 266 <a href="/file/tip/dir?style=coal">
263 267 <a href="/file/tip/dir/?style=coal">
264 268 <a href="/file/tip/foo?style=coal">
265 269
266 270 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'branches?style=coal' | egrep $REVLINKS
267 271 <a href="/shortlog/default?style=coal" class="open">
268 272 <a href="/shortlog/9d8c40cba617?style=coal" class="open">
269 273
270 274 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'tags?style=coal' | egrep $REVLINKS
271 275 <a href="/rev/tip?style=coal">
272 276 <a href="/rev/9d8c40cba617?style=coal">
273 277
274 278 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'bookmarks?style=coal' | egrep $REVLINKS
275 279 <a href="/rev/xyzzy?style=coal">
276 280 <a href="/rev/a7c1559b7bba?style=coal">
277 281
278 282 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=coal&rev=all()' | egrep $REVLINKS
279 283 <a href="/rev/9d8c40cba617?style=coal">third</a>
280 284 <a href="/rev/a7c1559b7bba?style=coal">second</a>
281 285 <a href="/rev/43c799df6e75?style=coal">first</a>
282 286
283 287 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'rev/xyzzy?style=coal' | egrep $REVLINKS
284 288 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
285 289 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
286 290 <li><a href="/raw-rev/xyzzy?style=coal">raw</a></li>
287 291 <li><a href="/file/xyzzy?style=coal">browse</a></li>
288 292 <a href="/archive/xyzzy.zip">zip</a>
289 293 changeset 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
290 294 <td class="author"><a href="/rev/43c799df6e75?style=coal">43c799df6e75</a> </td>
291 295 <td class="author"> <a href="/rev/9d8c40cba617?style=coal">9d8c40cba617</a></td>
292 296 <td class="files"><a href="/file/a7c1559b7bba/foo?style=coal">foo</a> </td>
293 297
294 298 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog/xyzzy?style=coal' | egrep $REVLINKS
295 299 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
296 300 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
297 301 <li><a href="/file/xyzzy?style=coal">browse</a></li>
298 302 <a href="/archive/xyzzy.zip">zip</a>
299 303 <a href="/shortlog/xyzzy?revcount=30&style=coal">less</a>
300 304 <a href="/shortlog/xyzzy?revcount=120&style=coal">more</a>
301 305 | rev 1: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a>
302 306 <a href="/rev/a7c1559b7bba?style=coal">second</a>
303 307 <a href="/rev/43c799df6e75?style=coal">first</a>
304 308 <a href="/shortlog/xyzzy?revcount=30&style=coal">less</a>
305 309 <a href="/shortlog/xyzzy?revcount=120&style=coal">more</a>
306 310 | rev 1: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a>
307 311
308 312 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph/xyzzy?style=coal' | egrep $REVLINKS
309 313 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
310 314 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
311 315 <li><a href="/file/xyzzy?style=coal">browse</a></li>
312 316 <a href="/graph/xyzzy?revcount=30&style=coal">less</a>
313 317 <a href="/graph/xyzzy?revcount=120&style=coal">more</a>
314 318 | rev 1: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a>
315 319 <a href="/graph/xyzzy?revcount=30&style=coal">less</a>
316 320 <a href="/graph/xyzzy?revcount=120&style=coal">more</a>
317 321 | rev 1: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a>
318 322
319 323 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy?style=coal' | egrep $REVLINKS
320 324 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
321 325 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
322 326 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
323 327 <a href="/archive/xyzzy.zip">zip</a>
324 328 directory / @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
325 329 <td class="name"><a href="/file/xyzzy/?style=coal">[up]</a></td>
326 330 <a href="/file/xyzzy/dir?style=coal">
327 331 <a href="/file/xyzzy/dir/?style=coal">
328 332 <a href="/file/xyzzy/foo?style=coal">
329 333
330 334 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy/foo?style=coal' | egrep $REVLINKS
331 335 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
332 336 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
333 337 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
334 338 <li><a href="/file/xyzzy/?style=coal">browse</a></li>
335 339 <li><a href="/file/tip/foo?style=coal">latest</a></li>
336 340 <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li>
337 341 <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li>
338 342 <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li>
339 343 <li><a href="/log/xyzzy/foo?style=coal">file log</a></li>
340 344 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
341 345 view foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
342 346 <td class="author"><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td>
343 347 <td class="author"><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td>
344 348
345 349 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy/foo?style=coal' | egrep $REVLINKS
346 350 href="/atom-log/tip/foo" title="Atom feed for test:foo" />
347 351 href="/rss-log/tip/foo" title="RSS feed for test:foo" />
348 352 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
349 353 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
350 354 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
351 355 <li><a href="/file/xyzzy?style=coal">browse</a></li>
352 356 <li><a href="/file/xyzzy/foo?style=coal">file</a></li>
353 357 <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li>
354 358 <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li>
355 359 <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li>
356 360 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
357 361 <a href="/atom-log/tip/foo" title="subscribe to atom feed">
358 362 log foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
359 363 <a href="/log/xyzzy/foo?revcount=30&style=coal">less</a>
360 364 <a href="/log/xyzzy/foo?revcount=120&style=coal">more</a>
361 365 | <a href="/log/43c799df6e75/foo?style=coal">(0)</a> <a href="/log/tip/foo?style=coal">tip</a> </div>
362 366 <a href="/rev/a7c1559b7bba?style=coal">second</a>
363 367 <a href="/rev/43c799df6e75?style=coal">first</a>
364 368 <a href="/log/xyzzy/foo?revcount=30&style=coal">less</a>
365 369 <a href="/log/xyzzy/foo?revcount=120&style=coal">more</a>
366 370 | <a href="/log/43c799df6e75/foo?style=coal">(0)</a> <a href="/log/tip/foo?style=coal">tip</a>
367 371
368 372 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'annotate/xyzzy/foo?style=coal' | egrep $REVLINKS
369 373 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
370 374 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
371 375 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
372 376 <li><a href="/file/xyzzy/?style=coal">browse</a></li>
373 377 <li><a href="/file/xyzzy/foo?style=coal">file</a></li>
374 378 <li><a href="/file/tip/foo?style=coal">latest</a></li>
375 379 <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li>
376 380 <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li>
377 381 <li><a href="/log/xyzzy/foo?style=coal">file log</a></li>
378 382 <li><a href="/raw-annotate/xyzzy/foo">raw</a></li>
379 383 annotate foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
380 384 <td class="author"><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td>
381 385 <td class="author"><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td>
382 386 <a href="/annotate/43c799df6e75/foo?style=coal#l1">
387 <a href="/diff/43c799df6e75/foo?style=coal">diff</a>
388 <a href="/rev/43c799df6e75?style=coal">changeset</a>
383 389 <a href="/annotate/a7c1559b7bba/foo?style=coal#l2">
384 390 <a href="/annotate/43c799df6e75/foo?style=coal">0</a></div>
391 <a href="/diff/a7c1559b7bba/foo?style=coal">diff</a>
392 <a href="/rev/a7c1559b7bba?style=coal">changeset</a>
385 393
386 394 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'diff/xyzzy/foo?style=coal' | egrep $REVLINKS
387 395 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
388 396 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
389 397 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
390 398 <li><a href="/file/xyzzy?style=coal">browse</a></li>
391 399 <li><a href="/file/xyzzy/foo?style=coal">file</a></li>
392 400 <li><a href="/file/tip/foo?style=coal">latest</a></li>
393 401 <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li>
394 402 <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li>
395 403 <li><a href="/log/xyzzy/foo?style=coal">file log</a></li>
396 404 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
397 405 diff foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
398 406 <td><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td>
399 407 <td><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td>
400 408
401 409 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'comparison/xyzzy/foo?style=coal' | egrep $REVLINKS
402 410 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
403 411 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
404 412 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
405 413 <li><a href="/file/xyzzy?style=coal">browse</a></li>
406 414 <li><a href="/file/xyzzy/foo?style=coal">file</a></li>
407 415 <li><a href="/file/tip/foo?style=coal">latest</a></li>
408 416 <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li>
409 417 <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li>
410 418 <li><a href="/log/xyzzy/foo?style=coal">file log</a></li>
411 419 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
412 420 comparison foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
413 421 <td><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td>
414 422 <td><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td>
415 423
416 424 (De)referencing symbolic revisions (gitweb)
417 425
418 426 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'summary?style=gitweb' | egrep $REVLINKS
419 427 <a href="/file?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a> |
420 428 <a class="list" href="/rev/9d8c40cba617?style=gitweb">
421 429 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a> |
422 430 <a href="/file/9d8c40cba617?style=gitweb">files</a>
423 431 <a class="list" href="/rev/a7c1559b7bba?style=gitweb">
424 432 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
425 433 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
426 434 <a class="list" href="/rev/43c799df6e75?style=gitweb">
427 435 <a href="/rev/43c799df6e75?style=gitweb">changeset</a> |
428 436 <a href="/file/43c799df6e75?style=gitweb">files</a>
429 437 <td><a class="list" href="/rev/xyzzy?style=gitweb"><b>xyzzy</b></a></td>
430 438 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
431 439 <a href="/log/a7c1559b7bba?style=gitweb">changelog</a> |
432 440 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
433 441 <td class="open"><a class="list" href="/shortlog/default?style=gitweb"><b>default</b></a></td>
434 442 <a href="/changeset/9d8c40cba617?style=gitweb">changeset</a> |
435 443 <a href="/log/9d8c40cba617?style=gitweb">changelog</a> |
436 444 <a href="/file/9d8c40cba617?style=gitweb">files</a>
437 445
438 446 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=gitweb' | egrep $REVLINKS
439 447 <a href="/log/tip?style=gitweb">changelog</a> |
440 448 <a href="/graph/tip?style=gitweb">graph</a> |
441 449 <a href="/file/tip?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a> |
442 450 <br/><a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a> <br/>
443 451 <a class="list" href="/rev/9d8c40cba617?style=gitweb">
444 452 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a> |
445 453 <a href="/file/9d8c40cba617?style=gitweb">files</a>
446 454 <a class="list" href="/rev/a7c1559b7bba?style=gitweb">
447 455 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
448 456 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
449 457 <a class="list" href="/rev/43c799df6e75?style=gitweb">
450 458 <a href="/rev/43c799df6e75?style=gitweb">changeset</a> |
451 459 <a href="/file/43c799df6e75?style=gitweb">files</a>
452 460 <a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a>
453 461
454 462 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log?style=gitweb' | egrep $REVLINKS
455 463 <a href="/shortlog/tip?style=gitweb">shortlog</a> |
456 464 <a href="/graph/tip?style=gitweb">graph</a> |
457 465 <a href="/file/tip?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a> |
458 466 <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/>
459 467 <a class="title" href="/rev/9d8c40cba617?style=gitweb"><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>third<span class="logtags"> <span class="branchtag" title="default">default</span> <span class="tagtag" title="tip">tip</span> </span></a>
460 468 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a><br/>
461 469 <a class="title" href="/rev/a7c1559b7bba?style=gitweb"><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>second<span class="logtags"> <span class="bookmarktag" title="xyzzy">xyzzy</span> </span></a>
462 470 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a><br/>
463 471 <a class="title" href="/rev/43c799df6e75?style=gitweb"><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>first<span class="logtags"> </span></a>
464 472 <a href="/rev/43c799df6e75?style=gitweb">changeset</a><br/>
465 473 <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/>
466 474
467 475 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph?style=gitweb' | egrep $REVLINKS
468 476 <a href="/shortlog/tip?style=gitweb">shortlog</a> |
469 477 <a href="/log/tip?style=gitweb">changelog</a> |
470 478 <a href="/file/tip?style=gitweb">files</a> |
471 479 <a href="/graph/tip?revcount=30&style=gitweb">less</a>
472 480 <a href="/graph/tip?revcount=120&style=gitweb">more</a>
473 481 | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a> <br/>
474 482 <a href="/graph/tip?revcount=30&style=gitweb">less</a>
475 483 <a href="/graph/tip?revcount=120&style=gitweb">more</a>
476 484 | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a>
477 485
478 486 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'tags?style=gitweb' | egrep $REVLINKS
479 487 <td><a class="list" href="/rev/tip?style=gitweb"><b>tip</b></a></td>
480 488 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a> |
481 489 <a href="/log/9d8c40cba617?style=gitweb">changelog</a> |
482 490 <a href="/file/9d8c40cba617?style=gitweb">files</a>
483 491
484 492 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'bookmarks?style=gitweb' | egrep $REVLINKS
485 493 <td><a class="list" href="/rev/xyzzy?style=gitweb"><b>xyzzy</b></a></td>
486 494 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
487 495 <a href="/log/a7c1559b7bba?style=gitweb">changelog</a> |
488 496 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
489 497
490 498 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'branches?style=gitweb' | egrep $REVLINKS
491 499 <td class="open"><a class="list" href="/shortlog/default?style=gitweb"><b>default</b></a></td>
492 500 <a href="/changeset/9d8c40cba617?style=gitweb">changeset</a> |
493 501 <a href="/log/9d8c40cba617?style=gitweb">changelog</a> |
494 502 <a href="/file/9d8c40cba617?style=gitweb">files</a>
495 503
496 504 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file?style=gitweb' | egrep $REVLINKS
497 505 <a href="/rev/tip?style=gitweb">changeset</a> | <a href="/archive/tip.zip">zip</a> |
498 506 <td><a href="/file/tip/?style=gitweb">[up]</a></td>
499 507 <a href="/file/tip/dir?style=gitweb">dir</a>
500 508 <a href="/file/tip/dir/?style=gitweb"></a>
501 509 <a href="/file/tip/dir?style=gitweb">files</a>
502 510 <a class="list" href="/file/tip/foo?style=gitweb">foo</a>
503 511 <a href="/file/tip/foo?style=gitweb">file</a> |
504 512 <a href="/log/tip/foo?style=gitweb">revisions</a> |
505 513 <a href="/annotate/tip/foo?style=gitweb">annotate</a>
506 514
507 515 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=gitweb&rev=all()' | egrep $REVLINKS
508 516 <a href="/file?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a>
509 517 <a class="title" href="/rev/9d8c40cba617?style=gitweb"><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>third<span class="logtags"> <span class="branchtag" title="default">default</span> <span class="tagtag" title="tip">tip</span> </span></a>
510 518 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a><br/>
511 519 <a class="title" href="/rev/a7c1559b7bba?style=gitweb"><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>second<span class="logtags"> <span class="bookmarktag" title="xyzzy">xyzzy</span> </span></a>
512 520 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a><br/>
513 521 <a class="title" href="/rev/43c799df6e75?style=gitweb"><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>first<span class="logtags"> </span></a>
514 522 <a href="/rev/43c799df6e75?style=gitweb">changeset</a><br/>
515 523
516 524 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'rev/xyzzy?style=gitweb' | egrep $REVLINKS
517 525 <a href="/shortlog/xyzzy?style=gitweb">shortlog</a> |
518 526 <a href="/log/xyzzy?style=gitweb">changelog</a> |
519 527 <a href="/graph/xyzzy?style=gitweb">graph</a> |
520 528 <a href="/file/xyzzy?style=gitweb">files</a> |
521 529 <a href="/raw-rev/xyzzy">raw</a> | <a href="/archive/xyzzy.zip">zip</a> |
522 530 <a class="title" href="/raw-rev/a7c1559b7bba">second <span class="logtags"><span class="bookmarktag" title="xyzzy">xyzzy</span> </span></a>
523 531 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
524 532 <a class="list" href="/rev/43c799df6e75?style=gitweb">43c799df6e75</a>
525 533 <a class="list" href="/rev/9d8c40cba617?style=gitweb">9d8c40cba617</a>
526 534 <td><a class="list" href="/diff/a7c1559b7bba/foo?style=gitweb">foo</a></td>
527 535 <a href="/file/a7c1559b7bba/foo?style=gitweb">file</a> |
528 536 <a href="/annotate/a7c1559b7bba/foo?style=gitweb">annotate</a> |
529 537 <a href="/diff/a7c1559b7bba/foo?style=gitweb">diff</a> |
530 538 <a href="/comparison/a7c1559b7bba/foo?style=gitweb">comparison</a> |
531 539 <a href="/log/a7c1559b7bba/foo?style=gitweb">revisions</a>
532 540
533 541 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog/xyzzy?style=gitweb' | egrep $REVLINKS
534 542 <a href="/log/xyzzy?style=gitweb">changelog</a> |
535 543 <a href="/graph/xyzzy?style=gitweb">graph</a> |
536 544 <a href="/file/xyzzy?style=gitweb">files</a> | <a href="/archive/xyzzy.zip">zip</a> |
537 545 <br/><a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a> <br/>
538 546 <a class="list" href="/rev/a7c1559b7bba?style=gitweb">
539 547 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
540 548 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
541 549 <a class="list" href="/rev/43c799df6e75?style=gitweb">
542 550 <a href="/rev/43c799df6e75?style=gitweb">changeset</a> |
543 551 <a href="/file/43c799df6e75?style=gitweb">files</a>
544 552 <a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a>
545 553
546 554 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy?style=gitweb' | egrep $REVLINKS
547 555 <a href="/shortlog/xyzzy?style=gitweb">shortlog</a> |
548 556 <a href="/graph/xyzzy?style=gitweb">graph</a> |
549 557 <a href="/file/xyzzy?style=gitweb">files</a> | <a href="/archive/xyzzy.zip">zip</a> |
550 558 <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/>
551 559 <a class="title" href="/rev/a7c1559b7bba?style=gitweb"><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>second<span class="logtags"> <span class="bookmarktag" title="xyzzy">xyzzy</span> </span></a>
552 560 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a><br/>
553 561 <a class="title" href="/rev/43c799df6e75?style=gitweb"><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>first<span class="logtags"> </span></a>
554 562 <a href="/rev/43c799df6e75?style=gitweb">changeset</a><br/>
555 563 <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/>
556 564
557 565 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph/xyzzy?style=gitweb' | egrep $REVLINKS
558 566 <a href="/shortlog/xyzzy?style=gitweb">shortlog</a> |
559 567 <a href="/log/xyzzy?style=gitweb">changelog</a> |
560 568 <a href="/file/xyzzy?style=gitweb">files</a> |
561 569 <a href="/graph/xyzzy?revcount=30&style=gitweb">less</a>
562 570 <a href="/graph/xyzzy?revcount=120&style=gitweb">more</a>
563 571 | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a> <br/>
564 572 <a href="/graph/xyzzy?revcount=30&style=gitweb">less</a>
565 573 <a href="/graph/xyzzy?revcount=120&style=gitweb">more</a>
566 574 | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a>
567 575
568 576 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy?style=gitweb' | egrep $REVLINKS
569 577 <a href="/rev/xyzzy?style=gitweb">changeset</a> | <a href="/archive/xyzzy.zip">zip</a> |
570 578 <td><a href="/file/xyzzy/?style=gitweb">[up]</a></td>
571 579 <a href="/file/xyzzy/dir?style=gitweb">dir</a>
572 580 <a href="/file/xyzzy/dir/?style=gitweb"></a>
573 581 <a href="/file/xyzzy/dir?style=gitweb">files</a>
574 582 <a class="list" href="/file/xyzzy/foo?style=gitweb">foo</a>
575 583 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
576 584 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
577 585 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a>
578 586
579 587 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy/foo?style=gitweb' | egrep $REVLINKS
580 588 <a href="/file/xyzzy/?style=gitweb">files</a> |
581 589 <a href="/rev/xyzzy?style=gitweb">changeset</a> |
582 590 <a href="/file/tip/foo?style=gitweb">latest</a> |
583 591 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
584 592 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> |
585 593 <a href="/diff/xyzzy/foo?style=gitweb">diff</a> |
586 594 <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> |
587 595 <a href="/raw-file/xyzzy/foo">raw</a> |
588 596 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
589 597 <a class="list" href="/file/43c799df6e75/foo?style=gitweb">
590 598 <a class="list" href="/file/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a></td>
591 599
592 600 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy/foo?style=gitweb' | egrep $REVLINKS
593 601 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
594 602 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> |
595 603 <a href="/diff/xyzzy/foo?style=gitweb">diff</a> |
596 604 <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> |
597 605 <a href="/rss-log/tip/foo">rss</a> |
598 606 <a href="/log/43c799df6e75/foo?style=gitweb">(0)</a> <a href="/log/tip/foo?style=gitweb">tip</a>
599 607 <a class="list" href="/rev/a7c1559b7bba?style=gitweb">
600 608 <a href="/file/a7c1559b7bba/foo?style=gitweb">file</a> |
601 609 <a href="/diff/a7c1559b7bba/foo?style=gitweb">diff</a> |
602 610 <a href="/annotate/a7c1559b7bba/foo?style=gitweb">annotate</a>
603 611 <a class="list" href="/rev/43c799df6e75?style=gitweb">
604 612 <a href="/file/43c799df6e75/foo?style=gitweb">file</a> |
605 613 <a href="/diff/43c799df6e75/foo?style=gitweb">diff</a> |
606 614 <a href="/annotate/43c799df6e75/foo?style=gitweb">annotate</a>
607 615 <a href="/log/43c799df6e75/foo?style=gitweb">(0)</a> <a href="/log/tip/foo?style=gitweb">tip</a>
608 616
609 617 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'annotate/xyzzy/foo?style=gitweb' | egrep $REVLINKS
610 618 <a href="/file/xyzzy/?style=gitweb">files</a> |
611 619 <a href="/rev/xyzzy?style=gitweb">changeset</a> |
612 620 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
613 621 <a href="/file/tip/foo?style=gitweb">latest</a> |
614 622 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
615 623 <a href="/diff/xyzzy/foo?style=gitweb">diff</a> |
616 624 <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> |
617 625 <a href="/raw-annotate/xyzzy/foo">raw</a> |
618 626 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
619 627 <a class="list" href="/annotate/43c799df6e75/foo?style=gitweb">
620 628 <a class="list" href="/annotate/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a></td>
621 629 <a href="/annotate/43c799df6e75/foo?style=gitweb#l1">
630 <a href="/diff/43c799df6e75/foo?style=gitweb">diff</a>
631 <a href="/rev/43c799df6e75?style=gitweb">changeset</a>
622 632 <a href="/annotate/a7c1559b7bba/foo?style=gitweb#l2">
623 633 <a href="/annotate/43c799df6e75/foo?style=gitweb">0</a></div>
634 <a href="/diff/a7c1559b7bba/foo?style=gitweb">diff</a>
635 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a>
624 636
625 637 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'diff/xyzzy/foo?style=gitweb' | egrep $REVLINKS
626 638 <a href="/file/xyzzy?style=gitweb">files</a> |
627 639 <a href="/rev/xyzzy?style=gitweb">changeset</a> |
628 640 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
629 641 <a href="/file/tip/foo?style=gitweb">latest</a> |
630 642 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
631 643 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> |
632 644 <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> |
633 645 <a href="/raw-diff/xyzzy/foo">raw</a> |
634 646 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
635 647 <a class="list" href="/diff/43c799df6e75/foo?style=gitweb">
636 648 <a class="list" href="/diff/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a>
637 649
638 650 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'comparison/xyzzy/foo?style=gitweb' | egrep $REVLINKS
639 651 <a href="/file/xyzzy?style=gitweb">files</a> |
640 652 <a href="/rev/xyzzy?style=gitweb">changeset</a> |
641 653 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
642 654 <a href="/file/tip/foo?style=gitweb">latest</a> |
643 655 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
644 656 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> |
645 657 <a href="/diff/xyzzy/foo?style=gitweb">diff</a> |
646 658 <a href="/raw-diff/xyzzy/foo">raw</a> |
647 659 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
648 660 <a class="list" href="/comparison/43c799df6e75/foo?style=gitweb">
649 661 <a class="list" href="/comparison/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a>
650 662
651 663 (De)referencing symbolic revisions (monoblue)
652 664
653 665 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'summary?style=monoblue' | egrep $REVLINKS
654 666 <li><a href="/archive/tip.zip">zip</a></li>
655 667 <a href="/rev/9d8c40cba617?style=monoblue">
656 668 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
657 669 <a href="/file/9d8c40cba617?style=monoblue">files</a>
658 670 <a href="/rev/a7c1559b7bba?style=monoblue">
659 671 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
660 672 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
661 673 <a href="/rev/43c799df6e75?style=monoblue">
662 674 <a href="/rev/43c799df6e75?style=monoblue">changeset</a> |
663 675 <a href="/file/43c799df6e75?style=monoblue">files</a>
664 676 <td><a href="/rev/xyzzy?style=monoblue">xyzzy</a></td>
665 677 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
666 678 <a href="/log/a7c1559b7bba?style=monoblue">changelog</a> |
667 679 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
668 680 <td class="open"><a href="/shortlog/default?style=monoblue">default</a></td>
669 681 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
670 682 <a href="/log/9d8c40cba617?style=monoblue">changelog</a> |
671 683 <a href="/file/9d8c40cba617?style=monoblue">files</a>
672 684
673 685 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=monoblue' | egrep $REVLINKS
674 686 <li><a href="/graph/tip?style=monoblue">graph</a></li>
675 687 <li><a href="/file/tip?style=monoblue">files</a></li>
676 688 <li><a href="/archive/tip.zip">zip</a></li>
677 689 <a href="/rev/9d8c40cba617?style=monoblue">
678 690 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
679 691 <a href="/file/9d8c40cba617?style=monoblue">files</a>
680 692 <a href="/rev/a7c1559b7bba?style=monoblue">
681 693 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
682 694 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
683 695 <a href="/rev/43c799df6e75?style=monoblue">
684 696 <a href="/rev/43c799df6e75?style=monoblue">changeset</a> |
685 697 <a href="/file/43c799df6e75?style=monoblue">files</a>
686 698 <a href="/shortlog/43c799df6e75?style=monoblue">(0)</a> <a href="/shortlog/tip?style=monoblue">tip</a>
687 699
688 700 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log?style=monoblue' | egrep $REVLINKS
689 701 <li><a href="/graph/tip?style=monoblue">graph</a></li>
690 702 <li><a href="/file/tip?style=monoblue">files</a></li>
691 703 <li><a href="/archive/tip.zip">zip</a></li>
692 704 <h3 class="changelog"><a class="title" href="/rev/9d8c40cba617?style=monoblue">third<span class="logtags"> <span class="branchtag" title="default">default</span> <span class="tagtag" title="tip">tip</span> </span></a></h3>
693 705 <h3 class="changelog"><a class="title" href="/rev/a7c1559b7bba?style=monoblue">second<span class="logtags"> <span class="bookmarktag" title="xyzzy">xyzzy</span> </span></a></h3>
694 706 <h3 class="changelog"><a class="title" href="/rev/43c799df6e75?style=monoblue">first<span class="logtags"> </span></a></h3>
695 707 <a href="/log/43c799df6e75?style=monoblue">(0)</a> <a href="/log/tip?style=monoblue">tip</a>
696 708
697 709 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph?style=monoblue' | egrep $REVLINKS
698 710 <li><a href="/file/tip?style=monoblue">files</a></li>
699 711 <a href="/graph/tip?revcount=30&style=monoblue">less</a>
700 712 <a href="/graph/tip?revcount=120&style=monoblue">more</a>
701 713 | <a href="/graph/43c799df6e75?style=monoblue">(0)</a> <a href="/graph/tip?style=monoblue">tip</a>
702 714
703 715 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'tags?style=monoblue' | egrep $REVLINKS
704 716 <td><a href="/rev/tip?style=monoblue">tip</a></td>
705 717 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
706 718 <a href="/log/9d8c40cba617?style=monoblue">changelog</a> |
707 719 <a href="/file/9d8c40cba617?style=monoblue">files</a>
708 720
709 721 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'bookmarks?style=monoblue' | egrep $REVLINKS
710 722 <td><a href="/rev/xyzzy?style=monoblue">xyzzy</a></td>
711 723 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
712 724 <a href="/log/a7c1559b7bba?style=monoblue">changelog</a> |
713 725 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
714 726
715 727 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'branches?style=monoblue' | egrep $REVLINKS
716 728 <td class="open"><a href="/shortlog/default?style=monoblue">default</a></td>
717 729 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
718 730 <a href="/log/9d8c40cba617?style=monoblue">changelog</a> |
719 731 <a href="/file/9d8c40cba617?style=monoblue">files</a>
720 732
721 733 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file?style=monoblue' | egrep $REVLINKS
722 734 <li><a href="/graph/tip?style=monoblue">graph</a></li>
723 735 <li><a href="/rev/tip?style=monoblue">changeset</a></li>
724 736 <li><a href="/archive/tip.zip">zip</a></li>
725 737 <td><a href="/file/tip/?style=monoblue">[up]</a></td>
726 738 <a href="/file/tip/dir?style=monoblue">dir</a>
727 739 <a href="/file/tip/dir/?style=monoblue"></a>
728 740 <td><a href="/file/tip/dir?style=monoblue">files</a></td>
729 741 <td><a href="/file/tip/foo?style=monoblue">foo</a></td>
730 742 <a href="/file/tip/foo?style=monoblue">file</a> |
731 743 <a href="/log/tip/foo?style=monoblue">revisions</a> |
732 744 <a href="/annotate/tip/foo?style=monoblue">annotate</a>
733 745
734 746 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=monoblue&rev=all()' | egrep $REVLINKS
735 747 <li><a href="/archive/tip.zip">zip</a></li>
736 748 <h3 class="changelog"><a class="title" href="/rev/9d8c40cba617?style=monoblue">third<span class="logtags"> <span class="branchtag" title="default">default</span> <span class="tagtag" title="tip">tip</span> </span></a></h3>
737 749 <h3 class="changelog"><a class="title" href="/rev/a7c1559b7bba?style=monoblue">second<span class="logtags"> <span class="bookmarktag" title="xyzzy">xyzzy</span> </span></a></h3>
738 750 <h3 class="changelog"><a class="title" href="/rev/43c799df6e75?style=monoblue">first<span class="logtags"> </span></a></h3>
739 751
740 752 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'rev/xyzzy?style=monoblue' | egrep $REVLINKS
741 753 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
742 754 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
743 755 <li><a href="/raw-rev/xyzzy">raw</a></li>
744 756 <li><a href="/archive/xyzzy.zip">zip</a></li>
745 757 <h3 class="changeset"><a href="/raw-rev/a7c1559b7bba">second <span class="logtags"><span class="bookmarktag" title="xyzzy">xyzzy</span> </span></a></h3>
746 758 <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
747 759 <dd><a href="/rev/43c799df6e75?style=monoblue">43c799df6e75</a></dd>
748 760 <dd><a href="/rev/9d8c40cba617?style=monoblue">9d8c40cba617</a></dd>
749 761 <td><a href="/diff/a7c1559b7bba/foo?style=monoblue">foo</a></td>
750 762 <a href="/file/a7c1559b7bba/foo?style=monoblue">file</a> |
751 763 <a href="/annotate/a7c1559b7bba/foo?style=monoblue">annotate</a> |
752 764 <a href="/diff/a7c1559b7bba/foo?style=monoblue">diff</a> |
753 765 <a href="/comparison/a7c1559b7bba/foo?style=monoblue">comparison</a> |
754 766 <a href="/log/a7c1559b7bba/foo?style=monoblue">revisions</a>
755 767
756 768 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog/xyzzy?style=monoblue' | egrep $REVLINKS
757 769 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
758 770 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
759 771 <li><a href="/archive/xyzzy.zip">zip</a></li>
760 772 <a href="/rev/a7c1559b7bba?style=monoblue">
761 773 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
762 774 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
763 775 <a href="/rev/43c799df6e75?style=monoblue">
764 776 <a href="/rev/43c799df6e75?style=monoblue">changeset</a> |
765 777 <a href="/file/43c799df6e75?style=monoblue">files</a>
766 778 <a href="/shortlog/43c799df6e75?style=monoblue">(0)</a> <a href="/shortlog/tip?style=monoblue">tip</a>
767 779
768 780 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy?style=monoblue' | egrep $REVLINKS
769 781 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
770 782 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
771 783 <li><a href="/archive/xyzzy.zip">zip</a></li>
772 784 <h3 class="changelog"><a class="title" href="/rev/a7c1559b7bba?style=monoblue">second<span class="logtags"> <span class="bookmarktag" title="xyzzy">xyzzy</span> </span></a></h3>
773 785 <h3 class="changelog"><a class="title" href="/rev/43c799df6e75?style=monoblue">first<span class="logtags"> </span></a></h3>
774 786 <a href="/log/43c799df6e75?style=monoblue">(0)</a> <a href="/log/tip?style=monoblue">tip</a>
775 787
776 788 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph/xyzzy?style=monoblue' | egrep $REVLINKS
777 789 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
778 790 <a href="/graph/xyzzy?revcount=30&style=monoblue">less</a>
779 791 <a href="/graph/xyzzy?revcount=120&style=monoblue">more</a>
780 792 | <a href="/graph/43c799df6e75?style=monoblue">(0)</a> <a href="/graph/tip?style=monoblue">tip</a>
781 793
782 794 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy?style=monoblue' | egrep $REVLINKS
783 795 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
784 796 <li><a href="/rev/xyzzy?style=monoblue">changeset</a></li>
785 797 <li><a href="/archive/xyzzy.zip">zip</a></li>
786 798 <td><a href="/file/xyzzy/?style=monoblue">[up]</a></td>
787 799 <a href="/file/xyzzy/dir?style=monoblue">dir</a>
788 800 <a href="/file/xyzzy/dir/?style=monoblue"></a>
789 801 <td><a href="/file/xyzzy/dir?style=monoblue">files</a></td>
790 802 <td><a href="/file/xyzzy/foo?style=monoblue">foo</a></td>
791 803 <a href="/file/xyzzy/foo?style=monoblue">file</a> |
792 804 <a href="/log/xyzzy/foo?style=monoblue">revisions</a> |
793 805 <a href="/annotate/xyzzy/foo?style=monoblue">annotate</a>
794 806
795 807 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy/foo?style=monoblue' | egrep $REVLINKS
796 808 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
797 809 <li><a href="/file/xyzzy/?style=monoblue">files</a></li>
798 810 <li><a href="/file/tip/foo?style=monoblue">latest</a></li>
799 811 <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li>
800 812 <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li>
801 813 <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li>
802 814 <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li>
803 815 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
804 816 <dd><a class="list" href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
805 817 <a href="/file/43c799df6e75/foo?style=monoblue">
806 818 <a href="/file/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a>
807 819
808 820 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy/foo?style=monoblue' | egrep $REVLINKS
809 821 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
810 822 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
811 823 <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li>
812 824 <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li>
813 825 <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li>
814 826 <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li>
815 827 <li><a href="/rss-log/tip/foo">rss</a></li>
816 828 <a href="/rev/a7c1559b7bba?style=monoblue">
817 829 <a href="/file/a7c1559b7bba/foo?style=monoblue">file</a> |
818 830 <a href="/diff/a7c1559b7bba/foo?style=monoblue">diff</a> |
819 831 <a href="/annotate/a7c1559b7bba/foo?style=monoblue">annotate</a>
820 832 <a href="/rev/43c799df6e75?style=monoblue">
821 833 <a href="/file/43c799df6e75/foo?style=monoblue">file</a> |
822 834 <a href="/diff/43c799df6e75/foo?style=monoblue">diff</a> |
823 835 <a href="/annotate/43c799df6e75/foo?style=monoblue">annotate</a>
824 836 <a href="/log/43c799df6e75/foo?style=monoblue">(0)</a> <a href="/log/tip/foo?style=monoblue">tip</a>
825 837
826 838 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'annotate/xyzzy/foo?style=monoblue' | egrep $REVLINKS
827 839 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
828 840 <li><a href="/file/xyzzy/?style=monoblue">files</a></li>
829 841 <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li>
830 842 <li><a href="/file/tip/foo?style=monoblue">latest</a></li>
831 843 <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li>
832 844 <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li>
833 845 <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li>
834 846 <li><a href="/raw-annotate/xyzzy/foo">raw</a></li>
835 847 <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
836 848 <a href="/annotate/43c799df6e75/foo?style=monoblue">
837 849 <a href="/annotate/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a>
838 850 <a href="/annotate/43c799df6e75/foo?style=monoblue#l1">
851 <a href="/diff/43c799df6e75/foo?style=monoblue">diff</a>
852 <a href="/rev/43c799df6e75?style=monoblue">changeset</a>
839 853 <a href="/annotate/a7c1559b7bba/foo?style=monoblue#l2">
840 854 <a href="/annotate/43c799df6e75/foo?style=monoblue">0</a></div>
855 <a href="/diff/a7c1559b7bba/foo?style=monoblue">diff</a>
856 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a>
841 857
842 858 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'diff/xyzzy/foo?style=monoblue' | egrep $REVLINKS
843 859 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
844 860 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
845 861 <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li>
846 862 <li><a href="/file/tip/foo?style=monoblue">latest</a></li>
847 863 <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li>
848 864 <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li>
849 865 <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li>
850 866 <li><a href="/raw-diff/xyzzy/foo">raw</a></li>
851 867 <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
852 868 <dd><a href="/diff/43c799df6e75/foo?style=monoblue">43c799df6e75</a></dd>
853 869 <dd><a href="/diff/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a></dd>
854 870
855 871 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'comparison/xyzzy/foo?style=monoblue' | egrep $REVLINKS
856 872 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
857 873 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
858 874 <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li>
859 875 <li><a href="/file/tip/foo?style=monoblue">latest</a></li>
860 876 <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li>
861 877 <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li>
862 878 <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li>
863 879 <li><a href="/raw-diff/xyzzy/foo">raw</a></li>
864 880 <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
865 881 <dd><a href="/comparison/43c799df6e75/foo?style=monoblue">43c799df6e75</a></dd>
866 882 <dd><a href="/comparison/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a></dd>
867 883
868 884 (De)referencing symbolic revisions (spartan)
869 885
870 886 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=spartan' | egrep $REVLINKS
871 887 <a href="/log/tip?style=spartan">changelog</a>
872 888 <a href="/graph/tip?style=spartan">graph</a>
873 889 <a href="/file/tip/?style=spartan">files</a>
874 890 <a href="/archive/tip.zip">zip</a>
875 891 navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small>
876 892 <td class="node"><a href="/rev/9d8c40cba617?style=spartan">third</a></td>
877 893 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">second</a></td>
878 894 <td class="node"><a href="/rev/43c799df6e75?style=spartan">first</a></td>
879 895 navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small>
880 896
881 897 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log?style=spartan' | egrep $REVLINKS
882 898 <a href="/shortlog/tip?style=spartan">shortlog</a>
883 899 <a href="/graph/tip?style=spartan">graph</a>
884 900 <a href="/file/tip?style=spartan">files</a>
885 901 <a href="/archive/tip.zip">zip</a>
886 902 navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small>
887 903 <td class="node"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
888 904 <th class="files"><a href="/file/9d8c40cba617?style=spartan">files</a>:</th>
889 905 <td class="files"><a href="/diff/9d8c40cba617/foo?style=spartan">foo</a> </td>
890 906 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
891 907 <th class="files"><a href="/file/a7c1559b7bba?style=spartan">files</a>:</th>
892 908 <td class="files"><a href="/diff/a7c1559b7bba/foo?style=spartan">foo</a> </td>
893 909 <td class="node"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
894 910 <th class="files"><a href="/file/43c799df6e75?style=spartan">files</a>:</th>
895 911 <td class="files"><a href="/diff/43c799df6e75/dir/bar?style=spartan">dir/bar</a> <a href="/diff/43c799df6e75/foo?style=spartan">foo</a> </td>
896 912 navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small>
897 913
898 914 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph?style=spartan' | egrep $REVLINKS
899 915 <a href="/log/tip?style=spartan">changelog</a>
900 916 <a href="/shortlog/tip?style=spartan">shortlog</a>
901 917 <a href="/file/tip/?style=spartan">files</a>
902 918 navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small>
903 919 navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small>
904 920
905 921 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'tags?style=spartan' | egrep $REVLINKS
906 922 <a href="/rev/9d8c40cba617?style=spartan">tip</a>
907 923
908 924 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'branches?style=spartan' | egrep $REVLINKS
909 925 <a href="/shortlog/9d8c40cba617?style=spartan" class="open">default</a>
910 926
911 927 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file?style=spartan' | egrep $REVLINKS
912 928 <a href="/log/tip?style=spartan">changelog</a>
913 929 <a href="/shortlog/tip?style=spartan">shortlog</a>
914 930 <a href="/graph/tip?style=spartan">graph</a>
915 931 <a href="/rev/tip?style=spartan">changeset</a>
916 932 <a href="/archive/tip.zip">zip</a>
917 933 <h2><a href="/">Mercurial</a> / files for changeset <a href="/rev/9d8c40cba617">9d8c40cba617</a>: /</h2>
918 934 <td><a href="/file/tip/?style=spartan">[up]</a>
919 935 <a href="/file/tip/dir?style=spartan">dir/</a>
920 936 <a href="/file/tip/dir/?style=spartan">
921 937 <td><a href="/file/tip/foo?style=spartan">foo</a>
922 938
923 939 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=spartan&rev=all()' | egrep $REVLINKS
924 940 <a href="/archive/tip.zip">zip</a>
925 941 <td class="node"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
926 942 <a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a>
927 943 <th class="files"><a href="/file/9d8c40cba617?style=spartan">files</a>:</th>
928 944 <td class="files"><a href="/diff/9d8c40cba617/foo?style=spartan">foo</a> </td>
929 945 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
930 946 <a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a>
931 947 <td class="child"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
932 948 <th class="files"><a href="/file/a7c1559b7bba?style=spartan">files</a>:</th>
933 949 <td class="files"><a href="/diff/a7c1559b7bba/foo?style=spartan">foo</a> </td>
934 950 <td class="node"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
935 951 <td class="child"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
936 952 <th class="files"><a href="/file/43c799df6e75?style=spartan">files</a>:</th>
937 953 <td class="files"><a href="/diff/43c799df6e75/dir/bar?style=spartan">dir/bar</a> <a href="/diff/43c799df6e75/foo?style=spartan">foo</a> </td>
938 954
939 955 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'rev/xyzzy?style=spartan' | egrep $REVLINKS
940 956 <a href="/log/xyzzy?style=spartan">changelog</a>
941 957 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
942 958 <a href="/graph/xyzzy?style=spartan">graph</a>
943 959 <a href="/file/xyzzy?style=spartan">files</a>
944 960 <a href="/raw-rev/xyzzy">raw</a>
945 961 <a href="/archive/xyzzy.zip">zip</a>
946 962 <td class="changeset"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
947 963 <td class="parent"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
948 964 <td class="child"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
949 965 <td class="files"><a href="/file/a7c1559b7bba/foo?style=spartan">foo</a> </td>
950 966
951 967 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog/xyzzy?style=spartan' | egrep $REVLINKS
952 968 <a href="/log/xyzzy?style=spartan">changelog</a>
953 969 <a href="/graph/xyzzy?style=spartan">graph</a>
954 970 <a href="/file/xyzzy/?style=spartan">files</a>
955 971 <a href="/archive/xyzzy.zip">zip</a>
956 972 navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small>
957 973 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">second</a></td>
958 974 <td class="node"><a href="/rev/43c799df6e75?style=spartan">first</a></td>
959 975 navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small>
960 976
961 977 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy?style=spartan' | egrep $REVLINKS
962 978 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
963 979 <a href="/graph/xyzzy?style=spartan">graph</a>
964 980 <a href="/file/xyzzy?style=spartan">files</a>
965 981 <a href="/archive/xyzzy.zip">zip</a>
966 982 navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small>
967 983 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
968 984 <th class="files"><a href="/file/a7c1559b7bba?style=spartan">files</a>:</th>
969 985 <td class="files"><a href="/diff/a7c1559b7bba/foo?style=spartan">foo</a> </td>
970 986 <td class="node"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
971 987 <th class="files"><a href="/file/43c799df6e75?style=spartan">files</a>:</th>
972 988 <td class="files"><a href="/diff/43c799df6e75/dir/bar?style=spartan">dir/bar</a> <a href="/diff/43c799df6e75/foo?style=spartan">foo</a> </td>
973 989 navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small>
974 990
975 991 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph/xyzzy?style=spartan' | egrep $REVLINKS
976 992 <a href="/log/xyzzy?style=spartan">changelog</a>
977 993 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
978 994 <a href="/file/xyzzy/?style=spartan">files</a>
979 995 navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small>
980 996 navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small>
981 997
982 998 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy?style=spartan' | egrep $REVLINKS
983 999 <a href="/log/xyzzy?style=spartan">changelog</a>
984 1000 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
985 1001 <a href="/graph/xyzzy?style=spartan">graph</a>
986 1002 <a href="/rev/xyzzy?style=spartan">changeset</a>
987 1003 <a href="/archive/xyzzy.zip">zip</a>
988 1004 <h2><a href="/">Mercurial</a> / files for changeset <a href="/rev/a7c1559b7bba">a7c1559b7bba</a>: /</h2>
989 1005 <td><a href="/file/xyzzy/?style=spartan">[up]</a>
990 1006 <a href="/file/xyzzy/dir?style=spartan">dir/</a>
991 1007 <a href="/file/xyzzy/dir/?style=spartan">
992 1008 <td><a href="/file/xyzzy/foo?style=spartan">foo</a>
993 1009
994 1010 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy/foo?style=spartan' | egrep $REVLINKS
995 1011 <a href="/log/xyzzy?style=spartan">changelog</a>
996 1012 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
997 1013 <a href="/graph/xyzzy?style=spartan">graph</a>
998 1014 <a href="/rev/xyzzy?style=spartan">changeset</a>
999 1015 <a href="/file/xyzzy/?style=spartan">files</a>
1000 1016 <a href="/log/xyzzy/foo?style=spartan">revisions</a>
1001 1017 <a href="/annotate/xyzzy/foo?style=spartan">annotate</a>
1002 1018 <a href="/raw-file/xyzzy/foo">raw</a>
1003 1019 <td><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
1004 1020 <a href="/file/43c799df6e75/foo?style=spartan">
1005 1021 <td><a href="/file/9d8c40cba617/foo?style=spartan">9d8c40cba617</a></td>
1006 1022
1007 1023 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy/foo?style=spartan' | egrep $REVLINKS
1008 1024 href="/atom-log/tip/foo" title="Atom feed for test:foo">
1009 1025 href="/rss-log/tip/foo" title="RSS feed for test:foo">
1010 1026 <a href="/file/xyzzy/foo?style=spartan">file</a>
1011 1027 <a href="/annotate/xyzzy/foo?style=spartan">annotate</a>
1012 1028 <a type="application/rss+xml" href="/rss-log/tip/foo">rss</a>
1013 1029 <a type="application/atom+xml" href="/atom-log/tip/foo" title="Atom feed for test:foo">atom</a>
1014 1030 <p>navigate: <small class="navigate"><a href="/log/43c799df6e75/foo?style=spartan">(0)</a> <a href="/log/tip/foo?style=spartan">tip</a> </small></p>
1015 1031 <th class="firstline"><a href="/rev/a7c1559b7bba?style=spartan">second</a></th>
1016 1032 <a href="/file/a7c1559b7bba/foo?style=spartan">a7c1559b7bba</a>
1017 1033 <a href="/diff/a7c1559b7bba/foo?style=spartan">(diff)</a>
1018 1034 <a href="/annotate/a7c1559b7bba/foo?style=spartan">(annotate)</a>
1019 1035 <th class="firstline"><a href="/rev/43c799df6e75?style=spartan">first</a></th>
1020 1036 <a href="/file/43c799df6e75/foo?style=spartan">43c799df6e75</a>
1021 1037 <a href="/diff/43c799df6e75/foo?style=spartan">(diff)</a>
1022 1038 <a href="/annotate/43c799df6e75/foo?style=spartan">(annotate)</a>
1023 1039
1024 1040 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'annotate/xyzzy/foo?style=spartan' | egrep $REVLINKS
1025 1041 <a href="/log/xyzzy?style=spartan">changelog</a>
1026 1042 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1027 1043 <a href="/graph/xyzzy?style=spartan">graph</a>
1028 1044 <a href="/rev/xyzzy?style=spartan">changeset</a>
1029 1045 <a href="/file/xyzzy/?style=spartan">files</a>
1030 1046 <a href="/file/xyzzy/foo?style=spartan">file</a>
1031 1047 <a href="/log/xyzzy/foo?style=spartan">revisions</a>
1032 1048 <a href="/raw-annotate/xyzzy/foo">raw</a>
1033 1049 <td><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
1034 1050 <a href="/annotate/43c799df6e75/foo?style=spartan">
1035 1051 <td><a href="/annotate/9d8c40cba617/foo?style=spartan">9d8c40cba617</a></td>
1036 1052 <a href="/annotate/43c799df6e75/foo?style=spartan#l1">
1053 <a href="/diff/43c799df6e75/foo?style=spartan">diff</a>
1054 <a href="/rev/43c799df6e75?style=spartan">changeset</a>
1037 1055 <a href="/annotate/a7c1559b7bba/foo?style=spartan#l2">
1038 1056 <a href="/annotate/43c799df6e75/foo?style=spartan">0</a></div>
1057 <a href="/diff/a7c1559b7bba/foo?style=spartan">diff</a>
1058 <a href="/rev/a7c1559b7bba?style=spartan">changeset</a>
1039 1059
1040 1060 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'diff/xyzzy/foo?style=spartan' | egrep $REVLINKS
1041 1061 <a href="/log/xyzzy?style=spartan">changelog</a>
1042 1062 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1043 1063 <a href="/graph/xyzzy?style=spartan">graph</a>
1044 1064 <a href="/rev/xyzzy?style=spartan">changeset</a>
1045 1065 <a href="/file/xyzzy/foo?style=spartan">file</a>
1046 1066 <a href="/log/xyzzy/foo?style=spartan">revisions</a>
1047 1067 <a href="/annotate/xyzzy/foo?style=spartan">annotate</a>
1048 1068 <a href="/raw-diff/xyzzy/foo">raw</a>
1049 1069 <td class="revision"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
1050 1070 <td class="parent"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
1051 1071 <td class="child"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
1052 1072
1053 1073 Done
1054 1074
1055 1075 $ cat errors.log
1056 1076 $ "$TESTDIR/killdaemons.py" $DAEMON_PIDS
1057 1077 $ cd ..
@@ -1,791 +1,857
1 1 #require pygments serve
2 2
3 3 $ cat <<EOF >> $HGRCPATH
4 4 > [extensions]
5 5 > highlight =
6 6 > [web]
7 7 > pygments_style = friendly
8 8 > highlightfiles = **.py and size('<100KB')
9 9 > EOF
10 10 $ hg init test
11 11 $ cd test
12 12
13 13 $ filterhtml () {
14 14 > sed -e "s/class=\"k\"/class=\"kn\"/g" \
15 15 > -e "s/class=\"mf\"/class=\"mi\"/g" \
16 16 > -e "s/class=\"\([cs]\)[h12]\"/class=\"\1\"/g"
17 17 > }
18 18
19 19 create random Python file to exercise Pygments
20 20
21 21 $ cat <<EOF > primes.py
22 22 > #!/usr/bin/env python
23 23 >
24 24 > """Fun with generators. Corresponding Haskell implementation:
25 25 >
26 26 > primes = 2 : sieve [3, 5..]
27 27 > where sieve (p:ns) = p : sieve [n | n <- ns, mod n p /= 0]
28 28 > """
29 29 >
30 30 > from itertools import dropwhile, ifilter, islice, count, chain
31 31 >
32 32 > def primes():
33 33 > """Generate all primes."""
34 34 > def sieve(ns):
35 35 > p = ns.next()
36 36 > # It is important to yield *here* in order to stop the
37 37 > # infinite recursion.
38 38 > yield p
39 39 > ns = ifilter(lambda n: n % p != 0, ns)
40 40 > for n in sieve(ns):
41 41 > yield n
42 42 >
43 43 > odds = ifilter(lambda i: i % 2 == 1, count())
44 44 > return chain([2], sieve(dropwhile(lambda n: n < 3, odds)))
45 45 >
46 46 > if __name__ == "__main__":
47 47 > import sys
48 48 > try:
49 49 > n = int(sys.argv[1])
50 50 > except (ValueError, IndexError):
51 51 > n = 10
52 52 > p = primes()
53 53 > print "The first %d primes: %s" % (n, list(islice(p, n)))
54 54 > EOF
55 55 $ echo >> primes.py # to test html markup with an empty line just before EOF
56 56 $ hg ci -Ama
57 57 adding primes.py
58 58
59 59 hg serve
60 60
61 61 $ hg serve -p $HGPORT -d -n test --pid-file=hg.pid -A access.log -E errors.log
62 62 $ cat hg.pid >> $DAEMON_PIDS
63 63
64 64 hgweb filerevision, html
65 65
66 66 $ (get-with-headers.py localhost:$HGPORT 'file/tip/primes.py') | filterhtml
67 67 200 Script output follows
68 68
69 69 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
70 70 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
71 71 <head>
72 72 <link rel="icon" href="/static/hgicon.png" type="image/png" />
73 73 <meta name="robots" content="index, nofollow" />
74 74 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
75 75 <script type="text/javascript" src="/static/mercurial.js"></script>
76 76
77 77 <link rel="stylesheet" href="/highlightcss" type="text/css" />
78 78 <title>test: 06824edf55d0 primes.py</title>
79 79 </head>
80 80 <body>
81 81
82 82 <div class="container">
83 83 <div class="menu">
84 84 <div class="logo">
85 85 <a href="https://mercurial-scm.org/">
86 86 <img src="/static/hglogo.png" alt="mercurial" /></a>
87 87 </div>
88 88 <ul>
89 89 <li><a href="/shortlog/tip">log</a></li>
90 90 <li><a href="/graph/tip">graph</a></li>
91 91 <li><a href="/tags">tags</a></li>
92 92 <li><a href="/bookmarks">bookmarks</a></li>
93 93 <li><a href="/branches">branches</a></li>
94 94 </ul>
95 95 <ul>
96 96 <li><a href="/rev/tip">changeset</a></li>
97 97 <li><a href="/file/tip/">browse</a></li>
98 98 </ul>
99 99 <ul>
100 100 <li class="active">file</li>
101 101 <li><a href="/file/tip/primes.py">latest</a></li>
102 102 <li><a href="/diff/tip/primes.py">diff</a></li>
103 103 <li><a href="/comparison/tip/primes.py">comparison</a></li>
104 104 <li><a href="/annotate/tip/primes.py">annotate</a></li>
105 105 <li><a href="/log/tip/primes.py">file log</a></li>
106 106 <li><a href="/raw-file/tip/primes.py">raw</a></li>
107 107 </ul>
108 108 <ul>
109 109 <li><a href="/help">help</a></li>
110 110 </ul>
111 111 </div>
112 112
113 113 <div class="main">
114 114 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
115 115 <h3>
116 116 view primes.py @ 0:<a href="/rev/06824edf55d0">06824edf55d0</a>
117 117 <span class="tag">tip</span>
118 118 </h3>
119 119
120 120 <form class="search" action="/log">
121 121
122 122 <p><input name="rev" id="search1" type="text" size="30" /></p>
123 123 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
124 124 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
125 125 </form>
126 126
127 127 <div class="description">a</div>
128 128
129 129 <table id="changesetEntry">
130 130 <tr>
131 131 <th class="author">author</th>
132 132 <td class="author">&#116;&#101;&#115;&#116;</td>
133 133 </tr>
134 134 <tr>
135 135 <th class="date">date</th>
136 136 <td class="date age">Thu, 01 Jan 1970 00:00:00 +0000</td>
137 137 </tr>
138 138 <tr>
139 139 <th class="author">parents</th>
140 140 <td class="author"></td>
141 141 </tr>
142 142 <tr>
143 143 <th class="author">children</th>
144 144 <td class="author"></td>
145 145 </tr>
146 146 </table>
147 147
148 148 <div class="overflow">
149 149 <div class="sourcefirst linewraptoggle">line wrap: <a class="linewraplink" href="javascript:toggleLinewrap()">on</a></div>
150 150 <div class="sourcefirst"> line source</div>
151 151 <pre class="sourcelines stripes4 wrap bottomline">
152 152 <span id="l1"><span class="c">#!/usr/bin/env python</span></span><a href="#l1"></a>
153 153 <span id="l2"></span><a href="#l2"></a>
154 154 <span id="l3"><span class="sd">&quot;&quot;&quot;Fun with generators. Corresponding Haskell implementation:</span></span><a href="#l3"></a>
155 155 <span id="l4"></span><a href="#l4"></a>
156 156 <span id="l5"><span class="sd">primes = 2 : sieve [3, 5..]</span></span><a href="#l5"></a>
157 157 <span id="l6"><span class="sd"> where sieve (p:ns) = p : sieve [n | n &lt;- ns, mod n p /= 0]</span></span><a href="#l6"></a>
158 158 <span id="l7"><span class="sd">&quot;&quot;&quot;</span></span><a href="#l7"></a>
159 159 <span id="l8"></span><a href="#l8"></a>
160 160 <span id="l9"><span class="kn">from</span> <span class="nn">itertools</span> <span class="kn">import</span> <span class="n">dropwhile</span><span class="p">,</span> <span class="n">ifilter</span><span class="p">,</span> <span class="n">islice</span><span class="p">,</span> <span class="n">count</span><span class="p">,</span> <span class="n">chain</span></span><a href="#l9"></a>
161 161 <span id="l10"></span><a href="#l10"></a>
162 162 <span id="l11"><span class="kn">def</span> <span class="nf">primes</span><span class="p">():</span></span><a href="#l11"></a>
163 163 <span id="l12"> <span class="sd">&quot;&quot;&quot;Generate all primes.&quot;&quot;&quot;</span></span><a href="#l12"></a>
164 164 <span id="l13"> <span class="kn">def</span> <span class="nf">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></span><a href="#l13"></a>
165 165 <span id="l14"> <span class="n">p</span> <span class="o">=</span> <span class="n">ns</span><span class="o">.</span><span class="n">next</span><span class="p">()</span></span><a href="#l14"></a>
166 166 <span id="l15"> <span class="c"># It is important to yield *here* in order to stop the</span></span><a href="#l15"></a>
167 167 <span id="l16"> <span class="c"># infinite recursion.</span></span><a href="#l16"></a>
168 168 <span id="l17"> <span class="kn">yield</span> <span class="n">p</span></span><a href="#l17"></a>
169 169 <span id="l18"> <span class="n">ns</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">%</span> <span class="n">p</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">ns</span><span class="p">)</span></span><a href="#l18"></a>
170 170 <span id="l19"> <span class="kn">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></span><a href="#l19"></a>
171 171 <span id="l20"> <span class="kn">yield</span> <span class="n">n</span></span><a href="#l20"></a>
172 172 <span id="l21"></span><a href="#l21"></a>
173 173 <span id="l22"> <span class="n">odds</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">i</span><span class="p">:</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">1</span><span class="p">,</span> <span class="n">count</span><span class="p">())</span></span><a href="#l22"></a>
174 174 <span id="l23"> <span class="kn">return</span> <span class="n">chain</span><span class="p">([</span><span class="mi">2</span><span class="p">],</span> <span class="n">sieve</span><span class="p">(</span><span class="n">dropwhile</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">&lt;</span> <span class="mi">3</span><span class="p">,</span> <span class="n">odds</span><span class="p">)))</span></span><a href="#l23"></a>
175 175 <span id="l24"></span><a href="#l24"></a>
176 176 <span id="l25"><span class="kn">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&quot;__main__&quot;</span><span class="p">:</span></span><a href="#l25"></a>
177 177 <span id="l26"> <span class="kn">import</span> <span class="nn">sys</span></span><a href="#l26"></a>
178 178 <span id="l27"> <span class="kn">try</span><span class="p">:</span></span><a href="#l27"></a>
179 179 <span id="l28"> <span class="n">n</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span></span><a href="#l28"></a>
180 180 <span id="l29"> <span class="kn">except</span> <span class="p">(</span><span class="ne">ValueError</span><span class="p">,</span> <span class="ne">IndexError</span><span class="p">):</span></span><a href="#l29"></a>
181 181 <span id="l30"> <span class="n">n</span> <span class="o">=</span> <span class="mi">10</span></span><a href="#l30"></a>
182 182 <span id="l31"> <span class="n">p</span> <span class="o">=</span> <span class="n">primes</span><span class="p">()</span></span><a href="#l31"></a>
183 183 <span id="l32"> <span class="kn">print</span> <span class="s">&quot;The first </span><span class="si">%d</span><span class="s"> primes: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="nb">list</span><span class="p">(</span><span class="n">islice</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">n</span><span class="p">)))</span></span><a href="#l32"></a>
184 184 <span id="l33"></span><a href="#l33"></a></pre>
185 185 </div>
186 186 </div>
187 187 </div>
188 188
189 189 <script type="text/javascript">process_dates()</script>
190 190
191 191
192 192 </body>
193 193 </html>
194 194
195 195
196 196 hgweb fileannotate, html
197 197
198 198 $ (get-with-headers.py localhost:$HGPORT 'annotate/tip/primes.py') | filterhtml
199 199 200 Script output follows
200 200
201 201 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
202 202 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
203 203 <head>
204 204 <link rel="icon" href="/static/hgicon.png" type="image/png" />
205 205 <meta name="robots" content="index, nofollow" />
206 206 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
207 207 <script type="text/javascript" src="/static/mercurial.js"></script>
208 208
209 209 <link rel="stylesheet" href="/highlightcss" type="text/css" />
210 210 <title>test: primes.py annotate</title>
211 211 </head>
212 212 <body>
213 213
214 214 <div class="container">
215 215 <div class="menu">
216 216 <div class="logo">
217 217 <a href="https://mercurial-scm.org/">
218 218 <img src="/static/hglogo.png" alt="mercurial" /></a>
219 219 </div>
220 220 <ul>
221 221 <li><a href="/shortlog/tip">log</a></li>
222 222 <li><a href="/graph/tip">graph</a></li>
223 223 <li><a href="/tags">tags</a></li>
224 224 <li><a href="/bookmarks">bookmarks</a></li>
225 225 <li><a href="/branches">branches</a></li>
226 226 </ul>
227 227
228 228 <ul>
229 229 <li><a href="/rev/tip">changeset</a></li>
230 230 <li><a href="/file/tip/">browse</a></li>
231 231 </ul>
232 232 <ul>
233 233 <li><a href="/file/tip/primes.py">file</a></li>
234 234 <li><a href="/file/tip/primes.py">latest</a></li>
235 235 <li><a href="/diff/tip/primes.py">diff</a></li>
236 236 <li><a href="/comparison/tip/primes.py">comparison</a></li>
237 237 <li class="active">annotate</li>
238 238 <li><a href="/log/tip/primes.py">file log</a></li>
239 239 <li><a href="/raw-annotate/tip/primes.py">raw</a></li>
240 240 </ul>
241 241 <ul>
242 242 <li><a href="/help">help</a></li>
243 243 </ul>
244 244 </div>
245 245
246 246 <div class="main">
247 247 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
248 248 <h3>
249 249 annotate primes.py @ 0:<a href="/rev/06824edf55d0">06824edf55d0</a>
250 250 <span class="tag">tip</span>
251 251 </h3>
252 252
253 253 <form class="search" action="/log">
254 254
255 255 <p><input name="rev" id="search1" type="text" size="30" /></p>
256 256 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
257 257 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
258 258 </form>
259 259
260 260 <div class="description">a</div>
261 261
262 262 <table id="changesetEntry">
263 263 <tr>
264 264 <th class="author">author</th>
265 265 <td class="author">&#116;&#101;&#115;&#116;</td>
266 266 </tr>
267 267 <tr>
268 268 <th class="date">date</th>
269 269 <td class="date age">Thu, 01 Jan 1970 00:00:00 +0000</td>
270 270 </tr>
271 271 <tr>
272 272 <th class="author">parents</th>
273 273 <td class="author"></td>
274 274 </tr>
275 275 <tr>
276 276 <th class="author">children</th>
277 277 <td class="author"></td>
278 278 </tr>
279 279 </table>
280 280
281 281 <div class="overflow">
282 282 <table class="bigtable">
283 283 <thead>
284 284 <tr>
285 285 <th class="annotate">rev</th>
286 286 <th class="line">&nbsp;&nbsp;line source</th>
287 287 </tr>
288 288 </thead>
289 289 <tbody class="stripes2">
290 290
291 291 <tr id="l1" class="thisrev">
292 292 <td class="annotate">
293 293 <a href="/annotate/06824edf55d0/primes.py#l1">
294 294 test@0
295 295 </a>
296 296 <div class="annotate-info">
297 297 <div>06824edf55d0: a</div>
298 298 <div>parents: </div>
299 <a href="/diff/06824edf55d0/primes.py">diff</a>
300 <a href="/rev/06824edf55d0">changeset</a>
299 301 </div>
300 302 </td>
301 303 <td class="source"><a href="#l1"> 1</a> <span class="c">#!/usr/bin/env python</span></td>
302 304 </tr>
303 305 <tr id="l2" class="thisrev">
304 306 <td class="annotate">
305 307
306 308 <div class="annotate-info">
307 309 <div>06824edf55d0: a</div>
308 310 <div>parents: </div>
311 <a href="/diff/06824edf55d0/primes.py">diff</a>
312 <a href="/rev/06824edf55d0">changeset</a>
309 313 </div>
310 314 </td>
311 315 <td class="source"><a href="#l2"> 2</a> </td>
312 316 </tr>
313 317 <tr id="l3" class="thisrev">
314 318 <td class="annotate">
315 319
316 320 <div class="annotate-info">
317 321 <div>06824edf55d0: a</div>
318 322 <div>parents: </div>
323 <a href="/diff/06824edf55d0/primes.py">diff</a>
324 <a href="/rev/06824edf55d0">changeset</a>
319 325 </div>
320 326 </td>
321 327 <td class="source"><a href="#l3"> 3</a> <span class="sd">&quot;&quot;&quot;Fun with generators. Corresponding Haskell implementation:</span></td>
322 328 </tr>
323 329 <tr id="l4" class="thisrev">
324 330 <td class="annotate">
325 331
326 332 <div class="annotate-info">
327 333 <div>06824edf55d0: a</div>
328 334 <div>parents: </div>
335 <a href="/diff/06824edf55d0/primes.py">diff</a>
336 <a href="/rev/06824edf55d0">changeset</a>
329 337 </div>
330 338 </td>
331 339 <td class="source"><a href="#l4"> 4</a> </td>
332 340 </tr>
333 341 <tr id="l5" class="thisrev">
334 342 <td class="annotate">
335 343
336 344 <div class="annotate-info">
337 345 <div>06824edf55d0: a</div>
338 346 <div>parents: </div>
347 <a href="/diff/06824edf55d0/primes.py">diff</a>
348 <a href="/rev/06824edf55d0">changeset</a>
339 349 </div>
340 350 </td>
341 351 <td class="source"><a href="#l5"> 5</a> <span class="sd">primes = 2 : sieve [3, 5..]</span></td>
342 352 </tr>
343 353 <tr id="l6" class="thisrev">
344 354 <td class="annotate">
345 355
346 356 <div class="annotate-info">
347 357 <div>06824edf55d0: a</div>
348 358 <div>parents: </div>
359 <a href="/diff/06824edf55d0/primes.py">diff</a>
360 <a href="/rev/06824edf55d0">changeset</a>
349 361 </div>
350 362 </td>
351 363 <td class="source"><a href="#l6"> 6</a> <span class="sd"> where sieve (p:ns) = p : sieve [n | n &lt;- ns, mod n p /= 0]</span></td>
352 364 </tr>
353 365 <tr id="l7" class="thisrev">
354 366 <td class="annotate">
355 367
356 368 <div class="annotate-info">
357 369 <div>06824edf55d0: a</div>
358 370 <div>parents: </div>
371 <a href="/diff/06824edf55d0/primes.py">diff</a>
372 <a href="/rev/06824edf55d0">changeset</a>
359 373 </div>
360 374 </td>
361 375 <td class="source"><a href="#l7"> 7</a> <span class="sd">&quot;&quot;&quot;</span></td>
362 376 </tr>
363 377 <tr id="l8" class="thisrev">
364 378 <td class="annotate">
365 379
366 380 <div class="annotate-info">
367 381 <div>06824edf55d0: a</div>
368 382 <div>parents: </div>
383 <a href="/diff/06824edf55d0/primes.py">diff</a>
384 <a href="/rev/06824edf55d0">changeset</a>
369 385 </div>
370 386 </td>
371 387 <td class="source"><a href="#l8"> 8</a> </td>
372 388 </tr>
373 389 <tr id="l9" class="thisrev">
374 390 <td class="annotate">
375 391
376 392 <div class="annotate-info">
377 393 <div>06824edf55d0: a</div>
378 394 <div>parents: </div>
395 <a href="/diff/06824edf55d0/primes.py">diff</a>
396 <a href="/rev/06824edf55d0">changeset</a>
379 397 </div>
380 398 </td>
381 399 <td class="source"><a href="#l9"> 9</a> <span class="kn">from</span> <span class="nn">itertools</span> <span class="kn">import</span> <span class="n">dropwhile</span><span class="p">,</span> <span class="n">ifilter</span><span class="p">,</span> <span class="n">islice</span><span class="p">,</span> <span class="n">count</span><span class="p">,</span> <span class="n">chain</span></td>
382 400 </tr>
383 401 <tr id="l10" class="thisrev">
384 402 <td class="annotate">
385 403
386 404 <div class="annotate-info">
387 405 <div>06824edf55d0: a</div>
388 406 <div>parents: </div>
407 <a href="/diff/06824edf55d0/primes.py">diff</a>
408 <a href="/rev/06824edf55d0">changeset</a>
389 409 </div>
390 410 </td>
391 411 <td class="source"><a href="#l10"> 10</a> </td>
392 412 </tr>
393 413 <tr id="l11" class="thisrev">
394 414 <td class="annotate">
395 415
396 416 <div class="annotate-info">
397 417 <div>06824edf55d0: a</div>
398 418 <div>parents: </div>
419 <a href="/diff/06824edf55d0/primes.py">diff</a>
420 <a href="/rev/06824edf55d0">changeset</a>
399 421 </div>
400 422 </td>
401 423 <td class="source"><a href="#l11"> 11</a> <span class="kn">def</span> <span class="nf">primes</span><span class="p">():</span></td>
402 424 </tr>
403 425 <tr id="l12" class="thisrev">
404 426 <td class="annotate">
405 427
406 428 <div class="annotate-info">
407 429 <div>06824edf55d0: a</div>
408 430 <div>parents: </div>
431 <a href="/diff/06824edf55d0/primes.py">diff</a>
432 <a href="/rev/06824edf55d0">changeset</a>
409 433 </div>
410 434 </td>
411 435 <td class="source"><a href="#l12"> 12</a> <span class="sd">&quot;&quot;&quot;Generate all primes.&quot;&quot;&quot;</span></td>
412 436 </tr>
413 437 <tr id="l13" class="thisrev">
414 438 <td class="annotate">
415 439
416 440 <div class="annotate-info">
417 441 <div>06824edf55d0: a</div>
418 442 <div>parents: </div>
443 <a href="/diff/06824edf55d0/primes.py">diff</a>
444 <a href="/rev/06824edf55d0">changeset</a>
419 445 </div>
420 446 </td>
421 447 <td class="source"><a href="#l13"> 13</a> <span class="kn">def</span> <span class="nf">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></td>
422 448 </tr>
423 449 <tr id="l14" class="thisrev">
424 450 <td class="annotate">
425 451
426 452 <div class="annotate-info">
427 453 <div>06824edf55d0: a</div>
428 454 <div>parents: </div>
455 <a href="/diff/06824edf55d0/primes.py">diff</a>
456 <a href="/rev/06824edf55d0">changeset</a>
429 457 </div>
430 458 </td>
431 459 <td class="source"><a href="#l14"> 14</a> <span class="n">p</span> <span class="o">=</span> <span class="n">ns</span><span class="o">.</span><span class="n">next</span><span class="p">()</span></td>
432 460 </tr>
433 461 <tr id="l15" class="thisrev">
434 462 <td class="annotate">
435 463
436 464 <div class="annotate-info">
437 465 <div>06824edf55d0: a</div>
438 466 <div>parents: </div>
467 <a href="/diff/06824edf55d0/primes.py">diff</a>
468 <a href="/rev/06824edf55d0">changeset</a>
439 469 </div>
440 470 </td>
441 471 <td class="source"><a href="#l15"> 15</a> <span class="c"># It is important to yield *here* in order to stop the</span></td>
442 472 </tr>
443 473 <tr id="l16" class="thisrev">
444 474 <td class="annotate">
445 475
446 476 <div class="annotate-info">
447 477 <div>06824edf55d0: a</div>
448 478 <div>parents: </div>
479 <a href="/diff/06824edf55d0/primes.py">diff</a>
480 <a href="/rev/06824edf55d0">changeset</a>
449 481 </div>
450 482 </td>
451 483 <td class="source"><a href="#l16"> 16</a> <span class="c"># infinite recursion.</span></td>
452 484 </tr>
453 485 <tr id="l17" class="thisrev">
454 486 <td class="annotate">
455 487
456 488 <div class="annotate-info">
457 489 <div>06824edf55d0: a</div>
458 490 <div>parents: </div>
491 <a href="/diff/06824edf55d0/primes.py">diff</a>
492 <a href="/rev/06824edf55d0">changeset</a>
459 493 </div>
460 494 </td>
461 495 <td class="source"><a href="#l17"> 17</a> <span class="kn">yield</span> <span class="n">p</span></td>
462 496 </tr>
463 497 <tr id="l18" class="thisrev">
464 498 <td class="annotate">
465 499
466 500 <div class="annotate-info">
467 501 <div>06824edf55d0: a</div>
468 502 <div>parents: </div>
503 <a href="/diff/06824edf55d0/primes.py">diff</a>
504 <a href="/rev/06824edf55d0">changeset</a>
469 505 </div>
470 506 </td>
471 507 <td class="source"><a href="#l18"> 18</a> <span class="n">ns</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">%</span> <span class="n">p</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">ns</span><span class="p">)</span></td>
472 508 </tr>
473 509 <tr id="l19" class="thisrev">
474 510 <td class="annotate">
475 511
476 512 <div class="annotate-info">
477 513 <div>06824edf55d0: a</div>
478 514 <div>parents: </div>
515 <a href="/diff/06824edf55d0/primes.py">diff</a>
516 <a href="/rev/06824edf55d0">changeset</a>
479 517 </div>
480 518 </td>
481 519 <td class="source"><a href="#l19"> 19</a> <span class="kn">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></td>
482 520 </tr>
483 521 <tr id="l20" class="thisrev">
484 522 <td class="annotate">
485 523
486 524 <div class="annotate-info">
487 525 <div>06824edf55d0: a</div>
488 526 <div>parents: </div>
527 <a href="/diff/06824edf55d0/primes.py">diff</a>
528 <a href="/rev/06824edf55d0">changeset</a>
489 529 </div>
490 530 </td>
491 531 <td class="source"><a href="#l20"> 20</a> <span class="kn">yield</span> <span class="n">n</span></td>
492 532 </tr>
493 533 <tr id="l21" class="thisrev">
494 534 <td class="annotate">
495 535
496 536 <div class="annotate-info">
497 537 <div>06824edf55d0: a</div>
498 538 <div>parents: </div>
539 <a href="/diff/06824edf55d0/primes.py">diff</a>
540 <a href="/rev/06824edf55d0">changeset</a>
499 541 </div>
500 542 </td>
501 543 <td class="source"><a href="#l21"> 21</a> </td>
502 544 </tr>
503 545 <tr id="l22" class="thisrev">
504 546 <td class="annotate">
505 547
506 548 <div class="annotate-info">
507 549 <div>06824edf55d0: a</div>
508 550 <div>parents: </div>
551 <a href="/diff/06824edf55d0/primes.py">diff</a>
552 <a href="/rev/06824edf55d0">changeset</a>
509 553 </div>
510 554 </td>
511 555 <td class="source"><a href="#l22"> 22</a> <span class="n">odds</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">i</span><span class="p">:</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">1</span><span class="p">,</span> <span class="n">count</span><span class="p">())</span></td>
512 556 </tr>
513 557 <tr id="l23" class="thisrev">
514 558 <td class="annotate">
515 559
516 560 <div class="annotate-info">
517 561 <div>06824edf55d0: a</div>
518 562 <div>parents: </div>
563 <a href="/diff/06824edf55d0/primes.py">diff</a>
564 <a href="/rev/06824edf55d0">changeset</a>
519 565 </div>
520 566 </td>
521 567 <td class="source"><a href="#l23"> 23</a> <span class="kn">return</span> <span class="n">chain</span><span class="p">([</span><span class="mi">2</span><span class="p">],</span> <span class="n">sieve</span><span class="p">(</span><span class="n">dropwhile</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">&lt;</span> <span class="mi">3</span><span class="p">,</span> <span class="n">odds</span><span class="p">)))</span></td>
522 568 </tr>
523 569 <tr id="l24" class="thisrev">
524 570 <td class="annotate">
525 571
526 572 <div class="annotate-info">
527 573 <div>06824edf55d0: a</div>
528 574 <div>parents: </div>
575 <a href="/diff/06824edf55d0/primes.py">diff</a>
576 <a href="/rev/06824edf55d0">changeset</a>
529 577 </div>
530 578 </td>
531 579 <td class="source"><a href="#l24"> 24</a> </td>
532 580 </tr>
533 581 <tr id="l25" class="thisrev">
534 582 <td class="annotate">
535 583
536 584 <div class="annotate-info">
537 585 <div>06824edf55d0: a</div>
538 586 <div>parents: </div>
587 <a href="/diff/06824edf55d0/primes.py">diff</a>
588 <a href="/rev/06824edf55d0">changeset</a>
539 589 </div>
540 590 </td>
541 591 <td class="source"><a href="#l25"> 25</a> <span class="kn">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&quot;__main__&quot;</span><span class="p">:</span></td>
542 592 </tr>
543 593 <tr id="l26" class="thisrev">
544 594 <td class="annotate">
545 595
546 596 <div class="annotate-info">
547 597 <div>06824edf55d0: a</div>
548 598 <div>parents: </div>
599 <a href="/diff/06824edf55d0/primes.py">diff</a>
600 <a href="/rev/06824edf55d0">changeset</a>
549 601 </div>
550 602 </td>
551 603 <td class="source"><a href="#l26"> 26</a> <span class="kn">import</span> <span class="nn">sys</span></td>
552 604 </tr>
553 605 <tr id="l27" class="thisrev">
554 606 <td class="annotate">
555 607
556 608 <div class="annotate-info">
557 609 <div>06824edf55d0: a</div>
558 610 <div>parents: </div>
611 <a href="/diff/06824edf55d0/primes.py">diff</a>
612 <a href="/rev/06824edf55d0">changeset</a>
559 613 </div>
560 614 </td>
561 615 <td class="source"><a href="#l27"> 27</a> <span class="kn">try</span><span class="p">:</span></td>
562 616 </tr>
563 617 <tr id="l28" class="thisrev">
564 618 <td class="annotate">
565 619
566 620 <div class="annotate-info">
567 621 <div>06824edf55d0: a</div>
568 622 <div>parents: </div>
623 <a href="/diff/06824edf55d0/primes.py">diff</a>
624 <a href="/rev/06824edf55d0">changeset</a>
569 625 </div>
570 626 </td>
571 627 <td class="source"><a href="#l28"> 28</a> <span class="n">n</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span></td>
572 628 </tr>
573 629 <tr id="l29" class="thisrev">
574 630 <td class="annotate">
575 631
576 632 <div class="annotate-info">
577 633 <div>06824edf55d0: a</div>
578 634 <div>parents: </div>
635 <a href="/diff/06824edf55d0/primes.py">diff</a>
636 <a href="/rev/06824edf55d0">changeset</a>
579 637 </div>
580 638 </td>
581 639 <td class="source"><a href="#l29"> 29</a> <span class="kn">except</span> <span class="p">(</span><span class="ne">ValueError</span><span class="p">,</span> <span class="ne">IndexError</span><span class="p">):</span></td>
582 640 </tr>
583 641 <tr id="l30" class="thisrev">
584 642 <td class="annotate">
585 643
586 644 <div class="annotate-info">
587 645 <div>06824edf55d0: a</div>
588 646 <div>parents: </div>
647 <a href="/diff/06824edf55d0/primes.py">diff</a>
648 <a href="/rev/06824edf55d0">changeset</a>
589 649 </div>
590 650 </td>
591 651 <td class="source"><a href="#l30"> 30</a> <span class="n">n</span> <span class="o">=</span> <span class="mi">10</span></td>
592 652 </tr>
593 653 <tr id="l31" class="thisrev">
594 654 <td class="annotate">
595 655
596 656 <div class="annotate-info">
597 657 <div>06824edf55d0: a</div>
598 658 <div>parents: </div>
659 <a href="/diff/06824edf55d0/primes.py">diff</a>
660 <a href="/rev/06824edf55d0">changeset</a>
599 661 </div>
600 662 </td>
601 663 <td class="source"><a href="#l31"> 31</a> <span class="n">p</span> <span class="o">=</span> <span class="n">primes</span><span class="p">()</span></td>
602 664 </tr>
603 665 <tr id="l32" class="thisrev">
604 666 <td class="annotate">
605 667
606 668 <div class="annotate-info">
607 669 <div>06824edf55d0: a</div>
608 670 <div>parents: </div>
671 <a href="/diff/06824edf55d0/primes.py">diff</a>
672 <a href="/rev/06824edf55d0">changeset</a>
609 673 </div>
610 674 </td>
611 675 <td class="source"><a href="#l32"> 32</a> <span class="kn">print</span> <span class="s">&quot;The first </span><span class="si">%d</span><span class="s"> primes: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="nb">list</span><span class="p">(</span><span class="n">islice</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">n</span><span class="p">)))</span></td>
612 676 </tr>
613 677 <tr id="l33" class="thisrev">
614 678 <td class="annotate">
615 679
616 680 <div class="annotate-info">
617 681 <div>06824edf55d0: a</div>
618 682 <div>parents: </div>
683 <a href="/diff/06824edf55d0/primes.py">diff</a>
684 <a href="/rev/06824edf55d0">changeset</a>
619 685 </div>
620 686 </td>
621 687 <td class="source"><a href="#l33"> 33</a> </td>
622 688 </tr>
623 689 </tbody>
624 690 </table>
625 691 </div>
626 692 </div>
627 693 </div>
628 694
629 695 <script type="text/javascript">process_dates()</script>
630 696
631 697
632 698 </body>
633 699 </html>
634 700
635 701
636 702 hgweb fileannotate, raw
637 703
638 704 $ (get-with-headers.py localhost:$HGPORT 'annotate/tip/primes.py?style=raw') \
639 705 > | sed "s/test@//" > a
640 706 $ echo "200 Script output follows" > b
641 707 $ echo "" >> b
642 708 $ echo "" >> b
643 709 $ hg annotate "primes.py" >> b
644 710 $ echo "" >> b
645 711 $ echo "" >> b
646 712 $ echo "" >> b
647 713 $ echo "" >> b
648 714 $ cmp b a || diff -u b a
649 715
650 716 hgweb filerevision, raw
651 717
652 718 $ (get-with-headers.py localhost:$HGPORT 'file/tip/primes.py?style=raw') \
653 719 > > a
654 720 $ echo "200 Script output follows" > b
655 721 $ echo "" >> b
656 722 $ hg cat primes.py >> b
657 723 $ cmp b a || diff -u b a
658 724
659 725 hgweb highlightcss friendly
660 726
661 727 $ get-with-headers.py localhost:$HGPORT 'highlightcss' > out
662 728 $ head -n 4 out
663 729 200 Script output follows
664 730
665 731 /* pygments_style = friendly */
666 732
667 733 $ rm out
668 734
669 735 errors encountered
670 736
671 737 $ cat errors.log
672 738 $ killdaemons.py
673 739
674 740 Change the pygments style
675 741
676 742 $ cat > .hg/hgrc <<EOF
677 743 > [web]
678 744 > pygments_style = fruity
679 745 > EOF
680 746
681 747 hg serve again
682 748
683 749 $ hg serve -p $HGPORT -d -n test --pid-file=hg.pid -A access.log -E errors.log
684 750 $ cat hg.pid >> $DAEMON_PIDS
685 751
686 752 hgweb highlightcss fruity
687 753
688 754 $ get-with-headers.py localhost:$HGPORT 'highlightcss' > out
689 755 $ head -n 4 out
690 756 200 Script output follows
691 757
692 758 /* pygments_style = fruity */
693 759
694 760 $ rm out
695 761
696 762 errors encountered
697 763
698 764 $ cat errors.log
699 765 $ killdaemons.py
700 766
701 767 only highlight C source files
702 768
703 769 $ cat > .hg/hgrc <<EOF
704 770 > [web]
705 771 > highlightfiles = **.c
706 772 > EOF
707 773
708 774 hg serve again
709 775
710 776 $ hg serve -p $HGPORT -d -n test --pid-file=hg.pid -A access.log -E errors.log
711 777 $ cat hg.pid >> $DAEMON_PIDS
712 778
713 779 test that fileset in highlightfiles works and primes.py is not highlighted
714 780
715 781 $ get-with-headers.py localhost:$HGPORT 'file/tip/primes.py' | grep 'id="l11"'
716 782 <span id="l11">def primes():</span><a href="#l11"></a>
717 783
718 784 errors encountered
719 785
720 786 $ cat errors.log
721 787 $ cd ..
722 788 $ hg init eucjp
723 789 $ cd eucjp
724 790 $ $PYTHON -c 'print("\265\376")' >> eucjp.txt # Japanese kanji "Kyo"
725 791 $ hg ci -Ama
726 792 adding eucjp.txt
727 793 $ hgserveget () {
728 794 > killdaemons.py
729 795 > echo % HGENCODING="$1" hg serve
730 796 > HGENCODING="$1" hg serve -p $HGPORT -d -n test --pid-file=hg.pid -E errors.log
731 797 > cat hg.pid >> $DAEMON_PIDS
732 798 >
733 799 > echo % hgweb filerevision, html
734 800 > get-with-headers.py localhost:$HGPORT "file/tip/$2" \
735 801 > | grep '<div class="parity0 source">'
736 802 > echo % errors encountered
737 803 > cat errors.log
738 804 > }
739 805 $ hgserveget euc-jp eucjp.txt
740 806 % HGENCODING=euc-jp hg serve
741 807 % hgweb filerevision, html
742 808 % errors encountered
743 809 $ hgserveget utf-8 eucjp.txt
744 810 % HGENCODING=utf-8 hg serve
745 811 % hgweb filerevision, html
746 812 % errors encountered
747 813 $ hgserveget us-ascii eucjp.txt
748 814 % HGENCODING=us-ascii hg serve
749 815 % hgweb filerevision, html
750 816 % errors encountered
751 817
752 818 We attempt to highlight unknown files by default
753 819
754 820 $ killdaemons.py
755 821
756 822 $ cat > .hg/hgrc << EOF
757 823 > [web]
758 824 > highlightfiles = **
759 825 > EOF
760 826
761 827 $ cat > unknownfile << EOF
762 828 > #!/usr/bin/python
763 829 > def foo():
764 830 > pass
765 831 > EOF
766 832
767 833 $ hg add unknownfile
768 834 $ hg commit -m unknown unknownfile
769 835
770 836 $ hg serve -p $HGPORT -d -n test --pid-file=hg.pid
771 837 $ cat hg.pid >> $DAEMON_PIDS
772 838
773 839 $ get-with-headers.py localhost:$HGPORT 'file/tip/unknownfile' | grep l2
774 840 <span id="l2"><span class="k">def</span> <span class="nf">foo</span><span class="p">():</span></span><a href="#l2"></a>
775 841
776 842 We can prevent Pygments from falling back to a non filename-based
777 843 detection mode
778 844
779 845 $ cat > .hg/hgrc << EOF
780 846 > [web]
781 847 > highlightfiles = **
782 848 > highlightonlymatchfilename = true
783 849 > EOF
784 850
785 851 $ killdaemons.py
786 852 $ hg serve -p $HGPORT -d -n test --pid-file=hg.pid
787 853 $ cat hg.pid >> $DAEMON_PIDS
788 854 $ get-with-headers.py localhost:$HGPORT 'file/tip/unknownfile' | grep l2
789 855 <span id="l2">def foo():</span><a href="#l2"></a>
790 856
791 857 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now