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