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