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