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