##// END OF EJS Templates
paper: make actual changeset entries have backgrounds on /graph...
av6 -
r35547:5afe0ca5 default
parent child Browse files
Show More
@@ -1,94 +1,87
1 1 {header}
2 2 <title>{repo|escape}: revision graph</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}: log" />
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}: log" />
7 7 <!--[if IE]><script type="text/javascript" src="{staticurl|urlescape}excanvas.js"></script><![endif]-->
8 8 </head>
9 9 <body>
10 10
11 11 <div class="container">
12 12 <div class="menu">
13 13 <div class="logo">
14 14 <a href="{logourl}">
15 15 <img src="{staticurl|urlescape}{logoimg}" alt="mercurial" /></a>
16 16 </div>
17 17 <ul>
18 18 <li><a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">log</a></li>
19 19 <li class="active">graph</li>
20 20 <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
21 21 <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
22 22 <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
23 23 </ul>
24 24 <ul>
25 25 <li><a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a></li>
26 26 <li><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
27 27 </ul>
28 28 <ul>
29 29 <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
30 30 </ul>
31 31 <div class="atom-logo">
32 32 <a href="{url|urlescape}atom-log" title="subscribe to atom feed">
33 33 <img class="atom-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="atom feed" />
34 34 </a>
35 35 </div>
36 36 </div>
37 37
38 38 <div class="main">
39 39 <h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
40 40 <h3>graph</h3>
41 41
42 42 {searchform}
43 43
44 44 <div class="navigate">
45 45 <a href="{url|urlescape}graph/{symrev}{lessvars%urlparameter}">less</a>
46 46 <a href="{url|urlescape}graph/{symrev}{morevars%urlparameter}">more</a>
47 47 | rev {rev}: {changenav%navgraph}
48 48 </div>
49 49
50 50 <noscript><p>The revision graph only works with JavaScript-enabled browsers.</p></noscript>
51 51
52 52 <div id="wrapper">
53 <ul id="nodebgs" class="stripes2"></ul>
54 53 <canvas id="graph"></canvas>
55 <ul id="graphnodes">{nodes%graphentry}</ul>
54 <ul id="graphnodes" class="stripes2">{nodes%graphentry}</ul>
56 55 </div>
57 56
58 57 <script type="text/javascript"{if(nonce, ' nonce="{nonce}"')}>
59 58 var data = {jsdata|json};
60 59 var graph = new Graph();
61 60 graph.scale({bg_height});
62
63 graph.vertex = function(x, y, radius, color, parity, cur) \{
64 Graph.prototype.vertex.apply(this, arguments);
65 return ['<li class="bg"></li>', ''];
66 }
67
68 61 graph.render(data);
69 62 </script>
70 63
71 64 <div class="navigate">
72 65 <a href="{url|urlescape}graph/{symrev}{lessvars%urlparameter}">less</a>
73 66 <a href="{url|urlescape}graph/{symrev}{morevars%urlparameter}">more</a>
74 67 | rev {rev}: {changenav%navgraph}
75 68 </div>
76 69
77 70 <script type="text/javascript"{if(nonce, ' nonce="{nonce}"')}>
78 71 ajaxScrollInit(
79 72 '{url|urlescape}graph/%next%{graphvars%urlparameter}',
80 73 '{nextentry%"{node}"}', <!-- NEXTHASH
81 74 function (htmlText, previousVal) \{
82 75 var m = htmlText.match(/'(\w+)', <!-- NEXTHASH/);
83 76 return m ? m[1] : null;
84 77 },
85 78 '#wrapper',
86 79 '<div class="%class%" style="text-align: center;">%text%</div>',
87 80 'graph'
88 81 );
89 82 </script>
90 83
91 84 </div>
92 85 </div>
93 86
94 87 {footer}
@@ -1,7 +1,9
1 1 <li data-node="{node|short}">
2 <div class="fg">
2 3 <span class="desc">
3 4 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a>
4 5 </span>
5 6 {alltags}
6 7 <div class="info"><span class="age">{date|rfc822date}</span>, by {author|person}</div>
8 </div>
7 9 </li>
@@ -1,552 +1,549
1 1 body {
2 2 margin: 0;
3 3 padding: 0;
4 4 background: white;
5 5 color: black;
6 6 font-family: sans-serif;
7 7 }
8 8
9 9 .container {
10 10 padding-left: 115px;
11 11 }
12 12
13 13 .main {
14 14 position: relative;
15 15 background: white;
16 16 padding: 2em 2em 2em 0;
17 17 }
18 18
19 19 #.main {
20 20 width: 98%;
21 21 }
22 22
23 23 .overflow {
24 24 width: 100%;
25 25 overflow: auto;
26 26 }
27 27
28 28 .menu {
29 29 width: 90px;
30 30 margin: 0;
31 31 font-size: 80%;
32 32 text-align: left;
33 33 position: absolute;
34 34 top: 20px;
35 35 left: 20px;
36 36 right: auto;
37 37 }
38 38
39 39 .menu ul {
40 40 list-style: none;
41 41 padding: 0;
42 42 margin: 10px 0 0 0;
43 43 border-left: 2px solid #999;
44 44 }
45 45
46 46 .menu li {
47 47 margin-bottom: 3px;
48 48 padding: 2px 4px;
49 49 background: white;
50 50 color: black;
51 51 font-weight: normal;
52 52 }
53 53
54 54 .menu li.active {
55 55 font-weight: bold;
56 56 }
57 57
58 58 .menu img {
59 59 width: 75px;
60 60 height: 90px;
61 61 border: 0;
62 62 }
63 63
64 64 div.atom-logo {
65 65 margin-top: 10px;
66 66 }
67 67
68 68 .atom-logo img{
69 69 width: 14px;
70 70 height: 14px;
71 71 border: 0;
72 72 }
73 73
74 74 .menu a { color: black; display: block; }
75 75
76 76 .search {
77 77 position: absolute;
78 78 top: .7em;
79 79 right: 2em;
80 80 }
81 81
82 82 form.search div#hint {
83 83 display: none;
84 84 position: absolute;
85 85 top: 40px;
86 86 right: 0px;
87 87 width: 190px;
88 88 padding: 5px;
89 89 background: #ffc;
90 90 font-size: 70%;
91 91 border: 1px solid yellow;
92 92 border-radius: 5px;
93 93 }
94 94
95 95 form.search:hover div#hint { display: block; }
96 96
97 97 a { text-decoration:none; }
98 98 .age { white-space:nowrap; }
99 99 .date { white-space:nowrap; }
100 100 .indexlinks { white-space:nowrap; }
101 101 .parity0,
102 102 .stripes4 > :nth-child(4n+1),
103 103 .stripes2 > :nth-child(2n+1) { background-color: #f0f0f0; }
104 104 .parity1,
105 105 .stripes4 > :nth-child(4n+3),
106 106 .stripes2 > :nth-child(2n+2) { background-color: white; }
107 107 .plusline { color: green; }
108 108 .minusline { color: #dc143c; } /* crimson */
109 109 .atline { color: purple; }
110 110
111 111 .diffstat-table {
112 112 margin-top: 1em;
113 113 }
114 114 .diffstat-file {
115 115 white-space: nowrap;
116 116 font-size: 90%;
117 117 }
118 118 .diffstat-total {
119 119 white-space: nowrap;
120 120 font-size: 90%;
121 121 }
122 122 .diffstat-graph {
123 123 width: 100%;
124 124 }
125 125 .diffstat-add {
126 126 background-color: green;
127 127 float: left;
128 128 }
129 129 .diffstat-remove {
130 130 background-color: red;
131 131 float: left;
132 132 }
133 133
134 134 .navigate {
135 135 text-align: right;
136 136 font-size: 60%;
137 137 margin: 1em 0;
138 138 }
139 139
140 140 .phase {
141 141 color: #999;
142 142 font-size: 70%;
143 143 border-bottom: 1px dotted #999;
144 144 font-weight: normal;
145 145 margin-left: .5em;
146 146 vertical-align: baseline;
147 147 }
148 148
149 149 .obsolete {
150 150 color: #999;
151 151 font-size: 70%;
152 152 border-bottom: 1px dashed #999;
153 153 font-weight: normal;
154 154 margin-left: .5em;
155 155 vertical-align: baseline;
156 156 }
157 157
158 158 .instability {
159 159 color: #000;
160 160 font-size: 70%;
161 161 border-bottom: 1px solid #000;
162 162 font-weight: normal;
163 163 margin-left: .5em;
164 164 vertical-align: baseline;
165 165 }
166 166
167 167 .tag {
168 168 color: #999;
169 169 font-size: 70%;
170 170 font-weight: normal;
171 171 margin-left: .5em;
172 172 vertical-align: baseline;
173 173 }
174 174
175 175 .branchhead {
176 176 color: #000;
177 177 font-size: 80%;
178 178 font-weight: normal;
179 179 margin-left: .5em;
180 180 vertical-align: baseline;
181 181 }
182 182
183 183 ul#graphnodes .branchhead {
184 184 font-size: 75%;
185 185 }
186 186
187 187 .branchname {
188 188 color: #000;
189 189 font-size: 60%;
190 190 font-weight: normal;
191 191 margin-left: .5em;
192 192 vertical-align: baseline;
193 193 }
194 194
195 195 /* Common */
196 196 pre { margin: 0; }
197 197
198 198 h2 { font-size: 120%; border-bottom: 1px solid #999; }
199 199 h2 a { color: #000; }
200 200 h3 {
201 201 margin-top: +.7em;
202 202 font-size: 100%;
203 203 }
204 204
205 205 /* log and tags tables */
206 206 .bigtable {
207 207 border-bottom: 1px solid #999;
208 208 border-collapse: collapse;
209 209 font-size: 90%;
210 210 width: 100%;
211 211 font-weight: normal;
212 212 text-align: left;
213 213 }
214 214
215 215 .bigtable td {
216 216 padding: 1px 4px;
217 217 vertical-align: top;
218 218 }
219 219
220 220 .bigtable th {
221 221 padding: 1px 4px;
222 222 border-bottom: 1px solid #999;
223 223 }
224 224 .bigtable tr { border: none; }
225 225 .bigtable .age { width: 7em; }
226 226 .bigtable .author { width: 15em; }
227 227 .bigtable .description { }
228 228 .bigtable .description .base { font-size: 70%; float: right; line-height: 1.66; }
229 229 .bigtable .node { width: 5em; font-family: monospace;}
230 230 .bigtable .permissions { width: 8em; text-align: left;}
231 231 .bigtable .size { width: 5em; text-align: right; }
232 232 .bigtable .annotate { text-align: right; }
233 233 .bigtable td.annotate { font-size: smaller; }
234 234 .bigtable td.source { font-size: inherit; }
235 235 tr.thisrev a { color:#999999; text-decoration: none; }
236 236 tr.thisrev td.source { color:#009900; }
237 237 td.annotate {
238 238 white-space: nowrap;
239 239 }
240 240 div.annotate-info {
241 241 z-index: 5;
242 242 display: none;
243 243 position: absolute;
244 244 background-color: #FFFFFF;
245 245 border: 1px solid #999;
246 246 text-align: left;
247 247 color: #000000;
248 248 padding: 5px;
249 249 }
250 250 div.annotate-info a { color: #0000FF; }
251 251 td.annotate:hover div.annotate-info { display: inline; }
252 252
253 253 #diffopts-form {
254 254 font-size: smaller;
255 255 color: #424242;
256 256 padding-bottom: 10px;
257 257 display: none;
258 258 }
259 259
260 260 .source, .sourcefirst {
261 261 font-family: monospace;
262 262 white-space: pre;
263 263 padding: 1px 4px;
264 264 font-size: 90%;
265 265 }
266 266 .sourcefirst { border-bottom: 1px solid #999; font-weight: bold; }
267 267 .source a { color: #999; font-size: smaller; font-family: monospace;}
268 268 .bottomline { border-bottom: 1px solid #999; }
269 269
270 270 .sourcelines {
271 271 font-size: 90%;
272 272 position: relative;
273 273 counter-reset: lineno;
274 274 }
275 275
276 276 .wrap > span {
277 277 white-space: pre-wrap;
278 278 }
279 279
280 280 .linewraptoggle {
281 281 float: right;
282 282 }
283 283
284 284 .diffblocks { counter-reset: lineno; }
285 285 .diffblocks > div { counter-increment: lineno; }
286 286
287 287 .sourcelines > span {
288 288 display: inline-block;
289 289 box-sizing: border-box;
290 290 width: 100%;
291 291 padding: 1px 0px 1px 5em;
292 292 counter-increment: lineno;
293 293 }
294 294
295 295 .sourcelines > span:before {
296 296 -moz-user-select: -moz-none;
297 297 -khtml-user-select: none;
298 298 -webkit-user-select: none;
299 299 -ms-user-select: none;
300 300 user-select: none;
301 301 display: inline-block;
302 302 margin-left: -6em;
303 303 width: 4em;
304 304 font-size: smaller;
305 305 color: #999;
306 306 text-align: right;
307 307 content: counters(lineno, ".");
308 308 float: left;
309 309 }
310 310
311 311 .sourcelines > span:target, tr:target td {
312 312 background-color: #bfdfff;
313 313 }
314 314
315 315 /* Followlines */
316 316 tbody.sourcelines > tr.followlines-selected,
317 317 pre.sourcelines > span.followlines-selected {
318 318 background-color: #99C7E9;
319 319 }
320 320
321 321 div#followlines {
322 322 background-color: #FFF;
323 323 border: 1px solid #999;
324 324 padding: 5px;
325 325 position: fixed;
326 326 }
327 327
328 328 div.followlines-cancel {
329 329 text-align: right;
330 330 }
331 331
332 332 div.followlines-cancel > button {
333 333 line-height: 80%;
334 334 padding: 0;
335 335 border: 0;
336 336 border-radius: 2px;
337 337 background-color: inherit;
338 338 font-weight: bold;
339 339 }
340 340
341 341 div.followlines-cancel > button:hover {
342 342 color: #FFFFFF;
343 343 background-color: #CF1F1F;
344 344 }
345 345
346 346 div.followlines-link {
347 347 margin: 2px;
348 348 margin-top: 4px;
349 349 font-family: sans-serif;
350 350 }
351 351
352 352 .btn-followlines {
353 353 display: none;
354 354 cursor: pointer;
355 355 box-sizing: content-box;
356 356 font-size: 12px;
357 357 width: 13px;
358 358 height: 13px;
359 359 border-radius: 3px;
360 360 margin: 0px;
361 361 margin-top: -2px;
362 362 padding: 0px;
363 363 background-color: #E5FDE5;
364 364 border: 1px solid #9BC19B;
365 365 font-family: monospace;
366 366 text-align: center;
367 367 line-height: 5px;
368 368 }
369 369
370 370 tr .btn-followlines {
371 371 position: absolute;
372 372 }
373 373
374 374 span .btn-followlines {
375 375 float: left;
376 376 }
377 377
378 378 span.followlines-select .btn-followlines {
379 379 margin-left: -1.5em;
380 380 }
381 381
382 382 .btn-followlines:hover {
383 383 transform: scale(1.2, 1.2);
384 384 }
385 385
386 386 .btn-followlines .followlines-plus {
387 387 color: green;
388 388 }
389 389
390 390 .btn-followlines .followlines-minus {
391 391 color: red;
392 392 }
393 393
394 394 .btn-followlines-end {
395 395 background-color: #ffdcdc;
396 396 }
397 397
398 398 .sourcelines tr:hover .btn-followlines,
399 399 .sourcelines span.followlines-select:hover > .btn-followlines {
400 400 display: inline;
401 401 }
402 402
403 403 .btn-followlines-hidden,
404 404 .sourcelines tr:hover .btn-followlines-hidden {
405 405 display: none;
406 406 }
407 407
408 408 .sourcelines > a {
409 409 display: inline-block;
410 410 position: absolute;
411 411 left: 0px;
412 412 width: 4em;
413 413 height: 1em;
414 414 }
415 415
416 416 .fileline { font-family: monospace; }
417 417 .fileline img { border: 0; }
418 418
419 419 .tagEntry .closed { color: #99f; }
420 420
421 421 /* Changeset entry */
422 422 #changesetEntry {
423 423 border-collapse: collapse;
424 424 font-size: 90%;
425 425 width: 100%;
426 426 margin-bottom: 1em;
427 427 }
428 428
429 429 #changesetEntry th {
430 430 padding: 1px 4px;
431 431 width: 4em;
432 432 text-align: right;
433 433 font-weight: normal;
434 434 color: #999;
435 435 vertical-align: top;
436 436 }
437 437
438 438 div.description {
439 439 border-left: 2px solid #999;
440 440 margin: 1em 0 1em 0;
441 441 padding: .3em;
442 442 white-space: pre;
443 443 font-family: monospace;
444 444 }
445 445
446 446 /* Graph */
447 447 div#wrapper {
448 448 position: relative;
449 449 border-top: 1px solid black;
450 450 border-bottom: 1px solid black;
451 451 margin: 0;
452 452 padding: 0;
453 453 }
454 454
455 455 canvas {
456 456 position: absolute;
457 457 z-index: 5;
458 458 top: -0.7em;
459 459 margin: 0;
460 460 }
461 461
462 462 ul#graphnodes {
463 position: absolute;
464 z-index: 10;
465 top: -1.0em;
466 list-style: none inside none;
467 padding: 0;
468 }
469
470 ul#nodebgs {
471 463 list-style: none inside none;
472 464 padding: 0;
473 465 margin: 0;
474 top: -0.7em;
475 466 }
476 467
477 ul#graphnodes li, ul#nodebgs li {
468 ul#graphnodes li {
478 469 height: 39px;
470 overflow: visible;
471 }
472
473 ul#graphnodes li .fg {
474 position: absolute;
475 z-index: 10;
479 476 }
480 477
481 478 ul#graphnodes li .info {
482 479 font-size: 70%;
483 480 }
484 481
485 482 /* Comparison */
486 483 .legend {
487 484 padding: 1.5% 0 1.5% 0;
488 485 }
489 486
490 487 .legendinfo {
491 488 border: 1px solid #999;
492 489 font-size: 80%;
493 490 text-align: center;
494 491 padding: 0.5%;
495 492 }
496 493
497 494 .equal {
498 495 background-color: #ffffff;
499 496 }
500 497
501 498 .delete {
502 499 background-color: #faa;
503 500 color: #333;
504 501 }
505 502
506 503 .insert {
507 504 background-color: #ffa;
508 505 }
509 506
510 507 .replace {
511 508 background-color: #e8e8e8;
512 509 }
513 510
514 511 .header {
515 512 text-align: center;
516 513 }
517 514
518 515 .block {
519 516 border-top: 1px solid #999;
520 517 }
521 518
522 519 .breadcrumb {
523 520 color: gray;
524 521 }
525 522
526 523 .breadcrumb a {
527 524 color: blue;
528 525 }
529 526
530 527 .scroll-loading {
531 528 -webkit-animation: change_color 1s linear 0s infinite alternate;
532 529 -moz-animation: change_color 1s linear 0s infinite alternate;
533 530 -o-animation: change_color 1s linear 0s infinite alternate;
534 531 animation: change_color 1s linear 0s infinite alternate;
535 532 }
536 533
537 534 @-webkit-keyframes change_color {
538 535 from { background-color: #A0CEFF; } to { }
539 536 }
540 537 @-moz-keyframes change_color {
541 538 from { background-color: #A0CEFF; } to { }
542 539 }
543 540 @-o-keyframes change_color {
544 541 from { background-color: #A0CEFF; } to { }
545 542 }
546 543 @keyframes change_color {
547 544 from { background-color: #A0CEFF; } to { }
548 545 }
549 546
550 547 .scroll-loading-error {
551 548 background-color: #FFCCCC !important;
552 549 }
@@ -1,440 +1,433
1 1 #require serve
2 2
3 3 Some tests for hgweb in an empty repository
4 4
5 5 $ hg init test
6 6 $ cd test
7 7 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
8 8 $ cat hg.pid >> $DAEMON_PIDS
9 9 $ (get-with-headers.py localhost:$HGPORT 'shortlog')
10 10 200 Script output follows
11 11
12 12 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
13 13 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
14 14 <head>
15 15 <link rel="icon" href="/static/hgicon.png" type="image/png" />
16 16 <meta name="robots" content="index, nofollow" />
17 17 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
18 18 <script type="text/javascript" src="/static/mercurial.js"></script>
19 19
20 20 <title>test: log</title>
21 21 <link rel="alternate" type="application/atom+xml"
22 22 href="/atom-log" title="Atom feed for test" />
23 23 <link rel="alternate" type="application/rss+xml"
24 24 href="/rss-log" title="RSS feed for test" />
25 25 </head>
26 26 <body>
27 27
28 28 <div class="container">
29 29 <div class="menu">
30 30 <div class="logo">
31 31 <a href="https://mercurial-scm.org/">
32 32 <img src="/static/hglogo.png" alt="mercurial" /></a>
33 33 </div>
34 34 <ul>
35 35 <li class="active">log</li>
36 36 <li><a href="/graph/tip">graph</a></li>
37 37 <li><a href="/tags">tags</a></li>
38 38 <li><a href="/bookmarks">bookmarks</a></li>
39 39 <li><a href="/branches">branches</a></li>
40 40 </ul>
41 41 <ul>
42 42 <li><a href="/rev/tip">changeset</a></li>
43 43 <li><a href="/file/tip">browse</a></li>
44 44 </ul>
45 45 <ul>
46 46
47 47 </ul>
48 48 <ul>
49 49 <li><a href="/help">help</a></li>
50 50 </ul>
51 51 <div class="atom-logo">
52 52 <a href="/atom-log" title="subscribe to atom feed">
53 53 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="atom feed" />
54 54 </a>
55 55 </div>
56 56 </div>
57 57
58 58 <div class="main">
59 59 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
60 60 <h3>log</h3>
61 61
62 62
63 63 <form class="search" action="/log">
64 64
65 65 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
66 66 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
67 67 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
68 68 </form>
69 69
70 70 <div class="navigate">
71 71 <a href="/shortlog/tip?revcount=30">less</a>
72 72 <a href="/shortlog/tip?revcount=120">more</a>
73 73 | rev -1:
74 74 </div>
75 75
76 76 <table class="bigtable">
77 77 <thead>
78 78 <tr>
79 79 <th class="age">age</th>
80 80 <th class="author">author</th>
81 81 <th class="description">description</th>
82 82 </tr>
83 83 </thead>
84 84 <tbody class="stripes2">
85 85
86 86 </tbody>
87 87 </table>
88 88
89 89 <div class="navigate">
90 90 <a href="/shortlog/tip?revcount=30">less</a>
91 91 <a href="/shortlog/tip?revcount=120">more</a>
92 92 | rev -1:
93 93 </div>
94 94
95 95 <script type="text/javascript">
96 96 ajaxScrollInit(
97 97 '/shortlog/%next%',
98 98 '', <!-- NEXTHASH
99 99 function (htmlText, previousVal) {
100 100 var m = htmlText.match(/'(\w+)', <!-- NEXTHASH/);
101 101 return m ? m[1] : null;
102 102 },
103 103 '.bigtable > tbody',
104 104 '<tr class="%class%">\
105 105 <td colspan="3" style="text-align: center;">%text%</td>\
106 106 </tr>'
107 107 );
108 108 </script>
109 109
110 110 </div>
111 111 </div>
112 112
113 113
114 114
115 115 </body>
116 116 </html>
117 117
118 118 $ echo babar
119 119 babar
120 120 $ (get-with-headers.py localhost:$HGPORT 'log')
121 121 200 Script output follows
122 122
123 123 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
124 124 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
125 125 <head>
126 126 <link rel="icon" href="/static/hgicon.png" type="image/png" />
127 127 <meta name="robots" content="index, nofollow" />
128 128 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
129 129 <script type="text/javascript" src="/static/mercurial.js"></script>
130 130
131 131 <title>test: log</title>
132 132 <link rel="alternate" type="application/atom+xml"
133 133 href="/atom-log" title="Atom feed for test" />
134 134 <link rel="alternate" type="application/rss+xml"
135 135 href="/rss-log" title="RSS feed for test" />
136 136 </head>
137 137 <body>
138 138
139 139 <div class="container">
140 140 <div class="menu">
141 141 <div class="logo">
142 142 <a href="https://mercurial-scm.org/">
143 143 <img src="/static/hglogo.png" alt="mercurial" /></a>
144 144 </div>
145 145 <ul>
146 146 <li class="active">log</li>
147 147 <li><a href="/graph/tip">graph</a></li>
148 148 <li><a href="/tags">tags</a></li>
149 149 <li><a href="/bookmarks">bookmarks</a></li>
150 150 <li><a href="/branches">branches</a></li>
151 151 </ul>
152 152 <ul>
153 153 <li><a href="/rev/tip">changeset</a></li>
154 154 <li><a href="/file/tip">browse</a></li>
155 155 </ul>
156 156 <ul>
157 157
158 158 </ul>
159 159 <ul>
160 160 <li><a href="/help">help</a></li>
161 161 </ul>
162 162 <div class="atom-logo">
163 163 <a href="/atom-log" title="subscribe to atom feed">
164 164 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="atom feed" />
165 165 </a>
166 166 </div>
167 167 </div>
168 168
169 169 <div class="main">
170 170 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
171 171 <h3>log</h3>
172 172
173 173
174 174 <form class="search" action="/log">
175 175
176 176 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
177 177 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
178 178 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
179 179 </form>
180 180
181 181 <div class="navigate">
182 182 <a href="/shortlog/tip?revcount=5">less</a>
183 183 <a href="/shortlog/tip?revcount=20">more</a>
184 184 | rev -1:
185 185 </div>
186 186
187 187 <table class="bigtable">
188 188 <thead>
189 189 <tr>
190 190 <th class="age">age</th>
191 191 <th class="author">author</th>
192 192 <th class="description">description</th>
193 193 </tr>
194 194 </thead>
195 195 <tbody class="stripes2">
196 196
197 197 </tbody>
198 198 </table>
199 199
200 200 <div class="navigate">
201 201 <a href="/shortlog/tip?revcount=5">less</a>
202 202 <a href="/shortlog/tip?revcount=20">more</a>
203 203 | rev -1:
204 204 </div>
205 205
206 206 <script type="text/javascript">
207 207 ajaxScrollInit(
208 208 '/shortlog/%next%',
209 209 '', <!-- NEXTHASH
210 210 function (htmlText, previousVal) {
211 211 var m = htmlText.match(/'(\w+)', <!-- NEXTHASH/);
212 212 return m ? m[1] : null;
213 213 },
214 214 '.bigtable > tbody',
215 215 '<tr class="%class%">\
216 216 <td colspan="3" style="text-align: center;">%text%</td>\
217 217 </tr>'
218 218 );
219 219 </script>
220 220
221 221 </div>
222 222 </div>
223 223
224 224
225 225
226 226 </body>
227 227 </html>
228 228
229 229 $ (get-with-headers.py localhost:$HGPORT 'graph')
230 230 200 Script output follows
231 231
232 232 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
233 233 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
234 234 <head>
235 235 <link rel="icon" href="/static/hgicon.png" type="image/png" />
236 236 <meta name="robots" content="index, nofollow" />
237 237 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
238 238 <script type="text/javascript" src="/static/mercurial.js"></script>
239 239
240 240 <title>test: revision graph</title>
241 241 <link rel="alternate" type="application/atom+xml"
242 242 href="/atom-log" title="Atom feed for test: log" />
243 243 <link rel="alternate" type="application/rss+xml"
244 244 href="/rss-log" title="RSS feed for test: log" />
245 245 <!--[if IE]><script type="text/javascript" src="/static/excanvas.js"></script><![endif]-->
246 246 </head>
247 247 <body>
248 248
249 249 <div class="container">
250 250 <div class="menu">
251 251 <div class="logo">
252 252 <a href="https://mercurial-scm.org/">
253 253 <img src="/static/hglogo.png" alt="mercurial" /></a>
254 254 </div>
255 255 <ul>
256 256 <li><a href="/shortlog/tip">log</a></li>
257 257 <li class="active">graph</li>
258 258 <li><a href="/tags">tags</a></li>
259 259 <li><a href="/bookmarks">bookmarks</a></li>
260 260 <li><a href="/branches">branches</a></li>
261 261 </ul>
262 262 <ul>
263 263 <li><a href="/rev/tip">changeset</a></li>
264 264 <li><a href="/file/tip">browse</a></li>
265 265 </ul>
266 266 <ul>
267 267 <li><a href="/help">help</a></li>
268 268 </ul>
269 269 <div class="atom-logo">
270 270 <a href="/atom-log" title="subscribe to atom feed">
271 271 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="atom feed" />
272 272 </a>
273 273 </div>
274 274 </div>
275 275
276 276 <div class="main">
277 277 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
278 278 <h3>graph</h3>
279 279
280 280
281 281 <form class="search" action="/log">
282 282
283 283 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
284 284 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
285 285 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
286 286 </form>
287 287
288 288 <div class="navigate">
289 289 <a href="/graph/tip?revcount=30">less</a>
290 290 <a href="/graph/tip?revcount=120">more</a>
291 291 | rev -1:
292 292 </div>
293 293
294 294 <noscript><p>The revision graph only works with JavaScript-enabled browsers.</p></noscript>
295 295
296 296 <div id="wrapper">
297 <ul id="nodebgs" class="stripes2"></ul>
298 297 <canvas id="graph"></canvas>
299 <ul id="graphnodes"></ul>
298 <ul id="graphnodes" class="stripes2"></ul>
300 299 </div>
301 300
302 301 <script type="text/javascript">
303 302 var data = [];
304 303 var graph = new Graph();
305 304 graph.scale(39);
306
307 graph.vertex = function(x, y, radius, color, parity, cur) {
308 Graph.prototype.vertex.apply(this, arguments);
309 return ['<li class="bg"></li>', ''];
310 }
311
312 305 graph.render(data);
313 306 </script>
314 307
315 308 <div class="navigate">
316 309 <a href="/graph/tip?revcount=30">less</a>
317 310 <a href="/graph/tip?revcount=120">more</a>
318 311 | rev -1:
319 312 </div>
320 313
321 314 <script type="text/javascript">
322 315 ajaxScrollInit(
323 316 '/graph/%next%?graphtop=0000000000000000000000000000000000000000',
324 317 '', <!-- NEXTHASH
325 318 function (htmlText, previousVal) {
326 319 var m = htmlText.match(/'(\w+)', <!-- NEXTHASH/);
327 320 return m ? m[1] : null;
328 321 },
329 322 '#wrapper',
330 323 '<div class="%class%" style="text-align: center;">%text%</div>',
331 324 'graph'
332 325 );
333 326 </script>
334 327
335 328 </div>
336 329 </div>
337 330
338 331
339 332
340 333 </body>
341 334 </html>
342 335
343 336 $ (get-with-headers.py localhost:$HGPORT 'file')
344 337 200 Script output follows
345 338
346 339 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
347 340 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
348 341 <head>
349 342 <link rel="icon" href="/static/hgicon.png" type="image/png" />
350 343 <meta name="robots" content="index, nofollow" />
351 344 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
352 345 <script type="text/javascript" src="/static/mercurial.js"></script>
353 346
354 347 <title>test: 000000000000 /</title>
355 348 </head>
356 349 <body>
357 350
358 351 <div class="container">
359 352 <div class="menu">
360 353 <div class="logo">
361 354 <a href="https://mercurial-scm.org/">
362 355 <img src="/static/hglogo.png" alt="mercurial" /></a>
363 356 </div>
364 357 <ul>
365 358 <li><a href="/shortlog/tip">log</a></li>
366 359 <li><a href="/graph/tip">graph</a></li>
367 360 <li><a href="/tags">tags</a></li>
368 361 <li><a href="/bookmarks">bookmarks</a></li>
369 362 <li><a href="/branches">branches</a></li>
370 363 </ul>
371 364 <ul>
372 365 <li><a href="/rev/tip">changeset</a></li>
373 366 <li class="active">browse</li>
374 367 </ul>
375 368 <ul>
376 369
377 370 </ul>
378 371 <ul>
379 372 <li><a href="/help">help</a></li>
380 373 </ul>
381 374 </div>
382 375
383 376 <div class="main">
384 377 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
385 378 <h3>
386 379 directory / @ -1:<a href="/rev/000000000000">000000000000</a>
387 380 <span class="tag">tip</span>
388 381 </h3>
389 382
390 383
391 384 <form class="search" action="/log">
392 385
393 386 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
394 387 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
395 388 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
396 389 </form>
397 390
398 391 <table class="bigtable">
399 392 <thead>
400 393 <tr>
401 394 <th class="name">name</th>
402 395 <th class="size">size</th>
403 396 <th class="permissions">permissions</th>
404 397 </tr>
405 398 </thead>
406 399 <tbody class="stripes2">
407 400 <tr class="fileline">
408 401 <td class="name"><a href="/file/tip/">[up]</a></td>
409 402 <td class="size"></td>
410 403 <td class="permissions">drwxr-xr-x</td>
411 404 </tr>
412 405
413 406
414 407 </tbody>
415 408 </table>
416 409 </div>
417 410 </div>
418 411
419 412
420 413 </body>
421 414 </html>
422 415
423 416
424 417 $ (get-with-headers.py localhost:$HGPORT 'atom-bookmarks')
425 418 200 Script output follows
426 419
427 420 <?xml version="1.0" encoding="ascii"?>
428 421 <feed xmlns="http://www.w3.org/2005/Atom">
429 422 <id>http://*:$HGPORT/</id> (glob)
430 423 <link rel="self" href="http://*:$HGPORT/atom-bookmarks"/> (glob)
431 424 <link rel="alternate" href="http://*:$HGPORT/bookmarks"/> (glob)
432 425 <title>test: bookmarks</title>
433 426 <summary>test bookmark history</summary>
434 427 <author><name>Mercurial SCM</name></author>
435 428 <updated>1970-01-01T00:00:00+00:00</updated>
436 429
437 430
438 431 </feed>
439 432
440 433 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now