##// END OF EJS Templates
hgweb: add a link on node id in annotate hover-box...
Denis Laxalde -
r29525:d8f2c718 default
parent child Browse files
Show More
@@ -1,342 +1,346
1 default = 'summary'
1 default = 'summary'
2 mimetype = 'text/html; charset={encoding}'
2 mimetype = 'text/html; charset={encoding}'
3 header = header.tmpl
3 header = header.tmpl
4 footer = footer.tmpl
4 footer = footer.tmpl
5 search = search.tmpl
5 search = search.tmpl
6 changelog = changelog.tmpl
6 changelog = changelog.tmpl
7 summary = summary.tmpl
7 summary = summary.tmpl
8 error = error.tmpl
8 error = error.tmpl
9 notfound = notfound.tmpl
9 notfound = notfound.tmpl
10
10
11 help = help.tmpl
11 help = help.tmpl
12 helptopics = helptopics.tmpl
12 helptopics = helptopics.tmpl
13
13
14 helpentry = '
14 helpentry = '
15 <tr><td>
15 <tr><td>
16 <a href="{url|urlescape}help/{topic|escape}{sessionvars%urlparameter}">
16 <a href="{url|urlescape}help/{topic|escape}{sessionvars%urlparameter}">
17 {if(basename, '{basename|escape}', '{topic|escape}')}
17 {if(basename, '{basename|escape}', '{topic|escape}')}
18 </a>
18 </a>
19 </td><td>
19 </td><td>
20 {summary|escape}
20 {summary|escape}
21 </td></tr>'
21 </td></tr>'
22
22
23 naventry = '<a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
23 naventry = '<a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
24 navshortentry = '<a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
24 navshortentry = '<a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
25 navgraphentry = '<a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
25 navgraphentry = '<a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
26 filenaventry = '<a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
26 filenaventry = '<a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
27 filedifflink = '<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
27 filedifflink = '<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
28 filenodelink = '
28 filenodelink = '
29 <tr class="parity{parity}">
29 <tr class="parity{parity}">
30 <td><a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
30 <td><a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
31 <td></td>
31 <td></td>
32 <td class="link">
32 <td class="link">
33 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
33 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
34 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
34 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
35 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
35 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
36 <a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
36 <a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
37 <a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
37 <a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
38 </td>
38 </td>
39 </tr>'
39 </tr>'
40 filenolink = '
40 filenolink = '
41 <tr class="parity{parity}">
41 <tr class="parity{parity}">
42 <td><a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
42 <td><a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
43 <td></td>
43 <td></td>
44 <td class="link">
44 <td class="link">
45 file |
45 file |
46 annotate |
46 annotate |
47 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
47 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
48 <a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
48 <a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
49 <a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
49 <a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
50 </td>
50 </td>
51 </tr>'
51 </tr>'
52
52
53 nav = '{before%naventry} {after%naventry}'
53 nav = '{before%naventry} {after%naventry}'
54 navshort = '{before%navshortentry}{after%navshortentry}'
54 navshort = '{before%navshortentry}{after%navshortentry}'
55 navgraph = '{before%navgraphentry}{after%navgraphentry}'
55 navgraph = '{before%navgraphentry}{after%navgraphentry}'
56 filenav = '{before%filenaventry}{after%filenaventry}'
56 filenav = '{before%filenaventry}{after%filenaventry}'
57
57
58 fileellipses = '...'
58 fileellipses = '...'
59 changelogentry = changelogentry.tmpl
59 changelogentry = changelogentry.tmpl
60 searchentry = changelogentry.tmpl
60 searchentry = changelogentry.tmpl
61 changeset = changeset.tmpl
61 changeset = changeset.tmpl
62 manifest = manifest.tmpl
62 manifest = manifest.tmpl
63 direntry = '
63 direntry = '
64 <tr class="parity{parity}">
64 <tr class="parity{parity}">
65 <td style="font-family:monospace">drwxr-xr-x</td>
65 <td style="font-family:monospace">drwxr-xr-x</td>
66 <td style="font-family:monospace"></td>
66 <td style="font-family:monospace"></td>
67 <td style="font-family:monospace"></td>
67 <td style="font-family:monospace"></td>
68 <td>
68 <td>
69 <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
69 <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
70 <a href="{url|urlescape}file/{symrev}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">{emptydirs|escape}</a>
70 <a href="{url|urlescape}file/{symrev}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">{emptydirs|escape}</a>
71 </td>
71 </td>
72 <td class="link">
72 <td class="link">
73 <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a>
73 <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a>
74 </td>
74 </td>
75 </tr>'
75 </tr>'
76 fileentry = '
76 fileentry = '
77 <tr class="parity{parity}">
77 <tr class="parity{parity}">
78 <td style="font-family:monospace">{permissions|permissions}</td>
78 <td style="font-family:monospace">{permissions|permissions}</td>
79 <td style="font-family:monospace" align=right>{date|isodate}</td>
79 <td style="font-family:monospace" align=right>{date|isodate}</td>
80 <td style="font-family:monospace" align=right>{size}</td>
80 <td style="font-family:monospace" align=right>{size}</td>
81 <td class="list">
81 <td class="list">
82 <a class="list" href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
82 <a class="list" href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
83 </td>
83 </td>
84 <td class="link">
84 <td class="link">
85 <a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
85 <a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
86 <a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
86 <a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
87 <a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
87 <a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
88 </td>
88 </td>
89 </tr>'
89 </tr>'
90 filerevision = filerevision.tmpl
90 filerevision = filerevision.tmpl
91 fileannotate = fileannotate.tmpl
91 fileannotate = fileannotate.tmpl
92 filediff = filediff.tmpl
92 filediff = filediff.tmpl
93 filecomparison = filecomparison.tmpl
93 filecomparison = filecomparison.tmpl
94 filelog = filelog.tmpl
94 filelog = filelog.tmpl
95 fileline = '
95 fileline = '
96 <a href="#{lineid}"></a><span id="{lineid}">{strip(line|escape, '\r\n')}</span>'
96 <a href="#{lineid}"></a><span id="{lineid}">{strip(line|escape, '\r\n')}</span>'
97 annotateline = '
97 annotateline = '
98 <tr id="{lineid}" style="font-family:monospace" class="parity{parity}{ifeq(node, originalnode, ' thisrev')}">
98 <tr id="{lineid}" style="font-family:monospace" class="parity{parity}{ifeq(node, originalnode, ' thisrev')}">
99 <td class="annotate linenr" style="text-align: right;">
99 <td class="annotate linenr" style="text-align: right;">
100 {if(blockhead,
100 {if(blockhead,
101 '<a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
101 '<a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
102 {rev}
102 {rev}
103 </a>')}
103 </a>')}
104 <div class="annotate-info">
104 <div class="annotate-info">
105 <div>{node|short}: {desc|escape|firstline}</div>
105 <div>
106 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
107 {node|short}</a>
108 {desc|escape|firstline}
109 </div>
106 <div><em>{author|obfuscate}</em></div>
110 <div><em>{author|obfuscate}</em></div>
107 <div>parents: {parents%annotateparent}</div>
111 <div>parents: {parents%annotateparent}</div>
108 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>
112 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>
109 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a>
113 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a>
110 </div>
114 </div>
111 </td>
115 </td>
112 <td><pre><a class="linenr" href="#{lineid}">{linenumber}</a></pre></td>
116 <td><pre><a class="linenr" href="#{lineid}">{linenumber}</a></pre></td>
113 <td><pre>{line|escape}</pre></td>
117 <td><pre>{line|escape}</pre></td>
114 </tr>'
118 </tr>'
115 annotateparent = '
119 annotateparent = '
116 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rev}</a>'
120 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rev}</a>'
117 difflineplus = '
121 difflineplus = '
118 <a href="#{lineid}"></a><span id="{lineid}" class="difflineplus">{strip(line|escape, '\r\n')}</span>'
122 <a href="#{lineid}"></a><span id="{lineid}" class="difflineplus">{strip(line|escape, '\r\n')}</span>'
119 difflineminus = '
123 difflineminus = '
120 <a href="#{lineid}"></a><span id="{lineid}" class="difflineminus">{strip(line|escape, '\r\n')}</span>'
124 <a href="#{lineid}"></a><span id="{lineid}" class="difflineminus">{strip(line|escape, '\r\n')}</span>'
121 difflineat = '
125 difflineat = '
122 <a href="#{lineid}"></a><span id="{lineid}" class="difflineat">{strip(line|escape, '\r\n')}</span>'
126 <a href="#{lineid}"></a><span id="{lineid}" class="difflineat">{strip(line|escape, '\r\n')}</span>'
123 diffline = '
127 diffline = '
124 <a href="#{lineid}"></a><span id="{lineid}">{strip(line|escape, '\r\n')}</span>'
128 <a href="#{lineid}"></a><span id="{lineid}">{strip(line|escape, '\r\n')}</span>'
125
129
126 comparisonblock ='
130 comparisonblock ='
127 <tbody class="block">
131 <tbody class="block">
128 {lines}
132 {lines}
129 </tbody>'
133 </tbody>'
130 comparisonline = '
134 comparisonline = '
131 <tr id="{lineid}" style="font-family:monospace">
135 <tr id="{lineid}" style="font-family:monospace">
132 <td class="{type}"><pre><a class="linenr" href="#{lineid}">{leftlinenumber}</a> {leftline|escape}</pre></td>
136 <td class="{type}"><pre><a class="linenr" href="#{lineid}">{leftlinenumber}</a> {leftline|escape}</pre></td>
133 <td class="{type}"><pre><a class="linenr" href="#{lineid}">{rightlinenumber}</a> {rightline|escape}</pre></td>
137 <td class="{type}"><pre><a class="linenr" href="#{lineid}">{rightlinenumber}</a> {rightline|escape}</pre></td>
134 </tr>'
138 </tr>'
135
139
136 changelogparent = '
140 changelogparent = '
137 <tr>
141 <tr>
138 <th class="parent">parent {rev}:</th>
142 <th class="parent">parent {rev}:</th>
139 <td class="parent">
143 <td class="parent">
140 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
144 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
141 </td>
145 </td>
142 </tr>'
146 </tr>'
143 changesetlink = '<a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
147 changesetlink = '<a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
144 changesetbranch = '<tr><td>branch</td><td>{name|escape}</td></tr>'
148 changesetbranch = '<tr><td>branch</td><td>{name|escape}</td></tr>'
145 changesetparent = '
149 changesetparent = '
146 <tr>
150 <tr>
147 <td>parent {rev}</td>
151 <td>parent {rev}</td>
148 <td style="font-family:monospace">
152 <td style="font-family:monospace">
149 {changesetlink}
153 {changesetlink}
150 </td>
154 </td>
151 </tr>'
155 </tr>'
152 changesetparentdiff = '
156 changesetparentdiff = '
153 <tr>
157 <tr>
154 <td>parent {rev}</td>
158 <td>parent {rev}</td>
155 <td style="font-family:monospace">
159 <td style="font-family:monospace">
156 {changesetlink} {ifeq(node, basenode, '(current diff)', '({difffrom})')}
160 {changesetlink} {ifeq(node, basenode, '(current diff)', '({difffrom})')}
157 </td>
161 </td>
158 </tr>'
162 </tr>'
159 difffrom = '<a href="{url|urlescape}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">diff</a>'
163 difffrom = '<a href="{url|urlescape}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">diff</a>'
160 filerevbranch = '<tr><td>branch</td><td>{name|escape}</td></tr>'
164 filerevbranch = '<tr><td>branch</td><td>{name|escape}</td></tr>'
161 filerevparent = '
165 filerevparent = '
162 <tr>
166 <tr>
163 <td>parent {rev}</td>
167 <td>parent {rev}</td>
164 <td style="font-family:monospace">
168 <td style="font-family:monospace">
165 <a class="list" href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
169 <a class="list" href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
166 {rename%filerename}{node|short}
170 {rename%filerename}{node|short}
167 </a>
171 </a>
168 </td>
172 </td>
169 </tr>'
173 </tr>'
170 filerename = '{file|escape}@'
174 filerename = '{file|escape}@'
171 filelogrename = '| <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>'
175 filelogrename = '| <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>'
172 fileannotateparent = '
176 fileannotateparent = '
173 <tr>
177 <tr>
174 <td>parent {rev}</td>
178 <td>parent {rev}</td>
175 <td style="font-family:monospace">
179 <td style="font-family:monospace">
176 <a class="list" href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
180 <a class="list" href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
177 {rename%filerename}{node|short}
181 {rename%filerename}{node|short}
178 </a>
182 </a>
179 </td>
183 </td>
180 </tr>'
184 </tr>'
181 changelogchild = '
185 changelogchild = '
182 <tr>
186 <tr>
183 <th class="child">child {rev}:</th>
187 <th class="child">child {rev}:</th>
184 <td class="child"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
188 <td class="child"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
185 </tr>'
189 </tr>'
186 changesetchild = '
190 changesetchild = '
187 <tr>
191 <tr>
188 <td>child {rev}</td>
192 <td>child {rev}</td>
189 <td style="font-family:monospace">
193 <td style="font-family:monospace">
190 <a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
194 <a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
191 </td>
195 </td>
192 </tr>'
196 </tr>'
193 filerevchild = '
197 filerevchild = '
194 <tr>
198 <tr>
195 <td>child {rev}</td>
199 <td>child {rev}</td>
196 <td style="font-family:monospace">
200 <td style="font-family:monospace">
197 <a class="list" href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
201 <a class="list" href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
198 </tr>'
202 </tr>'
199 fileannotatechild = '
203 fileannotatechild = '
200 <tr>
204 <tr>
201 <td>child {rev}</td>
205 <td>child {rev}</td>
202 <td style="font-family:monospace">
206 <td style="font-family:monospace">
203 <a class="list" href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
207 <a class="list" href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
204 </tr>'
208 </tr>'
205 tags = tags.tmpl
209 tags = tags.tmpl
206 tagentry = '
210 tagentry = '
207 <tr class="parity{parity}">
211 <tr class="parity{parity}">
208 <td class="age"><i class="age">{date|rfc822date}</i></td>
212 <td class="age"><i class="age">{date|rfc822date}</i></td>
209 <td><a class="list" href="{url|urlescape}rev/{tag|revescape}{sessionvars%urlparameter}"><b>{tag|escape}</b></a></td>
213 <td><a class="list" href="{url|urlescape}rev/{tag|revescape}{sessionvars%urlparameter}"><b>{tag|escape}</b></a></td>
210 <td class="link">
214 <td class="link">
211 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
215 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
212 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
216 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
213 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
217 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
214 </td>
218 </td>
215 </tr>'
219 </tr>'
216 bookmarks = bookmarks.tmpl
220 bookmarks = bookmarks.tmpl
217 bookmarkentry = '
221 bookmarkentry = '
218 <tr class="parity{parity}">
222 <tr class="parity{parity}">
219 <td class="age"><i class="age">{date|rfc822date}</i></td>
223 <td class="age"><i class="age">{date|rfc822date}</i></td>
220 <td><a class="list" href="{url|urlescape}rev/{bookmark|revescape}{sessionvars%urlparameter}"><b>{bookmark|escape}</b></a></td>
224 <td><a class="list" href="{url|urlescape}rev/{bookmark|revescape}{sessionvars%urlparameter}"><b>{bookmark|escape}</b></a></td>
221 <td class="link">
225 <td class="link">
222 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
226 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
223 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
227 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
224 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
228 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
225 </td>
229 </td>
226 </tr>'
230 </tr>'
227 branches = branches.tmpl
231 branches = branches.tmpl
228 branchentry = '
232 branchentry = '
229 <tr class="parity{parity}">
233 <tr class="parity{parity}">
230 <td class="age"><i class="age">{date|rfc822date}</i></td>
234 <td class="age"><i class="age">{date|rfc822date}</i></td>
231 <td class="{status}"><a class="list" href="{url|urlescape}shortlog/{branch|revescape}{sessionvars%urlparameter}"><b>{branch|escape}</b></a></td>
235 <td class="{status}"><a class="list" href="{url|urlescape}shortlog/{branch|revescape}{sessionvars%urlparameter}"><b>{branch|escape}</b></a></td>
232 <td class="link">
236 <td class="link">
233 <a href="{url|urlescape}changeset/{node|short}{sessionvars%urlparameter}">changeset</a> |
237 <a href="{url|urlescape}changeset/{node|short}{sessionvars%urlparameter}">changeset</a> |
234 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
238 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
235 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
239 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
236 </td>
240 </td>
237 </tr>'
241 </tr>'
238 diffblock = '<div class="diffblock"><pre class="sourcelines">{lines}</pre></div>'
242 diffblock = '<div class="diffblock"><pre class="sourcelines">{lines}</pre></div>'
239 filediffparent = '
243 filediffparent = '
240 <tr>
244 <tr>
241 <td>parent {rev}</td>
245 <td>parent {rev}</td>
242 <td style="font-family:monospace">
246 <td style="font-family:monospace">
243 <a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
247 <a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
244 {node|short}
248 {node|short}
245 </a>
249 </a>
246 </td>
250 </td>
247 </tr>'
251 </tr>'
248 filecompparent = '
252 filecompparent = '
249 <tr>
253 <tr>
250 <td>parent {rev}</td>
254 <td>parent {rev}</td>
251 <td style="font-family:monospace">
255 <td style="font-family:monospace">
252 <a class="list" href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
256 <a class="list" href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
253 {node|short}
257 {node|short}
254 </a>
258 </a>
255 </td>
259 </td>
256 </tr>'
260 </tr>'
257 filelogparent = '
261 filelogparent = '
258 <tr>
262 <tr>
259 <td align="right">parent {rev}:&nbsp;</td>
263 <td align="right">parent {rev}:&nbsp;</td>
260 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
264 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
261 </tr>'
265 </tr>'
262 filediffchild = '
266 filediffchild = '
263 <tr>
267 <tr>
264 <td>child {rev}</td>
268 <td>child {rev}</td>
265 <td style="font-family:monospace">
269 <td style="font-family:monospace">
266 <a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
270 <a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
267 </td>
271 </td>
268 </tr>'
272 </tr>'
269 filecompchild = '
273 filecompchild = '
270 <tr>
274 <tr>
271 <td>child {rev}</td>
275 <td>child {rev}</td>
272 <td style="font-family:monospace">
276 <td style="font-family:monospace">
273 <a class="list" href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
277 <a class="list" href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
274 </td>
278 </td>
275 </tr>'
279 </tr>'
276 filelogchild = '
280 filelogchild = '
277 <tr>
281 <tr>
278 <td align="right">child {rev}:&nbsp;</td>
282 <td align="right">child {rev}:&nbsp;</td>
279 <td><a href="{url|urlescape}file{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
283 <td><a href="{url|urlescape}file{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
280 </tr>'
284 </tr>'
281 shortlog = shortlog.tmpl
285 shortlog = shortlog.tmpl
282 graph = graph.tmpl
286 graph = graph.tmpl
283 tagtag = '<span class="tagtag" title="{name|escape}">{name|escape}</span> '
287 tagtag = '<span class="tagtag" title="{name|escape}">{name|escape}</span> '
284 branchtag = '<span class="branchtag" title="{name|escape}">{name|escape}</span> '
288 branchtag = '<span class="branchtag" title="{name|escape}">{name|escape}</span> '
285 inbranchtag = '<span class="inbranchtag" title="{name|escape}">{name|escape}</span> '
289 inbranchtag = '<span class="inbranchtag" title="{name|escape}">{name|escape}</span> '
286 bookmarktag = '<span class="bookmarktag" title="{name|escape}">{name|escape}</span> '
290 bookmarktag = '<span class="bookmarktag" title="{name|escape}">{name|escape}</span> '
287 shortlogentry = '
291 shortlogentry = '
288 <tr class="parity{parity}">
292 <tr class="parity{parity}">
289 <td class="age"><i class="age">{date|rfc822date}</i></td>
293 <td class="age"><i class="age">{date|rfc822date}</i></td>
290 <td><i>{author|person}</i></td>
294 <td><i>{author|person}</i></td>
291 <td>
295 <td>
292 <a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
296 <a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
293 <b>{desc|strip|firstline|escape|nonempty}</b>
297 <b>{desc|strip|firstline|escape|nonempty}</b>
294 <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>
298 <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>
295 </a>
299 </a>
296 </td>
300 </td>
297 <td class="link" nowrap>
301 <td class="link" nowrap>
298 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
302 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
299 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
303 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
300 </td>
304 </td>
301 </tr>'
305 </tr>'
302 filelogentry = '
306 filelogentry = '
303 <tr class="parity{parity}">
307 <tr class="parity{parity}">
304 <td class="age"><i class="age">{date|rfc822date}</i></td>
308 <td class="age"><i class="age">{date|rfc822date}</i></td>
305 <td><i>{author|person}</i></td>
309 <td><i>{author|person}</i></td>
306 <td>
310 <td>
307 <a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
311 <a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
308 <b>{desc|strip|firstline|escape|nonempty}</b>
312 <b>{desc|strip|firstline|escape|nonempty}</b>
309 <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>
313 <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>
310 </a>
314 </a>
311 </td>
315 </td>
312 <td class="link">
316 <td class="link">
313 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
317 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
314 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
318 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
315 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
319 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
316 {rename%filelogrename}
320 {rename%filelogrename}
317 </td>
321 </td>
318 </tr>'
322 </tr>'
319 archiveentry = ' | <a href="{url|urlescape}archive/{symrev}{extension}{ifeq(path,'/','',path|urlescape)}">{type|escape}</a> '
323 archiveentry = ' | <a href="{url|urlescape}archive/{symrev}{extension}{ifeq(path,'/','',path|urlescape)}">{type|escape}</a> '
320 indexentry = '
324 indexentry = '
321 <tr class="parity{parity}">
325 <tr class="parity{parity}">
322 <td>
326 <td>
323 <a class="list" href="{url|urlescape}{sessionvars%urlparameter}">
327 <a class="list" href="{url|urlescape}{sessionvars%urlparameter}">
324 <b>{name|escape}</b>
328 <b>{name|escape}</b>
325 </a>
329 </a>
326 </td>
330 </td>
327 <td>{description}</td>
331 <td>{description}</td>
328 <td>{contact|obfuscate}</td>
332 <td>{contact|obfuscate}</td>
329 <td class="age">{lastchange|rfc822date}</td>
333 <td class="age">{lastchange|rfc822date}</td>
330 <td class="indexlinks">{archives%indexarchiveentry}</td>
334 <td class="indexlinks">{archives%indexarchiveentry}</td>
331 <td>{if(isdirectory, '',
335 <td>{if(isdirectory, '',
332 '<div class="rss_logo">
336 '<div class="rss_logo">
333 <a href="{url|urlescape}rss-log">RSS</a> <a href="{url|urlescape}atom-log">Atom</a>
337 <a href="{url|urlescape}rss-log">RSS</a> <a href="{url|urlescape}atom-log">Atom</a>
334 </div>'
338 </div>'
335 )}
339 )}
336 </td>
340 </td>
337 </tr>\n'
341 </tr>\n'
338 indexarchiveentry = ' <a href="{url|urlescape}archive/{node|short}{extension}">{type|escape}</a> '
342 indexarchiveentry = ' <a href="{url|urlescape}archive/{node|short}{extension}">{type|escape}</a> '
339 index = index.tmpl
343 index = index.tmpl
340 urlparameter = '{separator}{name}={value|urlescape}'
344 urlparameter = '{separator}{name}={value|urlescape}'
341 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
345 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
342 breadcrumb = '&gt; <a href="{url|urlescape}">{name|escape}</a> '
346 breadcrumb = '&gt; <a href="{url|urlescape}">{name|escape}</a> '
@@ -1,297 +1,301
1 default = 'summary'
1 default = 'summary'
2 mimetype = 'text/html; charset={encoding}'
2 mimetype = 'text/html; charset={encoding}'
3 header = header.tmpl
3 header = header.tmpl
4 footer = footer.tmpl
4 footer = footer.tmpl
5 search = search.tmpl
5 search = search.tmpl
6 changelog = changelog.tmpl
6 changelog = changelog.tmpl
7 summary = summary.tmpl
7 summary = summary.tmpl
8 error = error.tmpl
8 error = error.tmpl
9 notfound = notfound.tmpl
9 notfound = notfound.tmpl
10
10
11 help = help.tmpl
11 help = help.tmpl
12 helptopics = helptopics.tmpl
12 helptopics = helptopics.tmpl
13
13
14 helpentry = '
14 helpentry = '
15 <tr><td>
15 <tr><td>
16 <a href="{url|urlescape}help/{topic|escape}{sessionvars%urlparameter}">
16 <a href="{url|urlescape}help/{topic|escape}{sessionvars%urlparameter}">
17 {if(basename, '{basename|escape}', '{topic|escape}')}
17 {if(basename, '{basename|escape}', '{topic|escape}')}
18 </a>
18 </a>
19 </td><td>
19 </td><td>
20 {summary|escape}
20 {summary|escape}
21 </td></tr>'
21 </td></tr>'
22
22
23 naventry = '<a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
23 naventry = '<a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
24 navshortentry = '<a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
24 navshortentry = '<a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
25 navgraphentry = '<a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
25 navgraphentry = '<a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
26 filenaventry = '<a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
26 filenaventry = '<a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
27 filedifflink = '<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
27 filedifflink = '<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
28 filenodelink = '
28 filenodelink = '
29 <tr class="parity{parity}">
29 <tr class="parity{parity}">
30 <td><a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
30 <td><a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
31 <td></td>
31 <td></td>
32 <td>
32 <td>
33 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
33 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
34 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
34 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
35 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
35 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
36 <a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
36 <a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
37 <a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
37 <a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
38 </td>
38 </td>
39 </tr>'
39 </tr>'
40 filenolink = '
40 filenolink = '
41 <tr class="parity{parity}">
41 <tr class="parity{parity}">
42 <td><a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
42 <td><a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
43 <td></td>
43 <td></td>
44 <td>
44 <td>
45 file |
45 file |
46 annotate |
46 annotate |
47 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
47 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
48 <a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
48 <a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
49 <a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
49 <a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
50 </td>
50 </td>
51 </tr>'
51 </tr>'
52
52
53 nav = '{before%naventry} {after%naventry}'
53 nav = '{before%naventry} {after%naventry}'
54 navshort = '{before%navshortentry}{after%navshortentry}'
54 navshort = '{before%navshortentry}{after%navshortentry}'
55 navgraph = '{before%navgraphentry}{after%navgraphentry}'
55 navgraph = '{before%navgraphentry}{after%navgraphentry}'
56 filenav = '{before%filenaventry}{after%filenaventry}'
56 filenav = '{before%filenaventry}{after%filenaventry}'
57
57
58 fileellipses = '...'
58 fileellipses = '...'
59 changelogentry = changelogentry.tmpl
59 changelogentry = changelogentry.tmpl
60 searchentry = changelogentry.tmpl
60 searchentry = changelogentry.tmpl
61 changeset = changeset.tmpl
61 changeset = changeset.tmpl
62 manifest = manifest.tmpl
62 manifest = manifest.tmpl
63 direntry = '
63 direntry = '
64 <tr class="parity{parity}">
64 <tr class="parity{parity}">
65 <td>drwxr-xr-x</td>
65 <td>drwxr-xr-x</td>
66 <td></td>
66 <td></td>
67 <td></td>
67 <td></td>
68 <td>
68 <td>
69 <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
69 <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
70 <a href="{url|urlescape}file/{symrev}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">{emptydirs|escape}</a>
70 <a href="{url|urlescape}file/{symrev}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">{emptydirs|escape}</a>
71 </td>
71 </td>
72 <td><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a></td>
72 <td><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a></td>
73 </tr>'
73 </tr>'
74 fileentry = '
74 fileentry = '
75 <tr class="parity{parity}">
75 <tr class="parity{parity}">
76 <td>{permissions|permissions}</td>
76 <td>{permissions|permissions}</td>
77 <td>{date|isodate}</td>
77 <td>{date|isodate}</td>
78 <td>{size}</td>
78 <td>{size}</td>
79 <td><a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a></td>
79 <td><a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a></td>
80 <td>
80 <td>
81 <a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
81 <a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
82 <a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
82 <a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
83 <a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
83 <a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
84 </td>
84 </td>
85 </tr>'
85 </tr>'
86 filerevision = filerevision.tmpl
86 filerevision = filerevision.tmpl
87 fileannotate = fileannotate.tmpl
87 fileannotate = fileannotate.tmpl
88 filediff = filediff.tmpl
88 filediff = filediff.tmpl
89 filecomparison = filecomparison.tmpl
89 filecomparison = filecomparison.tmpl
90 filelog = filelog.tmpl
90 filelog = filelog.tmpl
91 fileline = '
91 fileline = '
92 <a href="#{lineid}"></a><span id="{lineid}">{strip(line|escape, '\r\n')}</span>'
92 <a href="#{lineid}"></a><span id="{lineid}">{strip(line|escape, '\r\n')}</span>'
93 annotateline = '
93 annotateline = '
94 <tr id="{lineid}" class="parity{parity}{ifeq(node, originalnode, ' thisrev')}">
94 <tr id="{lineid}" class="parity{parity}{ifeq(node, originalnode, ' thisrev')}">
95 <td class="annotate linenr">
95 <td class="annotate linenr">
96 {if(blockhead,
96 {if(blockhead,
97 '<a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
97 '<a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
98 {rev}
98 {rev}
99 </a>')}
99 </a>')}
100 <div class="annotate-info">
100 <div class="annotate-info">
101 <div>{node|short}: {desc|escape|firstline}</div>
101 <div>
102 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
103 {node|short}</a>
104 {desc|escape|firstline}
105 </div>
102 <div><em>{author|obfuscate}</em></div>
106 <div><em>{author|obfuscate}</em></div>
103 <div>parents: {parents%annotateparent}</div>
107 <div>parents: {parents%annotateparent}</div>
104 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>
108 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>
105 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a>
109 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a>
106 </div>
110 </div>
107 </td>
111 </td>
108 <td class="lineno">
112 <td class="lineno">
109 <a href="#{lineid}">{linenumber}</a>
113 <a href="#{lineid}">{linenumber}</a>
110 </td>
114 </td>
111 <td class="source">{line|escape}</td>
115 <td class="source">{line|escape}</td>
112 </tr>'
116 </tr>'
113 annotateparent = '
117 annotateparent = '
114 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rev}</a>'
118 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rev}</a>'
115 difflineplus = '
119 difflineplus = '
116 <a href="#{lineid}"></a><span id="{lineid}" class="difflineplus">{strip(line|escape, '\r\n')}</span>'
120 <a href="#{lineid}"></a><span id="{lineid}" class="difflineplus">{strip(line|escape, '\r\n')}</span>'
117 difflineminus = '
121 difflineminus = '
118 <a href="#{lineid}"></a><span id="{lineid}" class="difflineminus">{strip(line|escape, '\r\n')}</span>'
122 <a href="#{lineid}"></a><span id="{lineid}" class="difflineminus">{strip(line|escape, '\r\n')}</span>'
119 difflineat = '
123 difflineat = '
120 <a href="#{lineid}"></a><span id="{lineid}" class="difflineat">{strip(line|escape, '\r\n')}</span>'
124 <a href="#{lineid}"></a><span id="{lineid}" class="difflineat">{strip(line|escape, '\r\n')}</span>'
121 diffline = '
125 diffline = '
122 <a href="#{lineid}"></a><span id="{lineid}">{strip(line|escape, '\r\n')}</span>'
126 <a href="#{lineid}"></a><span id="{lineid}">{strip(line|escape, '\r\n')}</span>'
123
127
124 comparisonblock ='
128 comparisonblock ='
125 <tbody class="block">
129 <tbody class="block">
126 {lines}
130 {lines}
127 </tbody>'
131 </tbody>'
128 comparisonline = '
132 comparisonline = '
129 <tr id="{lineid}">
133 <tr id="{lineid}">
130 <td class="source {type}"><a class="linenr" href="#{lineid}">{leftlinenumber}</a> {leftline|escape}</td>
134 <td class="source {type}"><a class="linenr" href="#{lineid}">{leftlinenumber}</a> {leftline|escape}</td>
131 <td class="source {type}"><a class="linenr" href="#{lineid}">{rightlinenumber}</a> {rightline|escape}</td>
135 <td class="source {type}"><a class="linenr" href="#{lineid}">{rightlinenumber}</a> {rightline|escape}</td>
132 </tr>'
136 </tr>'
133
137
134 changesetlink = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
138 changesetlink = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
135 changelogparent = '
139 changelogparent = '
136 <tr>
140 <tr>
137 <th class="parent">parent {rev}:</th>
141 <th class="parent">parent {rev}:</th>
138 <td class="parent">
142 <td class="parent">
139 {changesetlink}
143 {changesetlink}
140 </td>
144 </td>
141 </tr>'
145 </tr>'
142 changesetbranch = '<dt>branch</dt><dd>{name|escape}</dd>'
146 changesetbranch = '<dt>branch</dt><dd>{name|escape}</dd>'
143 changesetparent = '
147 changesetparent = '
144 <dt>parent {rev}</dt>
148 <dt>parent {rev}</dt>
145 <dd>{changesetlink}</dd>'
149 <dd>{changesetlink}</dd>'
146 changesetparentdiff = '
150 changesetparentdiff = '
147 <dt>parent {rev}</dt>
151 <dt>parent {rev}</dt>
148 <dd>{changesetlink} {ifeq(node, basenode, '(current diff)', '({difffrom})')}</dd>'
152 <dd>{changesetlink} {ifeq(node, basenode, '(current diff)', '({difffrom})')}</dd>'
149 difffrom = '<a href="{url|urlescape}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">diff</a>'
153 difffrom = '<a href="{url|urlescape}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">diff</a>'
150 filerevbranch = '<dt>branch</dt><dd>{name|escape}</dd>'
154 filerevbranch = '<dt>branch</dt><dd>{name|escape}</dd>'
151 filerevparent = '
155 filerevparent = '
152 <dt>parent {rev}</dt>
156 <dt>parent {rev}</dt>
153 <dd>
157 <dd>
154 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
158 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
155 {rename%filerename}{node|short}
159 {rename%filerename}{node|short}
156 </a>
160 </a>
157 </dd>'
161 </dd>'
158 filerename = '{file|escape}@'
162 filerename = '{file|escape}@'
159 filelogrename = '| <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>'
163 filelogrename = '| <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>'
160 fileannotateparent = '
164 fileannotateparent = '
161 <dt>parent {rev}</dt>
165 <dt>parent {rev}</dt>
162 <dd>
166 <dd>
163 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
167 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
164 {rename%filerename}{node|short}
168 {rename%filerename}{node|short}
165 </a>
169 </a>
166 </dd>'
170 </dd>'
167 changelogchild = '
171 changelogchild = '
168 <dt>child {rev}:</dt>
172 <dt>child {rev}:</dt>
169 <dd><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>'
173 <dd><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>'
170 changesetchild = '
174 changesetchild = '
171 <dt>child {rev}</dt>
175 <dt>child {rev}</dt>
172 <dd><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>'
176 <dd><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>'
173 filerevchild = '
177 filerevchild = '
174 <dt>child {rev}</dt>
178 <dt>child {rev}</dt>
175 <dd>
179 <dd>
176 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
180 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
177 </dd>'
181 </dd>'
178 fileannotatechild = '
182 fileannotatechild = '
179 <dt>child {rev}</dt>
183 <dt>child {rev}</dt>
180 <dd>
184 <dd>
181 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
185 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
182 </dd>'
186 </dd>'
183 tags = tags.tmpl
187 tags = tags.tmpl
184 tagentry = '
188 tagentry = '
185 <tr class="parity{parity}">
189 <tr class="parity{parity}">
186 <td class="nowrap age">{date|rfc822date}</td>
190 <td class="nowrap age">{date|rfc822date}</td>
187 <td><a href="{url|urlescape}rev/{tag|revescape}{sessionvars%urlparameter}">{tag|escape}</a></td>
191 <td><a href="{url|urlescape}rev/{tag|revescape}{sessionvars%urlparameter}">{tag|escape}</a></td>
188 <td class="nowrap">
192 <td class="nowrap">
189 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
193 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
190 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
194 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
191 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
195 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
192 </td>
196 </td>
193 </tr>'
197 </tr>'
194 bookmarks = bookmarks.tmpl
198 bookmarks = bookmarks.tmpl
195 bookmarkentry = '
199 bookmarkentry = '
196 <tr class="parity{parity}">
200 <tr class="parity{parity}">
197 <td class="nowrap age">{date|rfc822date}</td>
201 <td class="nowrap age">{date|rfc822date}</td>
198 <td><a href="{url|urlescape}rev/{bookmark|revescape}{sessionvars%urlparameter}">{bookmark|escape}</a></td>
202 <td><a href="{url|urlescape}rev/{bookmark|revescape}{sessionvars%urlparameter}">{bookmark|escape}</a></td>
199 <td class="nowrap">
203 <td class="nowrap">
200 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
204 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
201 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
205 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
202 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
206 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
203 </td>
207 </td>
204 </tr>'
208 </tr>'
205 branches = branches.tmpl
209 branches = branches.tmpl
206 branchentry = '
210 branchentry = '
207 <tr class="parity{parity}">
211 <tr class="parity{parity}">
208 <td class="nowrap age">{date|rfc822date}</td>
212 <td class="nowrap age">{date|rfc822date}</td>
209 <td class="{status}"><a href="{url|urlescape}shortlog/{branch|revescape}{sessionvars%urlparameter}">{branch|escape}</a></td>
213 <td class="{status}"><a href="{url|urlescape}shortlog/{branch|revescape}{sessionvars%urlparameter}">{branch|escape}</a></td>
210 <td class="nowrap">
214 <td class="nowrap">
211 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
215 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
212 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
216 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
213 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
217 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
214 </td>
218 </td>
215 </tr>'
219 </tr>'
216 diffblock = '<div class="diffblock"><pre class="sourcelines">{lines}</pre></div>'
220 diffblock = '<div class="diffblock"><pre class="sourcelines">{lines}</pre></div>'
217 filediffparent = '
221 filediffparent = '
218 <dt>parent {rev}</dt>
222 <dt>parent {rev}</dt>
219 <dd><a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
223 <dd><a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
220 filecompparent = '
224 filecompparent = '
221 <dt>parent {rev}</dt>
225 <dt>parent {rev}</dt>
222 <dd><a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
226 <dd><a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
223 filelogparent = '
227 filelogparent = '
224 <tr>
228 <tr>
225 <td align="right">parent {rev}:&nbsp;</td>
229 <td align="right">parent {rev}:&nbsp;</td>
226 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
230 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
227 </tr>'
231 </tr>'
228 filediffchild = '
232 filediffchild = '
229 <dt>child {rev}</dt>
233 <dt>child {rev}</dt>
230 <dd><a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
234 <dd><a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
231 filecompchild = '
235 filecompchild = '
232 <dt>child {rev}</dt>
236 <dt>child {rev}</dt>
233 <dd><a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
237 <dd><a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
234 filelogchild = '
238 filelogchild = '
235 <tr>
239 <tr>
236 <td align="right">child {rev}:&nbsp;</td>
240 <td align="right">child {rev}:&nbsp;</td>
237 <td><a href="{url|urlescape}file{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
241 <td><a href="{url|urlescape}file{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
238 </tr>'
242 </tr>'
239 shortlog = shortlog.tmpl
243 shortlog = shortlog.tmpl
240 tagtag = '<span class="tagtag" title="{name|escape}">{name|escape}</span> '
244 tagtag = '<span class="tagtag" title="{name|escape}">{name|escape}</span> '
241 branchtag = '<span class="branchtag" title="{name|escape}">{name|escape}</span> '
245 branchtag = '<span class="branchtag" title="{name|escape}">{name|escape}</span> '
242 inbranchtag = '<span class="inbranchtag" title="{name|escape}">{name|escape}</span> '
246 inbranchtag = '<span class="inbranchtag" title="{name|escape}">{name|escape}</span> '
243 bookmarktag = '<span class="bookmarktag" title="{name|escape}">{name|escape}</span> '
247 bookmarktag = '<span class="bookmarktag" title="{name|escape}">{name|escape}</span> '
244 shortlogentry = '
248 shortlogentry = '
245 <tr class="parity{parity}">
249 <tr class="parity{parity}">
246 <td class="nowrap age">{date|rfc822date}</td>
250 <td class="nowrap age">{date|rfc822date}</td>
247 <td>{author|person}</td>
251 <td>{author|person}</td>
248 <td>
252 <td>
249 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
253 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
250 {desc|strip|firstline|escape|nonempty}
254 {desc|strip|firstline|escape|nonempty}
251 <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>
255 <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>
252 </a>
256 </a>
253 </td>
257 </td>
254 <td class="nowrap">
258 <td class="nowrap">
255 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
259 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
256 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
260 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
257 </td>
261 </td>
258 </tr>'
262 </tr>'
259 filelogentry = '
263 filelogentry = '
260 <tr class="parity{parity}">
264 <tr class="parity{parity}">
261 <td class="nowrap age">{date|rfc822date}</td>
265 <td class="nowrap age">{date|rfc822date}</td>
262 <td>{author|person}</td>
266 <td>{author|person}</td>
263 <td>
267 <td>
264 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
268 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
265 {desc|strip|firstline|escape|nonempty}
269 {desc|strip|firstline|escape|nonempty}
266 <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>
270 <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>
267 </a>
271 </a>
268 </td>
272 </td>
269 <td class="nowrap">
273 <td class="nowrap">
270 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
274 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
271 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
275 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
272 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
276 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
273 {rename%filelogrename}
277 {rename%filelogrename}
274 </td>
278 </td>
275 </tr>'
279 </tr>'
276 archiveentry = '<li><a href="{url|urlescape}archive/{symrev}{extension}{ifeq(path,'/','',path|urlescape)}">{type|escape}</a></li>'
280 archiveentry = '<li><a href="{url|urlescape}archive/{symrev}{extension}{ifeq(path,'/','',path|urlescape)}">{type|escape}</a></li>'
277 indexentry = '
281 indexentry = '
278 <tr class="parity{parity}">
282 <tr class="parity{parity}">
279 <td><a href="{url|urlescape}{sessionvars%urlparameter}">{name|escape}</a></td>
283 <td><a href="{url|urlescape}{sessionvars%urlparameter}">{name|escape}</a></td>
280 <td>{description}</td>
284 <td>{description}</td>
281 <td>{contact|obfuscate}</td>
285 <td>{contact|obfuscate}</td>
282 <td class="age">{lastchange|rfc822date}</td>
286 <td class="age">{lastchange|rfc822date}</td>
283 <td class="indexlinks">{archives%indexarchiveentry}</td>
287 <td class="indexlinks">{archives%indexarchiveentry}</td>
284 <td>
288 <td>
285 {if(isdirectory, '',
289 {if(isdirectory, '',
286 '<div class="rss_logo">
290 '<div class="rss_logo">
287 <a href="{url|urlescape}rss-log">RSS</a> <a href="{url|urlescape}atom-log">Atom</a>
291 <a href="{url|urlescape}rss-log">RSS</a> <a href="{url|urlescape}atom-log">Atom</a>
288 </div>'
292 </div>'
289 )}
293 )}
290 </td>
294 </td>
291 </tr>\n'
295 </tr>\n'
292 indexarchiveentry = '<a href="{url|urlescape}archive/{node|short}{extension}">{type|escape}</a> '
296 indexarchiveentry = '<a href="{url|urlescape}archive/{node|short}{extension}">{type|escape}</a> '
293 index = index.tmpl
297 index = index.tmpl
294 urlparameter = '{separator}{name}={value|urlescape}'
298 urlparameter = '{separator}{name}={value|urlescape}'
295 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
299 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
296 graph = graph.tmpl
300 graph = graph.tmpl
297 breadcrumb = '&gt; <a href="{url|urlescape}">{name|escape}</a> '
301 breadcrumb = '&gt; <a href="{url|urlescape}">{name|escape}</a> '
@@ -1,268 +1,272
1 default = 'shortlog'
1 default = 'shortlog'
2
2
3 mimetype = 'text/html; charset={encoding}'
3 mimetype = 'text/html; charset={encoding}'
4 header = header.tmpl
4 header = header.tmpl
5 footer = footer.tmpl
5 footer = footer.tmpl
6 search = search.tmpl
6 search = search.tmpl
7
7
8 changelog = shortlog.tmpl
8 changelog = shortlog.tmpl
9 shortlog = shortlog.tmpl
9 shortlog = shortlog.tmpl
10 shortlogentry = shortlogentry.tmpl
10 shortlogentry = shortlogentry.tmpl
11 graph = graph.tmpl
11 graph = graph.tmpl
12 help = help.tmpl
12 help = help.tmpl
13 helptopics = helptopics.tmpl
13 helptopics = helptopics.tmpl
14
14
15 helpentry = '
15 helpentry = '
16 <tr><td>
16 <tr><td>
17 <a href="{url|urlescape}help/{topic|escape}{sessionvars%urlparameter}">
17 <a href="{url|urlescape}help/{topic|escape}{sessionvars%urlparameter}">
18 {if(basename, '{basename|escape}', '{topic|escape}')}
18 {if(basename, '{basename|escape}', '{topic|escape}')}
19 </a>
19 </a>
20 </td><td>
20 </td><td>
21 {summary|escape}
21 {summary|escape}
22 </td></tr>'
22 </td></tr>'
23
23
24 naventry = '<a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
24 naventry = '<a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
25 navshortentry = '<a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
25 navshortentry = '<a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
26 navgraphentry = '<a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
26 navgraphentry = '<a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
27 filenaventry = '<a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
27 filenaventry = '<a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
28 filedifflink = '<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
28 filedifflink = '<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
29 filenodelink = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
29 filenodelink = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
30 filenolink = '{file|escape} '
30 filenolink = '{file|escape} '
31 fileellipses = '...'
31 fileellipses = '...'
32 diffstatlink = diffstat.tmpl
32 diffstatlink = diffstat.tmpl
33 diffstatnolink = diffstat.tmpl
33 diffstatnolink = diffstat.tmpl
34 changelogentry = shortlogentry.tmpl
34 changelogentry = shortlogentry.tmpl
35 searchentry = shortlogentry.tmpl
35 searchentry = shortlogentry.tmpl
36 changeset = changeset.tmpl
36 changeset = changeset.tmpl
37 manifest = manifest.tmpl
37 manifest = manifest.tmpl
38
38
39 nav = '{before%naventry} {after%naventry}'
39 nav = '{before%naventry} {after%naventry}'
40 navshort = '{before%navshortentry}{after%navshortentry}'
40 navshort = '{before%navshortentry}{after%navshortentry}'
41 navgraph = '{before%navgraphentry}{after%navgraphentry}'
41 navgraph = '{before%navgraphentry}{after%navgraphentry}'
42 filenav = '{before%filenaventry}{after%filenaventry}'
42 filenav = '{before%filenaventry}{after%filenaventry}'
43
43
44 direntry = '
44 direntry = '
45 <tr class="fileline">
45 <tr class="fileline">
46 <td class="name">
46 <td class="name">
47 <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">
47 <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">
48 <img src="{staticurl|urlescape}coal-folder.png" alt="dir."/> {basename|escape}/
48 <img src="{staticurl|urlescape}coal-folder.png" alt="dir."/> {basename|escape}/
49 </a>
49 </a>
50 <a href="{url|urlescape}file/{symrev}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">
50 <a href="{url|urlescape}file/{symrev}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">
51 {emptydirs|escape}
51 {emptydirs|escape}
52 </a>
52 </a>
53 </td>
53 </td>
54 <td class="size"></td>
54 <td class="size"></td>
55 <td class="permissions">drwxr-xr-x</td>
55 <td class="permissions">drwxr-xr-x</td>
56 </tr>'
56 </tr>'
57
57
58 fileentry = '
58 fileentry = '
59 <tr class="fileline">
59 <tr class="fileline">
60 <td class="filename">
60 <td class="filename">
61 <a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">
61 <a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">
62 <img src="{staticurl|urlescape}coal-file.png" alt="file"/> {basename|escape}
62 <img src="{staticurl|urlescape}coal-file.png" alt="file"/> {basename|escape}
63 </a>
63 </a>
64 </td>
64 </td>
65 <td class="size">{size}</td>
65 <td class="size">{size}</td>
66 <td class="permissions">{permissions|permissions}</td>
66 <td class="permissions">{permissions|permissions}</td>
67 </tr>'
67 </tr>'
68
68
69 filerevision = filerevision.tmpl
69 filerevision = filerevision.tmpl
70 fileannotate = fileannotate.tmpl
70 fileannotate = fileannotate.tmpl
71 filediff = filediff.tmpl
71 filediff = filediff.tmpl
72 filecomparison = filecomparison.tmpl
72 filecomparison = filecomparison.tmpl
73 filelog = filelog.tmpl
73 filelog = filelog.tmpl
74 fileline = '
74 fileline = '
75 <span id="{lineid}">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>'
75 <span id="{lineid}">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>'
76 filelogentry = filelogentry.tmpl
76 filelogentry = filelogentry.tmpl
77
77
78 annotateline = '
78 annotateline = '
79 <tr id="{lineid}"{ifeq(node, originalnode, ' class="thisrev"')}>
79 <tr id="{lineid}"{ifeq(node, originalnode, ' class="thisrev"')}>
80 <td class="annotate">
80 <td class="annotate">
81 {if(blockhead,
81 {if(blockhead,
82 '<a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
82 '<a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
83 {rev}
83 {rev}
84 </a>')}
84 </a>')}
85 <div class="annotate-info">
85 <div class="annotate-info">
86 <div>{node|short}: {desc|escape|firstline}</div>
86 <div>
87 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
88 {node|short}</a>
89 {desc|escape|firstline}
90 </div>
87 <div><em>{author|obfuscate}</em></div>
91 <div><em>{author|obfuscate}</em></div>
88 <div>parents: {parents%annotateparent}</div>
92 <div>parents: {parents%annotateparent}</div>
89 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>
93 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>
90 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a>
94 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a>
91 </div>
95 </div>
92 </td>
96 </td>
93 <td class="source"><a href="#{lineid}">{linenumber}</a> {line|escape}</td>
97 <td class="source"><a href="#{lineid}">{linenumber}</a> {line|escape}</td>
94 </tr>'
98 </tr>'
95 annotateparent = '
99 annotateparent = '
96 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rev}</a>'
100 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rev}</a>'
97 diffblock = '<div class="bottomline inc-lineno"><pre class="sourcelines wrap">{lines}</pre></div>'
101 diffblock = '<div class="bottomline inc-lineno"><pre class="sourcelines wrap">{lines}</pre></div>'
98 difflineplus = '
102 difflineplus = '
99 <span id="{lineid}" class="plusline">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>'
103 <span id="{lineid}" class="plusline">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>'
100 difflineminus = '
104 difflineminus = '
101 <span id="{lineid}" class="minusline">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>'
105 <span id="{lineid}" class="minusline">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>'
102 difflineat = '
106 difflineat = '
103 <span id="{lineid}" class="atline">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>'
107 <span id="{lineid}" class="atline">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>'
104 diffline = '
108 diffline = '
105 <span id="{lineid}">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>'
109 <span id="{lineid}">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>'
106
110
107 comparisonblock ='
111 comparisonblock ='
108 <tbody class="block">
112 <tbody class="block">
109 {lines}
113 {lines}
110 </tbody>'
114 </tbody>'
111 comparisonline = '
115 comparisonline = '
112 <tr id="{lineid}">
116 <tr id="{lineid}">
113 <td class="source {type}"><a href="#{lineid}">{leftlinenumber}</a> {leftline|escape}</td>
117 <td class="source {type}"><a href="#{lineid}">{leftlinenumber}</a> {leftline|escape}</td>
114 <td class="source {type}"><a href="#{lineid}">{rightlinenumber}</a> {rightline|escape}</td>
118 <td class="source {type}"><a href="#{lineid}">{rightlinenumber}</a> {rightline|escape}</td>
115 </tr>'
119 </tr>'
116
120
117 changelogparent = '
121 changelogparent = '
118 <tr>
122 <tr>
119 <th class="parent">parent {rev}:</th>
123 <th class="parent">parent {rev}:</th>
120 <td class="parent"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
124 <td class="parent"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
121 </tr>'
125 </tr>'
122
126
123 changesetparent = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> '
127 changesetparent = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> '
124
128
125 changesetparentdiff = '
129 changesetparentdiff = '
126 {changesetparent}
130 {changesetparent}
127 {ifeq(node, basenode, '(current diff)', '({difffrom})')}'
131 {ifeq(node, basenode, '(current diff)', '({difffrom})')}'
128
132
129 difffrom = '<a href="{url|urlescape}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">diff</a>'
133 difffrom = '<a href="{url|urlescape}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">diff</a>'
130
134
131 filerevparent = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rename%filerename}{node|short}</a> '
135 filerevparent = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rename%filerename}{node|short}</a> '
132 filerevchild = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> '
136 filerevchild = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> '
133
137
134 filerename = '{file|escape}@'
138 filerename = '{file|escape}@'
135 filelogrename = '
139 filelogrename = '
136 <span class="base">
140 <span class="base">
137 base
141 base
138 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
142 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
139 {file|escape}@{node|short}
143 {file|escape}@{node|short}
140 </a>
144 </a>
141 </span>'
145 </span>'
142 fileannotateparent = '
146 fileannotateparent = '
143 <tr>
147 <tr>
144 <td class="metatag">parent:</td>
148 <td class="metatag">parent:</td>
145 <td>
149 <td>
146 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
150 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
147 {rename%filerename}{node|short}
151 {rename%filerename}{node|short}
148 </a>
152 </a>
149 </td>
153 </td>
150 </tr>'
154 </tr>'
151 changesetchild = ' <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
155 changesetchild = ' <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
152 changelogchild = '
156 changelogchild = '
153 <tr>
157 <tr>
154 <th class="child">child</th>
158 <th class="child">child</th>
155 <td class="child">
159 <td class="child">
156 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
160 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
157 {node|short}
161 {node|short}
158 </a>
162 </a>
159 </td>
163 </td>
160 </tr>'
164 </tr>'
161 fileannotatechild = '
165 fileannotatechild = '
162 <tr>
166 <tr>
163 <td class="metatag">child:</td>
167 <td class="metatag">child:</td>
164 <td>
168 <td>
165 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
169 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
166 {node|short}
170 {node|short}
167 </a>
171 </a>
168 </td>
172 </td>
169 </tr>'
173 </tr>'
170 tags = tags.tmpl
174 tags = tags.tmpl
171 tagentry = '
175 tagentry = '
172 <tr class="tagEntry">
176 <tr class="tagEntry">
173 <td>
177 <td>
174 <a href="{url|urlescape}rev/{tag|revescape}{sessionvars%urlparameter}">
178 <a href="{url|urlescape}rev/{tag|revescape}{sessionvars%urlparameter}">
175 {tag|escape}
179 {tag|escape}
176 </a>
180 </a>
177 </td>
181 </td>
178 <td class="node">
182 <td class="node">
179 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
183 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
180 {node|short}
184 {node|short}
181 </a>
185 </a>
182 </td>
186 </td>
183 </tr>'
187 </tr>'
184 bookmarks = bookmarks.tmpl
188 bookmarks = bookmarks.tmpl
185 bookmarkentry = '
189 bookmarkentry = '
186 <tr class="tagEntry">
190 <tr class="tagEntry">
187 <td>
191 <td>
188 <a href="{url|urlescape}rev/{bookmark|revescape}{sessionvars%urlparameter}">
192 <a href="{url|urlescape}rev/{bookmark|revescape}{sessionvars%urlparameter}">
189 {bookmark|escape}
193 {bookmark|escape}
190 </a>
194 </a>
191 </td>
195 </td>
192 <td class="node">
196 <td class="node">
193 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
197 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
194 {node|short}
198 {node|short}
195 </a>
199 </a>
196 </td>
200 </td>
197 </tr>'
201 </tr>'
198 branches = branches.tmpl
202 branches = branches.tmpl
199 branchentry = '
203 branchentry = '
200 <tr class="tagEntry">
204 <tr class="tagEntry">
201 <td>
205 <td>
202 <a href="{url|urlescape}shortlog/{branch|revescape}{sessionvars%urlparameter}" class="{status}">
206 <a href="{url|urlescape}shortlog/{branch|revescape}{sessionvars%urlparameter}" class="{status}">
203 {branch|escape}
207 {branch|escape}
204 </a>
208 </a>
205 </td>
209 </td>
206 <td class="node">
210 <td class="node">
207 <a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">
211 <a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">
208 {node|short}
212 {node|short}
209 </a>
213 </a>
210 </td>
214 </td>
211 </tr>'
215 </tr>'
212 changelogtag = '<span class="tag">{name|escape}</span> '
216 changelogtag = '<span class="tag">{name|escape}</span> '
213 changesettag = '<span class="tag">{tag|escape}</span> '
217 changesettag = '<span class="tag">{tag|escape}</span> '
214 changesetbookmark = '<span class="tag">{bookmark|escape}</span> '
218 changesetbookmark = '<span class="tag">{bookmark|escape}</span> '
215 changelogbranchhead = '<span class="branchhead">{name|escape}</span> '
219 changelogbranchhead = '<span class="branchhead">{name|escape}</span> '
216 changelogbranchname = '<span class="branchname">{name|escape}</span> '
220 changelogbranchname = '<span class="branchname">{name|escape}</span> '
217
221
218 filediffparent = '
222 filediffparent = '
219 <tr>
223 <tr>
220 <th class="parent">parent {rev}:</th>
224 <th class="parent">parent {rev}:</th>
221 <td class="parent"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
225 <td class="parent"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
222 </tr>'
226 </tr>'
223 filelogparent = '
227 filelogparent = '
224 <tr>
228 <tr>
225 <th>parent {rev}:</th>
229 <th>parent {rev}:</th>
226 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
230 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
227 </tr>'
231 </tr>'
228 filediffchild = '
232 filediffchild = '
229 <tr>
233 <tr>
230 <th class="child">child {rev}:</th>
234 <th class="child">child {rev}:</th>
231 <td class="child"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
235 <td class="child"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
232 </td>
236 </td>
233 </tr>'
237 </tr>'
234 filelogchild = '
238 filelogchild = '
235 <tr>
239 <tr>
236 <th>child {rev}:</th>
240 <th>child {rev}:</th>
237 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
241 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
238 </tr>'
242 </tr>'
239
243
240 indexentry = '
244 indexentry = '
241 <tr>
245 <tr>
242 <td><a href="{url|urlescape}{sessionvars%urlparameter}">{name|escape}</a></td>
246 <td><a href="{url|urlescape}{sessionvars%urlparameter}">{name|escape}</a></td>
243 <td>{description}</td>
247 <td>{description}</td>
244 <td>{contact|obfuscate}</td>
248 <td>{contact|obfuscate}</td>
245 <td class="age">{lastchange|rfc822date}</td>
249 <td class="age">{lastchange|rfc822date}</td>
246 <td class="indexlinks">{archives%indexarchiveentry}</td>
250 <td class="indexlinks">{archives%indexarchiveentry}</td>
247 <td>
251 <td>
248 {if(isdirectory, '',
252 {if(isdirectory, '',
249 '<a href="{url|urlescape}atom-log" title="subscribe to repository atom feed">
253 '<a href="{url|urlescape}atom-log" title="subscribe to repository atom feed">
250 <img class="atom-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="subscribe to repository atom feed">
254 <img class="atom-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="subscribe to repository atom feed">
251 </a>'
255 </a>'
252 )}
256 )}
253 </td>
257 </td>
254 </tr>\n'
258 </tr>\n'
255 indexarchiveentry = '<a href="{url|urlescape}archive/{node|short}{extension|urlescape}">&nbsp;&darr;{type|escape}</a>'
259 indexarchiveentry = '<a href="{url|urlescape}archive/{node|short}{extension|urlescape}">&nbsp;&darr;{type|escape}</a>'
256 index = index.tmpl
260 index = index.tmpl
257 archiveentry = '
261 archiveentry = '
258 <li>
262 <li>
259 <a href="{url|urlescape}archive/{symrev}{extension|urlescape}{ifeq(path,'/','',path|urlescape)}">{type|escape}</a>
263 <a href="{url|urlescape}archive/{symrev}{extension|urlescape}{ifeq(path,'/','',path|urlescape)}">{type|escape}</a>
260 </li>'
264 </li>'
261 notfound = notfound.tmpl
265 notfound = notfound.tmpl
262 error = error.tmpl
266 error = error.tmpl
263 urlparameter = '{separator}{name}={value|urlescape}'
267 urlparameter = '{separator}{name}={value|urlescape}'
264 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
268 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
265 breadcrumb = '&gt; <a href="{url|urlescape}">{name|escape}</a> '
269 breadcrumb = '&gt; <a href="{url|urlescape}">{name|escape}</a> '
266
270
267 searchhint = 'Find changesets by keywords (author, files, the commit message), revision
271 searchhint = 'Find changesets by keywords (author, files, the commit message), revision
268 number or hash, or <a href="{url|urlescape}help/revsets">revset expression</a>.'
272 number or hash, or <a href="{url|urlescape}help/revsets">revset expression</a>.'
@@ -1,202 +1,206
1 default = 'shortlog'
1 default = 'shortlog'
2 mimetype = 'text/html; charset={encoding}'
2 mimetype = 'text/html; charset={encoding}'
3 header = header.tmpl
3 header = header.tmpl
4 footer = footer.tmpl
4 footer = footer.tmpl
5 search = search.tmpl
5 search = search.tmpl
6 changelog = changelog.tmpl
6 changelog = changelog.tmpl
7 shortlog = shortlog.tmpl
7 shortlog = shortlog.tmpl
8 shortlogentry = shortlogentry.tmpl
8 shortlogentry = shortlogentry.tmpl
9 graph = graph.tmpl
9 graph = graph.tmpl
10 naventry = '<a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
10 naventry = '<a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
11 navshortentry = '<a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
11 navshortentry = '<a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
12 navgraphentry = '<a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
12 navgraphentry = '<a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
13 filenaventry = '<a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
13 filenaventry = '<a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
14 filedifflink = '<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
14 filedifflink = '<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
15 filenodelink = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
15 filenodelink = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
16 filenolink = '{file|escape} '
16 filenolink = '{file|escape} '
17 fileellipses = '...'
17 fileellipses = '...'
18 changelogentry = changelogentry.tmpl
18 changelogentry = changelogentry.tmpl
19 searchentry = changelogentry.tmpl
19 searchentry = changelogentry.tmpl
20 changeset = changeset.tmpl
20 changeset = changeset.tmpl
21 manifest = manifest.tmpl
21 manifest = manifest.tmpl
22
22
23 nav = '{before%naventry} {after%naventry}'
23 nav = '{before%naventry} {after%naventry}'
24 navshort = '{before%navshortentry}{after%navshortentry}'
24 navshort = '{before%navshortentry}{after%navshortentry}'
25 navgraph = '{before%navgraphentry}{after%navgraphentry}'
25 navgraph = '{before%navgraphentry}{after%navgraphentry}'
26 filenav = '{before%filenaventry}{after%filenaventry}'
26 filenav = '{before%filenaventry}{after%filenaventry}'
27
27
28 direntry = '
28 direntry = '
29 <tr class="parity{parity}">
29 <tr class="parity{parity}">
30 <td><tt>drwxr-xr-x</tt>&nbsp;
30 <td><tt>drwxr-xr-x</tt>&nbsp;
31 <td>&nbsp;
31 <td>&nbsp;
32 <td>&nbsp;
32 <td>&nbsp;
33 <td>
33 <td>
34 <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}/</a>
34 <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}/</a>
35 <a href="{url|urlescape}file/{symrev}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">
35 <a href="{url|urlescape}file/{symrev}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">
36 {emptydirs|urlescape}
36 {emptydirs|urlescape}
37 </a>'
37 </a>'
38
38
39 fileentry = '
39 fileentry = '
40 <tr class="parity{parity}">
40 <tr class="parity{parity}">
41 <td><tt>{permissions|permissions}</tt>&nbsp;
41 <td><tt>{permissions|permissions}</tt>&nbsp;
42 <td align=right><tt class="date">{date|isodate}</tt>&nbsp;
42 <td align=right><tt class="date">{date|isodate}</tt>&nbsp;
43 <td align=right><tt>{size}</tt>&nbsp;
43 <td align=right><tt>{size}</tt>&nbsp;
44 <td><a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>'
44 <td><a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>'
45
45
46 filerevision = filerevision.tmpl
46 filerevision = filerevision.tmpl
47 fileannotate = fileannotate.tmpl
47 fileannotate = fileannotate.tmpl
48 filediff = filediff.tmpl
48 filediff = filediff.tmpl
49 filelog = filelog.tmpl
49 filelog = filelog.tmpl
50 fileline = '<div class="parity{parity}"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>&nbsp;{line|escape}</div>'
50 fileline = '<div class="parity{parity}"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>&nbsp;{line|escape}</div>'
51 filelogentry = filelogentry.tmpl
51 filelogentry = filelogentry.tmpl
52
52
53 # The &nbsp; ensures that all table cells have content (even if there
53 # The &nbsp; ensures that all table cells have content (even if there
54 # is an empty line in the annotated file), which in turn ensures that
54 # is an empty line in the annotated file), which in turn ensures that
55 # all table rows have equal height.
55 # all table rows have equal height.
56 annotateline = '
56 annotateline = '
57 <tr class="parity{parity}{ifeq(node, originalnode, ' thisrev')}">
57 <tr class="parity{parity}{ifeq(node, originalnode, ' thisrev')}">
58 <td class="annotate">
58 <td class="annotate">
59 {if(blockhead,
59 {if(blockhead,
60 '<a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
60 '<a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
61 {rev}
61 {rev}
62 </a>')}
62 </a>')}
63 <div class="annotate-info">
63 <div class="annotate-info">
64 <div>{node|short}: {desc|escape|firstline}</div>
64 <div>
65 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
66 {node|short}</a>
67 {desc|escape|firstline}
68 </div>
65 <div><em>{author|obfuscate}</em></div>
69 <div><em>{author|obfuscate}</em></div>
66 <div>parents: {parents%annotateparent}</div>
70 <div>parents: {parents%annotateparent}</div>
67 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>
71 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>
68 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a>
72 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a>
69 </div>
73 </div>
70 </td>
74 </td>
71 <td>
75 <td>
72 <a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>
76 <a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>
73 </td>
77 </td>
74 <td><pre>&nbsp;{line|escape}</pre></td>
78 <td><pre>&nbsp;{line|escape}</pre></td>
75 </tr>'
79 </tr>'
76 annotateparent = '
80 annotateparent = '
77 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rev}</a>'
81 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rev}</a>'
78 difflineplus = '<span class="plusline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>'
82 difflineplus = '<span class="plusline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>'
79 difflineminus = '<span class="minusline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>'
83 difflineminus = '<span class="minusline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>'
80 difflineat = '<span class="atline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>'
84 difflineat = '<span class="atline"><a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}</span>'
81 diffline = '<a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}'
85 diffline = '<a class="lineno" href="#{lineid}" id="{lineid}">{linenumber}</a>{line|escape}'
82 changesetlink = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
86 changesetlink = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
83 changelogparent = '
87 changelogparent = '
84 <tr>
88 <tr>
85 <th class="parent">parent {rev}:</th>
89 <th class="parent">parent {rev}:</th>
86 <td class="parent">
90 <td class="parent">
87 {changesetlink}
91 {changesetlink}
88 </td>
92 </td>
89 </tr>'
93 </tr>'
90 changesetparent = '
94 changesetparent = '
91 <tr>
95 <tr>
92 <th class="parent">parent {rev}:</th>
96 <th class="parent">parent {rev}:</th>
93 <td class="parent">{changesetlink}</td>
97 <td class="parent">{changesetlink}</td>
94 </tr>'
98 </tr>'
95 changesetparentdiff = '
99 changesetparentdiff = '
96 <tr>
100 <tr>
97 <th class="parent">parent {rev}:</th>
101 <th class="parent">parent {rev}:</th>
98 <td class="parent">{changesetlink} {ifeq(node, basenode, '(current diff)', '({difffrom})')}</td>
102 <td class="parent">{changesetlink} {ifeq(node, basenode, '(current diff)', '({difffrom})')}</td>
99 </tr>'
103 </tr>'
100 difffrom = '<a href="{url|urlescape}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">diff</a>'
104 difffrom = '<a href="{url|urlescape}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">diff</a>'
101 filerevparent = '
105 filerevparent = '
102 <tr>
106 <tr>
103 <td class="metatag">parent:</td>
107 <td class="metatag">parent:</td>
104 <td>
108 <td>
105 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
109 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
106 {rename%filerename}{node|short}
110 {rename%filerename}{node|short}
107 </a>
111 </a>
108 </td>
112 </td>
109 </tr>'
113 </tr>'
110 filerename = '{file|escape}@'
114 filerename = '{file|escape}@'
111 filelogrename = '
115 filelogrename = '
112 <tr>
116 <tr>
113 <th>base:</th>
117 <th>base:</th>
114 <td>
118 <td>
115 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
119 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
116 {file|escape}@{node|short}
120 {file|escape}@{node|short}
117 </a>
121 </a>
118 </td>
122 </td>
119 </tr>'
123 </tr>'
120 fileannotateparent = '
124 fileannotateparent = '
121 <tr>
125 <tr>
122 <td class="metatag">parent:</td>
126 <td class="metatag">parent:</td>
123 <td>
127 <td>
124 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
128 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
125 {rename%filerename}{node|short}
129 {rename%filerename}{node|short}
126 </a>
130 </a>
127 </td>
131 </td>
128 </tr>'
132 </tr>'
129 changesetchild = '
133 changesetchild = '
130 <tr>
134 <tr>
131 <th class="child">child {rev}:</th>
135 <th class="child">child {rev}:</th>
132 <td class="child"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
136 <td class="child"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
133 </tr>'
137 </tr>'
134 changelogchild = '
138 changelogchild = '
135 <tr>
139 <tr>
136 <th class="child">child {rev}:</th>
140 <th class="child">child {rev}:</th>
137 <td class="child"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
141 <td class="child"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
138 </tr>'
142 </tr>'
139 filerevchild = '
143 filerevchild = '
140 <tr>
144 <tr>
141 <td class="metatag">child:</td>
145 <td class="metatag">child:</td>
142 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
146 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
143 </tr>'
147 </tr>'
144 fileannotatechild = '
148 fileannotatechild = '
145 <tr>
149 <tr>
146 <td class="metatag">child:</td>
150 <td class="metatag">child:</td>
147 <td><a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
151 <td><a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
148 </tr>'
152 </tr>'
149 tags = tags.tmpl
153 tags = tags.tmpl
150 tagentry = '
154 tagentry = '
151 <li class="tagEntry parity{parity}">
155 <li class="tagEntry parity{parity}">
152 <tt class="node">{node}</tt>
156 <tt class="node">{node}</tt>
153 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{tag|escape}</a>
157 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{tag|escape}</a>
154 </li>'
158 </li>'
155 branches = branches.tmpl
159 branches = branches.tmpl
156 branchentry = '
160 branchentry = '
157 <li class="tagEntry parity{parity}">
161 <li class="tagEntry parity{parity}">
158 <tt class="node">{node}</tt>
162 <tt class="node">{node}</tt>
159 <a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">{branch|escape}</a>
163 <a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">{branch|escape}</a>
160 </li>'
164 </li>'
161 diffblock = '<pre class="parity{parity}">{lines}</pre>'
165 diffblock = '<pre class="parity{parity}">{lines}</pre>'
162 changelogtag = '<tr><th class="tag">tag:</th><td class="tag">{tag|escape}</td></tr>'
166 changelogtag = '<tr><th class="tag">tag:</th><td class="tag">{tag|escape}</td></tr>'
163 changesettag = '<tr><th class="tag">tag:</th><td class="tag">{tag|escape}</td></tr>'
167 changesettag = '<tr><th class="tag">tag:</th><td class="tag">{tag|escape}</td></tr>'
164 filediffparent = '
168 filediffparent = '
165 <tr>
169 <tr>
166 <th class="parent">parent {rev}:</th>
170 <th class="parent">parent {rev}:</th>
167 <td class="parent"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
171 <td class="parent"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
168 </tr>'
172 </tr>'
169 filelogparent = '
173 filelogparent = '
170 <tr>
174 <tr>
171 <th>parent {rev}:</th>
175 <th>parent {rev}:</th>
172 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
176 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
173 </tr>'
177 </tr>'
174 filediffchild = '
178 filediffchild = '
175 <tr>
179 <tr>
176 <th class="child">child {rev}:</th>
180 <th class="child">child {rev}:</th>
177 <td class="child"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
181 <td class="child"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
178 </tr>'
182 </tr>'
179 filelogchild = '
183 filelogchild = '
180 <tr>
184 <tr>
181 <th>child {rev}:</th>
185 <th>child {rev}:</th>
182 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
186 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
183 </tr>'
187 </tr>'
184 indexentry = '
188 indexentry = '
185 <tr class="parity{parity}">
189 <tr class="parity{parity}">
186 <td><a href="{url|urlescape}{sessionvars%urlparameter}">{name|escape}</a></td>
190 <td><a href="{url|urlescape}{sessionvars%urlparameter}">{name|escape}</a></td>
187 <td>{description}</td>
191 <td>{description}</td>
188 <td>{contact|obfuscate}</td>
192 <td>{contact|obfuscate}</td>
189 <td class="age">{lastchange|rfc822date}</td>
193 <td class="age">{lastchange|rfc822date}</td>
190 <td class="indexlinks">
194 <td class="indexlinks">
191 <a href="{url|urlescape}rss-log">RSS</a>
195 <a href="{url|urlescape}rss-log">RSS</a>
192 <a href="{url|urlescape}atom-log">Atom</a>
196 <a href="{url|urlescape}atom-log">Atom</a>
193 {archives%archiveentry}
197 {archives%archiveentry}
194 </td>
198 </td>
195 </tr>'
199 </tr>'
196 index = index.tmpl
200 index = index.tmpl
197 archiveentry = '<a href="{url|urlescape}archive/{symrev}{extension|urlescape}">{type|escape}</a> '
201 archiveentry = '<a href="{url|urlescape}archive/{symrev}{extension|urlescape}">{type|escape}</a> '
198 notfound = notfound.tmpl
202 notfound = notfound.tmpl
199 error = error.tmpl
203 error = error.tmpl
200 urlparameter = '{separator}{name}={value|urlescape}'
204 urlparameter = '{separator}{name}={value|urlescape}'
201 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
205 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
202 breadcrumb = '&gt; <a href="{url|urlescape}">{name|escape}</a> '
206 breadcrumb = '&gt; <a href="{url|urlescape}">{name|escape}</a> '
@@ -1,1077 +1,1087
1 #require serve
1 #require serve
2
2
3 Test symbolic revision usage in links produced by hgweb pages. There are
3 Test symbolic revision usage in links produced by hgweb pages. There are
4 multiple issues related to this:
4 multiple issues related to this:
5 - issue2296
5 - issue2296
6 - issue2826
6 - issue2826
7 - issue3594
7 - issue3594
8 - issue3634
8 - issue3634
9
9
10 Set up the repo
10 Set up the repo
11
11
12 $ hg init test
12 $ hg init test
13 $ cd test
13 $ cd test
14 $ echo 0 > foo
14 $ echo 0 > foo
15 $ mkdir dir
15 $ mkdir dir
16 $ echo 0 > dir/bar
16 $ echo 0 > dir/bar
17 $ hg ci -Am 'first'
17 $ hg ci -Am 'first'
18 adding dir/bar
18 adding dir/bar
19 adding foo
19 adding foo
20 $ echo 1 >> foo
20 $ echo 1 >> foo
21 $ hg ci -m 'second'
21 $ hg ci -m 'second'
22 $ echo 2 >> foo
22 $ echo 2 >> foo
23 $ hg ci -m 'third'
23 $ hg ci -m 'third'
24 $ hg bookmark -r1 xyzzy
24 $ hg bookmark -r1 xyzzy
25
25
26 $ hg log -G --template '{rev}:{node|short} {tags} {bookmarks}\n'
26 $ hg log -G --template '{rev}:{node|short} {tags} {bookmarks}\n'
27 @ 2:9d8c40cba617 tip
27 @ 2:9d8c40cba617 tip
28 |
28 |
29 o 1:a7c1559b7bba xyzzy
29 o 1:a7c1559b7bba xyzzy
30 |
30 |
31 o 0:43c799df6e75
31 o 0:43c799df6e75
32
32
33 $ hg serve --config web.allow_archive=zip -n test -p $HGPORT -d --pid-file=hg.pid -E errors.log
33 $ hg serve --config web.allow_archive=zip -n test -p $HGPORT -d --pid-file=hg.pid -E errors.log
34 $ cat hg.pid >> $DAEMON_PIDS
34 $ cat hg.pid >> $DAEMON_PIDS
35
35
36 $ REVLINKS='href=[^>]+(rev=|/)(43c799df6e75|0|a7c1559b7bba|1|xyzzy|9d8c40cba617|2|tip|default)'
36 $ REVLINKS='href=[^>]+(rev=|/)(43c799df6e75|0|a7c1559b7bba|1|xyzzy|9d8c40cba617|2|tip|default)'
37
37
38 (De)referencing symbolic revisions (paper)
38 (De)referencing symbolic revisions (paper)
39
39
40 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=paper' | egrep $REVLINKS
40 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=paper' | egrep $REVLINKS
41 <li><a href="/graph/tip?style=paper">graph</a></li>
41 <li><a href="/graph/tip?style=paper">graph</a></li>
42 <li><a href="/rev/tip?style=paper">changeset</a></li>
42 <li><a href="/rev/tip?style=paper">changeset</a></li>
43 <li><a href="/file/tip?style=paper">browse</a></li>
43 <li><a href="/file/tip?style=paper">browse</a></li>
44 <a href="/archive/tip.zip">zip</a>
44 <a href="/archive/tip.zip">zip</a>
45 <a href="/shortlog/tip?revcount=30&style=paper">less</a>
45 <a href="/shortlog/tip?revcount=30&style=paper">less</a>
46 <a href="/shortlog/tip?revcount=120&style=paper">more</a>
46 <a href="/shortlog/tip?revcount=120&style=paper">more</a>
47 | rev 2: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a>
47 | rev 2: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a>
48 <a href="/rev/9d8c40cba617?style=paper">third</a>
48 <a href="/rev/9d8c40cba617?style=paper">third</a>
49 <a href="/rev/a7c1559b7bba?style=paper">second</a>
49 <a href="/rev/a7c1559b7bba?style=paper">second</a>
50 <a href="/rev/43c799df6e75?style=paper">first</a>
50 <a href="/rev/43c799df6e75?style=paper">first</a>
51 <a href="/shortlog/tip?revcount=30&style=paper">less</a>
51 <a href="/shortlog/tip?revcount=30&style=paper">less</a>
52 <a href="/shortlog/tip?revcount=120&style=paper">more</a>
52 <a href="/shortlog/tip?revcount=120&style=paper">more</a>
53 | rev 2: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a>
53 | rev 2: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a>
54
54
55 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph?style=paper' | egrep $REVLINKS
55 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph?style=paper' | egrep $REVLINKS
56 <li><a href="/shortlog/tip?style=paper">log</a></li>
56 <li><a href="/shortlog/tip?style=paper">log</a></li>
57 <li><a href="/rev/tip?style=paper">changeset</a></li>
57 <li><a href="/rev/tip?style=paper">changeset</a></li>
58 <li><a href="/file/tip?style=paper">browse</a></li>
58 <li><a href="/file/tip?style=paper">browse</a></li>
59 <a href="/graph/tip?revcount=30&style=paper">less</a>
59 <a href="/graph/tip?revcount=30&style=paper">less</a>
60 <a href="/graph/tip?revcount=120&style=paper">more</a>
60 <a href="/graph/tip?revcount=120&style=paper">more</a>
61 | rev 2: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a>
61 | rev 2: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a>
62 <a href="/graph/tip?revcount=30&style=paper">less</a>
62 <a href="/graph/tip?revcount=30&style=paper">less</a>
63 <a href="/graph/tip?revcount=120&style=paper">more</a>
63 <a href="/graph/tip?revcount=120&style=paper">more</a>
64 | rev 2: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a>
64 | rev 2: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a>
65
65
66 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file?style=paper' | egrep $REVLINKS
66 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file?style=paper' | egrep $REVLINKS
67 <li><a href="/shortlog/tip?style=paper">log</a></li>
67 <li><a href="/shortlog/tip?style=paper">log</a></li>
68 <li><a href="/graph/tip?style=paper">graph</a></li>
68 <li><a href="/graph/tip?style=paper">graph</a></li>
69 <li><a href="/rev/tip?style=paper">changeset</a></li>
69 <li><a href="/rev/tip?style=paper">changeset</a></li>
70 <a href="/archive/tip.zip">zip</a>
70 <a href="/archive/tip.zip">zip</a>
71 directory / @ 2:<a href="/rev/9d8c40cba617?style=paper">9d8c40cba617</a>
71 directory / @ 2:<a href="/rev/9d8c40cba617?style=paper">9d8c40cba617</a>
72 <td class="name"><a href="/file/tip/?style=paper">[up]</a></td>
72 <td class="name"><a href="/file/tip/?style=paper">[up]</a></td>
73 <a href="/file/tip/dir?style=paper">
73 <a href="/file/tip/dir?style=paper">
74 <a href="/file/tip/dir/?style=paper">
74 <a href="/file/tip/dir/?style=paper">
75 <a href="/file/tip/foo?style=paper">
75 <a href="/file/tip/foo?style=paper">
76
76
77 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'branches?style=paper' | egrep $REVLINKS
77 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'branches?style=paper' | egrep $REVLINKS
78 <a href="/shortlog/default?style=paper" class="open">
78 <a href="/shortlog/default?style=paper" class="open">
79 <a href="/shortlog/9d8c40cba617?style=paper" class="open">
79 <a href="/shortlog/9d8c40cba617?style=paper" class="open">
80
80
81 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'tags?style=paper' | egrep $REVLINKS
81 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'tags?style=paper' | egrep $REVLINKS
82 <a href="/rev/tip?style=paper">
82 <a href="/rev/tip?style=paper">
83 <a href="/rev/9d8c40cba617?style=paper">
83 <a href="/rev/9d8c40cba617?style=paper">
84
84
85 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'bookmarks?style=paper' | egrep $REVLINKS
85 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'bookmarks?style=paper' | egrep $REVLINKS
86 <a href="/rev/xyzzy?style=paper">
86 <a href="/rev/xyzzy?style=paper">
87 <a href="/rev/a7c1559b7bba?style=paper">
87 <a href="/rev/a7c1559b7bba?style=paper">
88
88
89 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=paper&rev=all()' | egrep $REVLINKS
89 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=paper&rev=all()' | egrep $REVLINKS
90 <a href="/rev/9d8c40cba617?style=paper">third</a>
90 <a href="/rev/9d8c40cba617?style=paper">third</a>
91 <a href="/rev/a7c1559b7bba?style=paper">second</a>
91 <a href="/rev/a7c1559b7bba?style=paper">second</a>
92 <a href="/rev/43c799df6e75?style=paper">first</a>
92 <a href="/rev/43c799df6e75?style=paper">first</a>
93
93
94 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'rev/xyzzy?style=paper' | egrep $REVLINKS
94 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'rev/xyzzy?style=paper' | egrep $REVLINKS
95 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
95 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
96 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
96 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
97 <li><a href="/raw-rev/xyzzy?style=paper">raw</a></li>
97 <li><a href="/raw-rev/xyzzy?style=paper">raw</a></li>
98 <li><a href="/file/xyzzy?style=paper">browse</a></li>
98 <li><a href="/file/xyzzy?style=paper">browse</a></li>
99 <a href="/archive/xyzzy.zip">zip</a>
99 <a href="/archive/xyzzy.zip">zip</a>
100 changeset 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
100 changeset 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
101 <td class="author"><a href="/rev/43c799df6e75?style=paper">43c799df6e75</a> </td>
101 <td class="author"><a href="/rev/43c799df6e75?style=paper">43c799df6e75</a> </td>
102 <td class="author"> <a href="/rev/9d8c40cba617?style=paper">9d8c40cba617</a></td>
102 <td class="author"> <a href="/rev/9d8c40cba617?style=paper">9d8c40cba617</a></td>
103 <td class="files"><a href="/file/a7c1559b7bba/foo?style=paper">foo</a> </td>
103 <td class="files"><a href="/file/a7c1559b7bba/foo?style=paper">foo</a> </td>
104
104
105 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog/xyzzy?style=paper' | egrep $REVLINKS
105 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog/xyzzy?style=paper' | egrep $REVLINKS
106 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
106 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
107 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
107 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
108 <li><a href="/file/xyzzy?style=paper">browse</a></li>
108 <li><a href="/file/xyzzy?style=paper">browse</a></li>
109 <a href="/archive/xyzzy.zip">zip</a>
109 <a href="/archive/xyzzy.zip">zip</a>
110 <a href="/shortlog/xyzzy?revcount=30&style=paper">less</a>
110 <a href="/shortlog/xyzzy?revcount=30&style=paper">less</a>
111 <a href="/shortlog/xyzzy?revcount=120&style=paper">more</a>
111 <a href="/shortlog/xyzzy?revcount=120&style=paper">more</a>
112 | rev 1: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a>
112 | rev 1: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a>
113 <a href="/rev/a7c1559b7bba?style=paper">second</a>
113 <a href="/rev/a7c1559b7bba?style=paper">second</a>
114 <a href="/rev/43c799df6e75?style=paper">first</a>
114 <a href="/rev/43c799df6e75?style=paper">first</a>
115 <a href="/shortlog/xyzzy?revcount=30&style=paper">less</a>
115 <a href="/shortlog/xyzzy?revcount=30&style=paper">less</a>
116 <a href="/shortlog/xyzzy?revcount=120&style=paper">more</a>
116 <a href="/shortlog/xyzzy?revcount=120&style=paper">more</a>
117 | rev 1: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a>
117 | rev 1: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a>
118
118
119 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph/xyzzy?style=paper' | egrep $REVLINKS
119 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph/xyzzy?style=paper' | egrep $REVLINKS
120 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
120 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
121 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
121 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
122 <li><a href="/file/xyzzy?style=paper">browse</a></li>
122 <li><a href="/file/xyzzy?style=paper">browse</a></li>
123 <a href="/graph/xyzzy?revcount=30&style=paper">less</a>
123 <a href="/graph/xyzzy?revcount=30&style=paper">less</a>
124 <a href="/graph/xyzzy?revcount=120&style=paper">more</a>
124 <a href="/graph/xyzzy?revcount=120&style=paper">more</a>
125 | rev 1: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a>
125 | rev 1: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a>
126 <a href="/graph/xyzzy?revcount=30&style=paper">less</a>
126 <a href="/graph/xyzzy?revcount=30&style=paper">less</a>
127 <a href="/graph/xyzzy?revcount=120&style=paper">more</a>
127 <a href="/graph/xyzzy?revcount=120&style=paper">more</a>
128 | rev 1: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a>
128 | rev 1: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a>
129
129
130 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy?style=paper' | egrep $REVLINKS
130 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy?style=paper' | egrep $REVLINKS
131 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
131 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
132 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
132 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
133 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
133 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
134 <a href="/archive/xyzzy.zip">zip</a>
134 <a href="/archive/xyzzy.zip">zip</a>
135 directory / @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
135 directory / @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
136 <td class="name"><a href="/file/xyzzy/?style=paper">[up]</a></td>
136 <td class="name"><a href="/file/xyzzy/?style=paper">[up]</a></td>
137 <a href="/file/xyzzy/dir?style=paper">
137 <a href="/file/xyzzy/dir?style=paper">
138 <a href="/file/xyzzy/dir/?style=paper">
138 <a href="/file/xyzzy/dir/?style=paper">
139 <a href="/file/xyzzy/foo?style=paper">
139 <a href="/file/xyzzy/foo?style=paper">
140
140
141 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy/foo?style=paper' | egrep $REVLINKS
141 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy/foo?style=paper' | egrep $REVLINKS
142 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
142 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
143 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
143 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
144 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
144 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
145 <li><a href="/file/xyzzy/?style=paper">browse</a></li>
145 <li><a href="/file/xyzzy/?style=paper">browse</a></li>
146 <li><a href="/file/tip/foo?style=paper">latest</a></li>
146 <li><a href="/file/tip/foo?style=paper">latest</a></li>
147 <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li>
147 <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li>
148 <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li>
148 <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li>
149 <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li>
149 <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li>
150 <li><a href="/log/xyzzy/foo?style=paper">file log</a></li>
150 <li><a href="/log/xyzzy/foo?style=paper">file log</a></li>
151 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
151 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
152 view foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
152 view foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
153 <td class="author"><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td>
153 <td class="author"><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td>
154 <td class="author"><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td>
154 <td class="author"><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td>
155
155
156 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy/foo?style=paper' | egrep $REVLINKS
156 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy/foo?style=paper' | egrep $REVLINKS
157 href="/atom-log/tip/foo" title="Atom feed for test:foo" />
157 href="/atom-log/tip/foo" title="Atom feed for test:foo" />
158 href="/rss-log/tip/foo" title="RSS feed for test:foo" />
158 href="/rss-log/tip/foo" title="RSS feed for test:foo" />
159 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
159 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
160 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
160 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
161 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
161 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
162 <li><a href="/file/xyzzy?style=paper">browse</a></li>
162 <li><a href="/file/xyzzy?style=paper">browse</a></li>
163 <li><a href="/file/xyzzy/foo?style=paper">file</a></li>
163 <li><a href="/file/xyzzy/foo?style=paper">file</a></li>
164 <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li>
164 <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li>
165 <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li>
165 <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li>
166 <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li>
166 <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li>
167 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
167 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
168 <a href="/atom-log/tip/foo" title="subscribe to atom feed">
168 <a href="/atom-log/tip/foo" title="subscribe to atom feed">
169 log foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
169 log foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
170 <a href="/log/xyzzy/foo?revcount=30&style=paper">less</a>
170 <a href="/log/xyzzy/foo?revcount=30&style=paper">less</a>
171 <a href="/log/xyzzy/foo?revcount=120&style=paper">more</a>
171 <a href="/log/xyzzy/foo?revcount=120&style=paper">more</a>
172 | <a href="/log/43c799df6e75/foo?style=paper">(0)</a> <a href="/log/tip/foo?style=paper">tip</a> </div>
172 | <a href="/log/43c799df6e75/foo?style=paper">(0)</a> <a href="/log/tip/foo?style=paper">tip</a> </div>
173 <a href="/rev/a7c1559b7bba?style=paper">second</a>
173 <a href="/rev/a7c1559b7bba?style=paper">second</a>
174 <a href="/rev/43c799df6e75?style=paper">first</a>
174 <a href="/rev/43c799df6e75?style=paper">first</a>
175 <a href="/log/xyzzy/foo?revcount=30&style=paper">less</a>
175 <a href="/log/xyzzy/foo?revcount=30&style=paper">less</a>
176 <a href="/log/xyzzy/foo?revcount=120&style=paper">more</a>
176 <a href="/log/xyzzy/foo?revcount=120&style=paper">more</a>
177 | <a href="/log/43c799df6e75/foo?style=paper">(0)</a> <a href="/log/tip/foo?style=paper">tip</a>
177 | <a href="/log/43c799df6e75/foo?style=paper">(0)</a> <a href="/log/tip/foo?style=paper">tip</a>
178
178
179 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'annotate/xyzzy/foo?style=paper' | egrep $REVLINKS
179 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'annotate/xyzzy/foo?style=paper' | egrep $REVLINKS
180 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
180 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
181 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
181 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
182 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
182 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
183 <li><a href="/file/xyzzy/?style=paper">browse</a></li>
183 <li><a href="/file/xyzzy/?style=paper">browse</a></li>
184 <li><a href="/file/xyzzy/foo?style=paper">file</a></li>
184 <li><a href="/file/xyzzy/foo?style=paper">file</a></li>
185 <li><a href="/file/tip/foo?style=paper">latest</a></li>
185 <li><a href="/file/tip/foo?style=paper">latest</a></li>
186 <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li>
186 <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li>
187 <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li>
187 <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li>
188 <li><a href="/log/xyzzy/foo?style=paper">file log</a></li>
188 <li><a href="/log/xyzzy/foo?style=paper">file log</a></li>
189 <li><a href="/raw-annotate/xyzzy/foo">raw</a></li>
189 <li><a href="/raw-annotate/xyzzy/foo">raw</a></li>
190 annotate foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
190 annotate foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
191 <td class="author"><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td>
191 <td class="author"><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td>
192 <td class="author"><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td>
192 <td class="author"><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td>
193 <a href="/annotate/43c799df6e75/foo?style=paper#l1">
193 <a href="/annotate/43c799df6e75/foo?style=paper#l1">
194 <a href="/annotate/43c799df6e75/foo?style=paper#l1">
194 <a href="/diff/43c799df6e75/foo?style=paper">diff</a>
195 <a href="/diff/43c799df6e75/foo?style=paper">diff</a>
195 <a href="/rev/43c799df6e75?style=paper">changeset</a>
196 <a href="/rev/43c799df6e75?style=paper">changeset</a>
196 <a href="/annotate/a7c1559b7bba/foo?style=paper#l2">
197 <a href="/annotate/a7c1559b7bba/foo?style=paper#l2">
198 <a href="/annotate/a7c1559b7bba/foo?style=paper#l2">
197 <a href="/annotate/43c799df6e75/foo?style=paper">0</a></div>
199 <a href="/annotate/43c799df6e75/foo?style=paper">0</a></div>
198 <a href="/diff/a7c1559b7bba/foo?style=paper">diff</a>
200 <a href="/diff/a7c1559b7bba/foo?style=paper">diff</a>
199 <a href="/rev/a7c1559b7bba?style=paper">changeset</a>
201 <a href="/rev/a7c1559b7bba?style=paper">changeset</a>
200
202
201 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'diff/xyzzy/foo?style=paper' | egrep $REVLINKS
203 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'diff/xyzzy/foo?style=paper' | egrep $REVLINKS
202 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
204 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
203 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
205 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
204 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
206 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
205 <li><a href="/file/xyzzy?style=paper">browse</a></li>
207 <li><a href="/file/xyzzy?style=paper">browse</a></li>
206 <li><a href="/file/xyzzy/foo?style=paper">file</a></li>
208 <li><a href="/file/xyzzy/foo?style=paper">file</a></li>
207 <li><a href="/file/tip/foo?style=paper">latest</a></li>
209 <li><a href="/file/tip/foo?style=paper">latest</a></li>
208 <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li>
210 <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li>
209 <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li>
211 <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li>
210 <li><a href="/log/xyzzy/foo?style=paper">file log</a></li>
212 <li><a href="/log/xyzzy/foo?style=paper">file log</a></li>
211 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
213 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
212 diff foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
214 diff foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
213 <td><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td>
215 <td><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td>
214 <td><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td>
216 <td><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td>
215
217
216 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'comparison/xyzzy/foo?style=paper' | egrep $REVLINKS
218 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'comparison/xyzzy/foo?style=paper' | egrep $REVLINKS
217 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
219 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
218 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
220 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
219 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
221 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
220 <li><a href="/file/xyzzy?style=paper">browse</a></li>
222 <li><a href="/file/xyzzy?style=paper">browse</a></li>
221 <li><a href="/file/xyzzy/foo?style=paper">file</a></li>
223 <li><a href="/file/xyzzy/foo?style=paper">file</a></li>
222 <li><a href="/file/tip/foo?style=paper">latest</a></li>
224 <li><a href="/file/tip/foo?style=paper">latest</a></li>
223 <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li>
225 <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li>
224 <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li>
226 <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li>
225 <li><a href="/log/xyzzy/foo?style=paper">file log</a></li>
227 <li><a href="/log/xyzzy/foo?style=paper">file log</a></li>
226 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
228 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
227 comparison foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
229 comparison foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
228 <td><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td>
230 <td><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td>
229 <td><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td>
231 <td><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td>
230
232
231 (De)referencing symbolic revisions (coal)
233 (De)referencing symbolic revisions (coal)
232
234
233 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=coal' | egrep $REVLINKS
235 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=coal' | egrep $REVLINKS
234 <li><a href="/graph/tip?style=coal">graph</a></li>
236 <li><a href="/graph/tip?style=coal">graph</a></li>
235 <li><a href="/rev/tip?style=coal">changeset</a></li>
237 <li><a href="/rev/tip?style=coal">changeset</a></li>
236 <li><a href="/file/tip?style=coal">browse</a></li>
238 <li><a href="/file/tip?style=coal">browse</a></li>
237 <a href="/archive/tip.zip">zip</a>
239 <a href="/archive/tip.zip">zip</a>
238 <a href="/shortlog/tip?revcount=30&style=coal">less</a>
240 <a href="/shortlog/tip?revcount=30&style=coal">less</a>
239 <a href="/shortlog/tip?revcount=120&style=coal">more</a>
241 <a href="/shortlog/tip?revcount=120&style=coal">more</a>
240 | rev 2: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a>
242 | rev 2: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a>
241 <a href="/rev/9d8c40cba617?style=coal">third</a>
243 <a href="/rev/9d8c40cba617?style=coal">third</a>
242 <a href="/rev/a7c1559b7bba?style=coal">second</a>
244 <a href="/rev/a7c1559b7bba?style=coal">second</a>
243 <a href="/rev/43c799df6e75?style=coal">first</a>
245 <a href="/rev/43c799df6e75?style=coal">first</a>
244 <a href="/shortlog/tip?revcount=30&style=coal">less</a>
246 <a href="/shortlog/tip?revcount=30&style=coal">less</a>
245 <a href="/shortlog/tip?revcount=120&style=coal">more</a>
247 <a href="/shortlog/tip?revcount=120&style=coal">more</a>
246 | rev 2: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a>
248 | rev 2: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a>
247
249
248 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph?style=coal' | egrep $REVLINKS
250 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph?style=coal' | egrep $REVLINKS
249 <li><a href="/shortlog/tip?style=coal">log</a></li>
251 <li><a href="/shortlog/tip?style=coal">log</a></li>
250 <li><a href="/rev/tip?style=coal">changeset</a></li>
252 <li><a href="/rev/tip?style=coal">changeset</a></li>
251 <li><a href="/file/tip?style=coal">browse</a></li>
253 <li><a href="/file/tip?style=coal">browse</a></li>
252 <a href="/graph/tip?revcount=30&style=coal">less</a>
254 <a href="/graph/tip?revcount=30&style=coal">less</a>
253 <a href="/graph/tip?revcount=120&style=coal">more</a>
255 <a href="/graph/tip?revcount=120&style=coal">more</a>
254 | rev 2: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a>
256 | rev 2: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a>
255 <a href="/graph/tip?revcount=30&style=coal">less</a>
257 <a href="/graph/tip?revcount=30&style=coal">less</a>
256 <a href="/graph/tip?revcount=120&style=coal">more</a>
258 <a href="/graph/tip?revcount=120&style=coal">more</a>
257 | rev 2: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a>
259 | rev 2: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a>
258
260
259 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file?style=coal' | egrep $REVLINKS
261 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file?style=coal' | egrep $REVLINKS
260 <li><a href="/shortlog/tip?style=coal">log</a></li>
262 <li><a href="/shortlog/tip?style=coal">log</a></li>
261 <li><a href="/graph/tip?style=coal">graph</a></li>
263 <li><a href="/graph/tip?style=coal">graph</a></li>
262 <li><a href="/rev/tip?style=coal">changeset</a></li>
264 <li><a href="/rev/tip?style=coal">changeset</a></li>
263 <a href="/archive/tip.zip">zip</a>
265 <a href="/archive/tip.zip">zip</a>
264 directory / @ 2:<a href="/rev/9d8c40cba617?style=coal">9d8c40cba617</a>
266 directory / @ 2:<a href="/rev/9d8c40cba617?style=coal">9d8c40cba617</a>
265 <td class="name"><a href="/file/tip/?style=coal">[up]</a></td>
267 <td class="name"><a href="/file/tip/?style=coal">[up]</a></td>
266 <a href="/file/tip/dir?style=coal">
268 <a href="/file/tip/dir?style=coal">
267 <a href="/file/tip/dir/?style=coal">
269 <a href="/file/tip/dir/?style=coal">
268 <a href="/file/tip/foo?style=coal">
270 <a href="/file/tip/foo?style=coal">
269
271
270 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'branches?style=coal' | egrep $REVLINKS
272 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'branches?style=coal' | egrep $REVLINKS
271 <a href="/shortlog/default?style=coal" class="open">
273 <a href="/shortlog/default?style=coal" class="open">
272 <a href="/shortlog/9d8c40cba617?style=coal" class="open">
274 <a href="/shortlog/9d8c40cba617?style=coal" class="open">
273
275
274 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'tags?style=coal' | egrep $REVLINKS
276 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'tags?style=coal' | egrep $REVLINKS
275 <a href="/rev/tip?style=coal">
277 <a href="/rev/tip?style=coal">
276 <a href="/rev/9d8c40cba617?style=coal">
278 <a href="/rev/9d8c40cba617?style=coal">
277
279
278 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'bookmarks?style=coal' | egrep $REVLINKS
280 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'bookmarks?style=coal' | egrep $REVLINKS
279 <a href="/rev/xyzzy?style=coal">
281 <a href="/rev/xyzzy?style=coal">
280 <a href="/rev/a7c1559b7bba?style=coal">
282 <a href="/rev/a7c1559b7bba?style=coal">
281
283
282 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=coal&rev=all()' | egrep $REVLINKS
284 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=coal&rev=all()' | egrep $REVLINKS
283 <a href="/rev/9d8c40cba617?style=coal">third</a>
285 <a href="/rev/9d8c40cba617?style=coal">third</a>
284 <a href="/rev/a7c1559b7bba?style=coal">second</a>
286 <a href="/rev/a7c1559b7bba?style=coal">second</a>
285 <a href="/rev/43c799df6e75?style=coal">first</a>
287 <a href="/rev/43c799df6e75?style=coal">first</a>
286
288
287 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'rev/xyzzy?style=coal' | egrep $REVLINKS
289 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'rev/xyzzy?style=coal' | egrep $REVLINKS
288 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
290 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
289 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
291 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
290 <li><a href="/raw-rev/xyzzy?style=coal">raw</a></li>
292 <li><a href="/raw-rev/xyzzy?style=coal">raw</a></li>
291 <li><a href="/file/xyzzy?style=coal">browse</a></li>
293 <li><a href="/file/xyzzy?style=coal">browse</a></li>
292 <a href="/archive/xyzzy.zip">zip</a>
294 <a href="/archive/xyzzy.zip">zip</a>
293 changeset 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
295 changeset 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
294 <td class="author"><a href="/rev/43c799df6e75?style=coal">43c799df6e75</a> </td>
296 <td class="author"><a href="/rev/43c799df6e75?style=coal">43c799df6e75</a> </td>
295 <td class="author"> <a href="/rev/9d8c40cba617?style=coal">9d8c40cba617</a></td>
297 <td class="author"> <a href="/rev/9d8c40cba617?style=coal">9d8c40cba617</a></td>
296 <td class="files"><a href="/file/a7c1559b7bba/foo?style=coal">foo</a> </td>
298 <td class="files"><a href="/file/a7c1559b7bba/foo?style=coal">foo</a> </td>
297
299
298 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog/xyzzy?style=coal' | egrep $REVLINKS
300 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog/xyzzy?style=coal' | egrep $REVLINKS
299 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
301 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
300 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
302 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
301 <li><a href="/file/xyzzy?style=coal">browse</a></li>
303 <li><a href="/file/xyzzy?style=coal">browse</a></li>
302 <a href="/archive/xyzzy.zip">zip</a>
304 <a href="/archive/xyzzy.zip">zip</a>
303 <a href="/shortlog/xyzzy?revcount=30&style=coal">less</a>
305 <a href="/shortlog/xyzzy?revcount=30&style=coal">less</a>
304 <a href="/shortlog/xyzzy?revcount=120&style=coal">more</a>
306 <a href="/shortlog/xyzzy?revcount=120&style=coal">more</a>
305 | rev 1: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a>
307 | rev 1: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a>
306 <a href="/rev/a7c1559b7bba?style=coal">second</a>
308 <a href="/rev/a7c1559b7bba?style=coal">second</a>
307 <a href="/rev/43c799df6e75?style=coal">first</a>
309 <a href="/rev/43c799df6e75?style=coal">first</a>
308 <a href="/shortlog/xyzzy?revcount=30&style=coal">less</a>
310 <a href="/shortlog/xyzzy?revcount=30&style=coal">less</a>
309 <a href="/shortlog/xyzzy?revcount=120&style=coal">more</a>
311 <a href="/shortlog/xyzzy?revcount=120&style=coal">more</a>
310 | rev 1: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a>
312 | rev 1: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a>
311
313
312 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph/xyzzy?style=coal' | egrep $REVLINKS
314 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph/xyzzy?style=coal' | egrep $REVLINKS
313 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
315 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
314 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
316 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
315 <li><a href="/file/xyzzy?style=coal">browse</a></li>
317 <li><a href="/file/xyzzy?style=coal">browse</a></li>
316 <a href="/graph/xyzzy?revcount=30&style=coal">less</a>
318 <a href="/graph/xyzzy?revcount=30&style=coal">less</a>
317 <a href="/graph/xyzzy?revcount=120&style=coal">more</a>
319 <a href="/graph/xyzzy?revcount=120&style=coal">more</a>
318 | rev 1: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a>
320 | rev 1: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a>
319 <a href="/graph/xyzzy?revcount=30&style=coal">less</a>
321 <a href="/graph/xyzzy?revcount=30&style=coal">less</a>
320 <a href="/graph/xyzzy?revcount=120&style=coal">more</a>
322 <a href="/graph/xyzzy?revcount=120&style=coal">more</a>
321 | rev 1: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a>
323 | rev 1: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a>
322
324
323 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy?style=coal' | egrep $REVLINKS
325 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy?style=coal' | egrep $REVLINKS
324 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
326 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
325 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
327 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
326 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
328 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
327 <a href="/archive/xyzzy.zip">zip</a>
329 <a href="/archive/xyzzy.zip">zip</a>
328 directory / @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
330 directory / @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
329 <td class="name"><a href="/file/xyzzy/?style=coal">[up]</a></td>
331 <td class="name"><a href="/file/xyzzy/?style=coal">[up]</a></td>
330 <a href="/file/xyzzy/dir?style=coal">
332 <a href="/file/xyzzy/dir?style=coal">
331 <a href="/file/xyzzy/dir/?style=coal">
333 <a href="/file/xyzzy/dir/?style=coal">
332 <a href="/file/xyzzy/foo?style=coal">
334 <a href="/file/xyzzy/foo?style=coal">
333
335
334 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy/foo?style=coal' | egrep $REVLINKS
336 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy/foo?style=coal' | egrep $REVLINKS
335 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
337 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
336 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
338 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
337 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
339 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
338 <li><a href="/file/xyzzy/?style=coal">browse</a></li>
340 <li><a href="/file/xyzzy/?style=coal">browse</a></li>
339 <li><a href="/file/tip/foo?style=coal">latest</a></li>
341 <li><a href="/file/tip/foo?style=coal">latest</a></li>
340 <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li>
342 <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li>
341 <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li>
343 <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li>
342 <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li>
344 <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li>
343 <li><a href="/log/xyzzy/foo?style=coal">file log</a></li>
345 <li><a href="/log/xyzzy/foo?style=coal">file log</a></li>
344 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
346 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
345 view foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
347 view foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
346 <td class="author"><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td>
348 <td class="author"><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td>
347 <td class="author"><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td>
349 <td class="author"><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td>
348
350
349 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy/foo?style=coal' | egrep $REVLINKS
351 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy/foo?style=coal' | egrep $REVLINKS
350 href="/atom-log/tip/foo" title="Atom feed for test:foo" />
352 href="/atom-log/tip/foo" title="Atom feed for test:foo" />
351 href="/rss-log/tip/foo" title="RSS feed for test:foo" />
353 href="/rss-log/tip/foo" title="RSS feed for test:foo" />
352 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
354 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
353 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
355 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
354 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
356 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
355 <li><a href="/file/xyzzy?style=coal">browse</a></li>
357 <li><a href="/file/xyzzy?style=coal">browse</a></li>
356 <li><a href="/file/xyzzy/foo?style=coal">file</a></li>
358 <li><a href="/file/xyzzy/foo?style=coal">file</a></li>
357 <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li>
359 <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li>
358 <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li>
360 <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li>
359 <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li>
361 <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li>
360 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
362 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
361 <a href="/atom-log/tip/foo" title="subscribe to atom feed">
363 <a href="/atom-log/tip/foo" title="subscribe to atom feed">
362 log foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
364 log foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
363 <a href="/log/xyzzy/foo?revcount=30&style=coal">less</a>
365 <a href="/log/xyzzy/foo?revcount=30&style=coal">less</a>
364 <a href="/log/xyzzy/foo?revcount=120&style=coal">more</a>
366 <a href="/log/xyzzy/foo?revcount=120&style=coal">more</a>
365 | <a href="/log/43c799df6e75/foo?style=coal">(0)</a> <a href="/log/tip/foo?style=coal">tip</a> </div>
367 | <a href="/log/43c799df6e75/foo?style=coal">(0)</a> <a href="/log/tip/foo?style=coal">tip</a> </div>
366 <a href="/rev/a7c1559b7bba?style=coal">second</a>
368 <a href="/rev/a7c1559b7bba?style=coal">second</a>
367 <a href="/rev/43c799df6e75?style=coal">first</a>
369 <a href="/rev/43c799df6e75?style=coal">first</a>
368 <a href="/log/xyzzy/foo?revcount=30&style=coal">less</a>
370 <a href="/log/xyzzy/foo?revcount=30&style=coal">less</a>
369 <a href="/log/xyzzy/foo?revcount=120&style=coal">more</a>
371 <a href="/log/xyzzy/foo?revcount=120&style=coal">more</a>
370 | <a href="/log/43c799df6e75/foo?style=coal">(0)</a> <a href="/log/tip/foo?style=coal">tip</a>
372 | <a href="/log/43c799df6e75/foo?style=coal">(0)</a> <a href="/log/tip/foo?style=coal">tip</a>
371
373
372 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'annotate/xyzzy/foo?style=coal' | egrep $REVLINKS
374 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'annotate/xyzzy/foo?style=coal' | egrep $REVLINKS
373 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
375 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
374 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
376 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
375 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
377 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
376 <li><a href="/file/xyzzy/?style=coal">browse</a></li>
378 <li><a href="/file/xyzzy/?style=coal">browse</a></li>
377 <li><a href="/file/xyzzy/foo?style=coal">file</a></li>
379 <li><a href="/file/xyzzy/foo?style=coal">file</a></li>
378 <li><a href="/file/tip/foo?style=coal">latest</a></li>
380 <li><a href="/file/tip/foo?style=coal">latest</a></li>
379 <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li>
381 <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li>
380 <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li>
382 <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li>
381 <li><a href="/log/xyzzy/foo?style=coal">file log</a></li>
383 <li><a href="/log/xyzzy/foo?style=coal">file log</a></li>
382 <li><a href="/raw-annotate/xyzzy/foo">raw</a></li>
384 <li><a href="/raw-annotate/xyzzy/foo">raw</a></li>
383 annotate foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
385 annotate foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
384 <td class="author"><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td>
386 <td class="author"><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td>
385 <td class="author"><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td>
387 <td class="author"><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td>
386 <a href="/annotate/43c799df6e75/foo?style=coal#l1">
388 <a href="/annotate/43c799df6e75/foo?style=coal#l1">
389 <a href="/annotate/43c799df6e75/foo?style=coal#l1">
387 <a href="/diff/43c799df6e75/foo?style=coal">diff</a>
390 <a href="/diff/43c799df6e75/foo?style=coal">diff</a>
388 <a href="/rev/43c799df6e75?style=coal">changeset</a>
391 <a href="/rev/43c799df6e75?style=coal">changeset</a>
389 <a href="/annotate/a7c1559b7bba/foo?style=coal#l2">
392 <a href="/annotate/a7c1559b7bba/foo?style=coal#l2">
393 <a href="/annotate/a7c1559b7bba/foo?style=coal#l2">
390 <a href="/annotate/43c799df6e75/foo?style=coal">0</a></div>
394 <a href="/annotate/43c799df6e75/foo?style=coal">0</a></div>
391 <a href="/diff/a7c1559b7bba/foo?style=coal">diff</a>
395 <a href="/diff/a7c1559b7bba/foo?style=coal">diff</a>
392 <a href="/rev/a7c1559b7bba?style=coal">changeset</a>
396 <a href="/rev/a7c1559b7bba?style=coal">changeset</a>
393
397
394 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'diff/xyzzy/foo?style=coal' | egrep $REVLINKS
398 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'diff/xyzzy/foo?style=coal' | egrep $REVLINKS
395 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
399 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
396 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
400 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
397 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
401 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
398 <li><a href="/file/xyzzy?style=coal">browse</a></li>
402 <li><a href="/file/xyzzy?style=coal">browse</a></li>
399 <li><a href="/file/xyzzy/foo?style=coal">file</a></li>
403 <li><a href="/file/xyzzy/foo?style=coal">file</a></li>
400 <li><a href="/file/tip/foo?style=coal">latest</a></li>
404 <li><a href="/file/tip/foo?style=coal">latest</a></li>
401 <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li>
405 <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li>
402 <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li>
406 <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li>
403 <li><a href="/log/xyzzy/foo?style=coal">file log</a></li>
407 <li><a href="/log/xyzzy/foo?style=coal">file log</a></li>
404 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
408 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
405 diff foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
409 diff foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
406 <td><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td>
410 <td><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td>
407 <td><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td>
411 <td><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td>
408
412
409 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'comparison/xyzzy/foo?style=coal' | egrep $REVLINKS
413 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'comparison/xyzzy/foo?style=coal' | egrep $REVLINKS
410 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
414 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
411 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
415 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
412 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
416 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
413 <li><a href="/file/xyzzy?style=coal">browse</a></li>
417 <li><a href="/file/xyzzy?style=coal">browse</a></li>
414 <li><a href="/file/xyzzy/foo?style=coal">file</a></li>
418 <li><a href="/file/xyzzy/foo?style=coal">file</a></li>
415 <li><a href="/file/tip/foo?style=coal">latest</a></li>
419 <li><a href="/file/tip/foo?style=coal">latest</a></li>
416 <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li>
420 <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li>
417 <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li>
421 <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li>
418 <li><a href="/log/xyzzy/foo?style=coal">file log</a></li>
422 <li><a href="/log/xyzzy/foo?style=coal">file log</a></li>
419 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
423 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
420 comparison foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
424 comparison foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
421 <td><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td>
425 <td><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td>
422 <td><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td>
426 <td><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td>
423
427
424 (De)referencing symbolic revisions (gitweb)
428 (De)referencing symbolic revisions (gitweb)
425
429
426 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'summary?style=gitweb' | egrep $REVLINKS
430 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'summary?style=gitweb' | egrep $REVLINKS
427 <a href="/file?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a> |
431 <a href="/file?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a> |
428 <a class="list" href="/rev/9d8c40cba617?style=gitweb">
432 <a class="list" href="/rev/9d8c40cba617?style=gitweb">
429 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a> |
433 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a> |
430 <a href="/file/9d8c40cba617?style=gitweb">files</a>
434 <a href="/file/9d8c40cba617?style=gitweb">files</a>
431 <a class="list" href="/rev/a7c1559b7bba?style=gitweb">
435 <a class="list" href="/rev/a7c1559b7bba?style=gitweb">
432 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
436 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
433 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
437 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
434 <a class="list" href="/rev/43c799df6e75?style=gitweb">
438 <a class="list" href="/rev/43c799df6e75?style=gitweb">
435 <a href="/rev/43c799df6e75?style=gitweb">changeset</a> |
439 <a href="/rev/43c799df6e75?style=gitweb">changeset</a> |
436 <a href="/file/43c799df6e75?style=gitweb">files</a>
440 <a href="/file/43c799df6e75?style=gitweb">files</a>
437 <td><a class="list" href="/rev/xyzzy?style=gitweb"><b>xyzzy</b></a></td>
441 <td><a class="list" href="/rev/xyzzy?style=gitweb"><b>xyzzy</b></a></td>
438 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
442 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
439 <a href="/log/a7c1559b7bba?style=gitweb">changelog</a> |
443 <a href="/log/a7c1559b7bba?style=gitweb">changelog</a> |
440 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
444 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
441 <td class="open"><a class="list" href="/shortlog/default?style=gitweb"><b>default</b></a></td>
445 <td class="open"><a class="list" href="/shortlog/default?style=gitweb"><b>default</b></a></td>
442 <a href="/changeset/9d8c40cba617?style=gitweb">changeset</a> |
446 <a href="/changeset/9d8c40cba617?style=gitweb">changeset</a> |
443 <a href="/log/9d8c40cba617?style=gitweb">changelog</a> |
447 <a href="/log/9d8c40cba617?style=gitweb">changelog</a> |
444 <a href="/file/9d8c40cba617?style=gitweb">files</a>
448 <a href="/file/9d8c40cba617?style=gitweb">files</a>
445
449
446 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=gitweb' | egrep $REVLINKS
450 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=gitweb' | egrep $REVLINKS
447 <a href="/log/tip?style=gitweb">changelog</a> |
451 <a href="/log/tip?style=gitweb">changelog</a> |
448 <a href="/graph/tip?style=gitweb">graph</a> |
452 <a href="/graph/tip?style=gitweb">graph</a> |
449 <a href="/file/tip?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a> |
453 <a href="/file/tip?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a> |
450 <br/><a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a> <br/>
454 <br/><a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a> <br/>
451 <a class="list" href="/rev/9d8c40cba617?style=gitweb">
455 <a class="list" href="/rev/9d8c40cba617?style=gitweb">
452 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a> |
456 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a> |
453 <a href="/file/9d8c40cba617?style=gitweb">files</a>
457 <a href="/file/9d8c40cba617?style=gitweb">files</a>
454 <a class="list" href="/rev/a7c1559b7bba?style=gitweb">
458 <a class="list" href="/rev/a7c1559b7bba?style=gitweb">
455 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
459 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
456 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
460 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
457 <a class="list" href="/rev/43c799df6e75?style=gitweb">
461 <a class="list" href="/rev/43c799df6e75?style=gitweb">
458 <a href="/rev/43c799df6e75?style=gitweb">changeset</a> |
462 <a href="/rev/43c799df6e75?style=gitweb">changeset</a> |
459 <a href="/file/43c799df6e75?style=gitweb">files</a>
463 <a href="/file/43c799df6e75?style=gitweb">files</a>
460 <a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a>
464 <a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a>
461
465
462 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log?style=gitweb' | egrep $REVLINKS
466 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log?style=gitweb' | egrep $REVLINKS
463 <a href="/shortlog/tip?style=gitweb">shortlog</a> |
467 <a href="/shortlog/tip?style=gitweb">shortlog</a> |
464 <a href="/graph/tip?style=gitweb">graph</a> |
468 <a href="/graph/tip?style=gitweb">graph</a> |
465 <a href="/file/tip?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a> |
469 <a href="/file/tip?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a> |
466 <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/>
470 <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/>
467 <a class="title" href="/rev/9d8c40cba617?style=gitweb"><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>third<span class="logtags"> <span class="branchtag" title="default">default</span> <span class="tagtag" title="tip">tip</span> </span></a>
471 <a class="title" href="/rev/9d8c40cba617?style=gitweb"><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>third<span class="logtags"> <span class="branchtag" title="default">default</span> <span class="tagtag" title="tip">tip</span> </span></a>
468 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a><br/>
472 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a><br/>
469 <a class="title" href="/rev/a7c1559b7bba?style=gitweb"><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>second<span class="logtags"> <span class="bookmarktag" title="xyzzy">xyzzy</span> </span></a>
473 <a class="title" href="/rev/a7c1559b7bba?style=gitweb"><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>second<span class="logtags"> <span class="bookmarktag" title="xyzzy">xyzzy</span> </span></a>
470 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a><br/>
474 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a><br/>
471 <a class="title" href="/rev/43c799df6e75?style=gitweb"><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>first<span class="logtags"> </span></a>
475 <a class="title" href="/rev/43c799df6e75?style=gitweb"><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>first<span class="logtags"> </span></a>
472 <a href="/rev/43c799df6e75?style=gitweb">changeset</a><br/>
476 <a href="/rev/43c799df6e75?style=gitweb">changeset</a><br/>
473 <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/>
477 <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/>
474
478
475 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph?style=gitweb' | egrep $REVLINKS
479 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph?style=gitweb' | egrep $REVLINKS
476 <a href="/shortlog/tip?style=gitweb">shortlog</a> |
480 <a href="/shortlog/tip?style=gitweb">shortlog</a> |
477 <a href="/log/tip?style=gitweb">changelog</a> |
481 <a href="/log/tip?style=gitweb">changelog</a> |
478 <a href="/file/tip?style=gitweb">files</a> |
482 <a href="/file/tip?style=gitweb">files</a> |
479 <a href="/graph/tip?revcount=30&style=gitweb">less</a>
483 <a href="/graph/tip?revcount=30&style=gitweb">less</a>
480 <a href="/graph/tip?revcount=120&style=gitweb">more</a>
484 <a href="/graph/tip?revcount=120&style=gitweb">more</a>
481 | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a> <br/>
485 | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a> <br/>
482 <a href="/graph/tip?revcount=30&style=gitweb">less</a>
486 <a href="/graph/tip?revcount=30&style=gitweb">less</a>
483 <a href="/graph/tip?revcount=120&style=gitweb">more</a>
487 <a href="/graph/tip?revcount=120&style=gitweb">more</a>
484 | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a>
488 | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a>
485
489
486 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'tags?style=gitweb' | egrep $REVLINKS
490 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'tags?style=gitweb' | egrep $REVLINKS
487 <td><a class="list" href="/rev/tip?style=gitweb"><b>tip</b></a></td>
491 <td><a class="list" href="/rev/tip?style=gitweb"><b>tip</b></a></td>
488 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a> |
492 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a> |
489 <a href="/log/9d8c40cba617?style=gitweb">changelog</a> |
493 <a href="/log/9d8c40cba617?style=gitweb">changelog</a> |
490 <a href="/file/9d8c40cba617?style=gitweb">files</a>
494 <a href="/file/9d8c40cba617?style=gitweb">files</a>
491
495
492 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'bookmarks?style=gitweb' | egrep $REVLINKS
496 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'bookmarks?style=gitweb' | egrep $REVLINKS
493 <td><a class="list" href="/rev/xyzzy?style=gitweb"><b>xyzzy</b></a></td>
497 <td><a class="list" href="/rev/xyzzy?style=gitweb"><b>xyzzy</b></a></td>
494 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
498 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
495 <a href="/log/a7c1559b7bba?style=gitweb">changelog</a> |
499 <a href="/log/a7c1559b7bba?style=gitweb">changelog</a> |
496 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
500 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
497
501
498 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'branches?style=gitweb' | egrep $REVLINKS
502 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'branches?style=gitweb' | egrep $REVLINKS
499 <td class="open"><a class="list" href="/shortlog/default?style=gitweb"><b>default</b></a></td>
503 <td class="open"><a class="list" href="/shortlog/default?style=gitweb"><b>default</b></a></td>
500 <a href="/changeset/9d8c40cba617?style=gitweb">changeset</a> |
504 <a href="/changeset/9d8c40cba617?style=gitweb">changeset</a> |
501 <a href="/log/9d8c40cba617?style=gitweb">changelog</a> |
505 <a href="/log/9d8c40cba617?style=gitweb">changelog</a> |
502 <a href="/file/9d8c40cba617?style=gitweb">files</a>
506 <a href="/file/9d8c40cba617?style=gitweb">files</a>
503
507
504 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file?style=gitweb' | egrep $REVLINKS
508 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file?style=gitweb' | egrep $REVLINKS
505 <a href="/rev/tip?style=gitweb">changeset</a> | <a href="/archive/tip.zip">zip</a> |
509 <a href="/rev/tip?style=gitweb">changeset</a> | <a href="/archive/tip.zip">zip</a> |
506 <td><a href="/file/tip/?style=gitweb">[up]</a></td>
510 <td><a href="/file/tip/?style=gitweb">[up]</a></td>
507 <a href="/file/tip/dir?style=gitweb">dir</a>
511 <a href="/file/tip/dir?style=gitweb">dir</a>
508 <a href="/file/tip/dir/?style=gitweb"></a>
512 <a href="/file/tip/dir/?style=gitweb"></a>
509 <a href="/file/tip/dir?style=gitweb">files</a>
513 <a href="/file/tip/dir?style=gitweb">files</a>
510 <a class="list" href="/file/tip/foo?style=gitweb">foo</a>
514 <a class="list" href="/file/tip/foo?style=gitweb">foo</a>
511 <a href="/file/tip/foo?style=gitweb">file</a> |
515 <a href="/file/tip/foo?style=gitweb">file</a> |
512 <a href="/log/tip/foo?style=gitweb">revisions</a> |
516 <a href="/log/tip/foo?style=gitweb">revisions</a> |
513 <a href="/annotate/tip/foo?style=gitweb">annotate</a>
517 <a href="/annotate/tip/foo?style=gitweb">annotate</a>
514
518
515 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=gitweb&rev=all()' | egrep $REVLINKS
519 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=gitweb&rev=all()' | egrep $REVLINKS
516 <a href="/file?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a>
520 <a href="/file?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a>
517 <a class="title" href="/rev/9d8c40cba617?style=gitweb"><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>third<span class="logtags"> <span class="branchtag" title="default">default</span> <span class="tagtag" title="tip">tip</span> </span></a>
521 <a class="title" href="/rev/9d8c40cba617?style=gitweb"><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>third<span class="logtags"> <span class="branchtag" title="default">default</span> <span class="tagtag" title="tip">tip</span> </span></a>
518 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a><br/>
522 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a><br/>
519 <a class="title" href="/rev/a7c1559b7bba?style=gitweb"><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>second<span class="logtags"> <span class="bookmarktag" title="xyzzy">xyzzy</span> </span></a>
523 <a class="title" href="/rev/a7c1559b7bba?style=gitweb"><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>second<span class="logtags"> <span class="bookmarktag" title="xyzzy">xyzzy</span> </span></a>
520 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a><br/>
524 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a><br/>
521 <a class="title" href="/rev/43c799df6e75?style=gitweb"><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>first<span class="logtags"> </span></a>
525 <a class="title" href="/rev/43c799df6e75?style=gitweb"><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>first<span class="logtags"> </span></a>
522 <a href="/rev/43c799df6e75?style=gitweb">changeset</a><br/>
526 <a href="/rev/43c799df6e75?style=gitweb">changeset</a><br/>
523
527
524 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'rev/xyzzy?style=gitweb' | egrep $REVLINKS
528 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'rev/xyzzy?style=gitweb' | egrep $REVLINKS
525 <a href="/shortlog/xyzzy?style=gitweb">shortlog</a> |
529 <a href="/shortlog/xyzzy?style=gitweb">shortlog</a> |
526 <a href="/log/xyzzy?style=gitweb">changelog</a> |
530 <a href="/log/xyzzy?style=gitweb">changelog</a> |
527 <a href="/graph/xyzzy?style=gitweb">graph</a> |
531 <a href="/graph/xyzzy?style=gitweb">graph</a> |
528 <a href="/file/xyzzy?style=gitweb">files</a> |
532 <a href="/file/xyzzy?style=gitweb">files</a> |
529 <a href="/raw-rev/xyzzy">raw</a> | <a href="/archive/xyzzy.zip">zip</a> |
533 <a href="/raw-rev/xyzzy">raw</a> | <a href="/archive/xyzzy.zip">zip</a> |
530 <a class="title" href="/raw-rev/a7c1559b7bba">second <span class="logtags"><span class="bookmarktag" title="xyzzy">xyzzy</span> </span></a>
534 <a class="title" href="/raw-rev/a7c1559b7bba">second <span class="logtags"><span class="bookmarktag" title="xyzzy">xyzzy</span> </span></a>
531 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
535 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
532 <a class="list" href="/rev/43c799df6e75?style=gitweb">43c799df6e75</a>
536 <a class="list" href="/rev/43c799df6e75?style=gitweb">43c799df6e75</a>
533 <a class="list" href="/rev/9d8c40cba617?style=gitweb">9d8c40cba617</a>
537 <a class="list" href="/rev/9d8c40cba617?style=gitweb">9d8c40cba617</a>
534 <td><a class="list" href="/diff/a7c1559b7bba/foo?style=gitweb">foo</a></td>
538 <td><a class="list" href="/diff/a7c1559b7bba/foo?style=gitweb">foo</a></td>
535 <a href="/file/a7c1559b7bba/foo?style=gitweb">file</a> |
539 <a href="/file/a7c1559b7bba/foo?style=gitweb">file</a> |
536 <a href="/annotate/a7c1559b7bba/foo?style=gitweb">annotate</a> |
540 <a href="/annotate/a7c1559b7bba/foo?style=gitweb">annotate</a> |
537 <a href="/diff/a7c1559b7bba/foo?style=gitweb">diff</a> |
541 <a href="/diff/a7c1559b7bba/foo?style=gitweb">diff</a> |
538 <a href="/comparison/a7c1559b7bba/foo?style=gitweb">comparison</a> |
542 <a href="/comparison/a7c1559b7bba/foo?style=gitweb">comparison</a> |
539 <a href="/log/a7c1559b7bba/foo?style=gitweb">revisions</a>
543 <a href="/log/a7c1559b7bba/foo?style=gitweb">revisions</a>
540
544
541 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog/xyzzy?style=gitweb' | egrep $REVLINKS
545 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog/xyzzy?style=gitweb' | egrep $REVLINKS
542 <a href="/log/xyzzy?style=gitweb">changelog</a> |
546 <a href="/log/xyzzy?style=gitweb">changelog</a> |
543 <a href="/graph/xyzzy?style=gitweb">graph</a> |
547 <a href="/graph/xyzzy?style=gitweb">graph</a> |
544 <a href="/file/xyzzy?style=gitweb">files</a> | <a href="/archive/xyzzy.zip">zip</a> |
548 <a href="/file/xyzzy?style=gitweb">files</a> | <a href="/archive/xyzzy.zip">zip</a> |
545 <br/><a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a> <br/>
549 <br/><a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a> <br/>
546 <a class="list" href="/rev/a7c1559b7bba?style=gitweb">
550 <a class="list" href="/rev/a7c1559b7bba?style=gitweb">
547 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
551 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
548 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
552 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
549 <a class="list" href="/rev/43c799df6e75?style=gitweb">
553 <a class="list" href="/rev/43c799df6e75?style=gitweb">
550 <a href="/rev/43c799df6e75?style=gitweb">changeset</a> |
554 <a href="/rev/43c799df6e75?style=gitweb">changeset</a> |
551 <a href="/file/43c799df6e75?style=gitweb">files</a>
555 <a href="/file/43c799df6e75?style=gitweb">files</a>
552 <a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a>
556 <a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a>
553
557
554 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy?style=gitweb' | egrep $REVLINKS
558 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy?style=gitweb' | egrep $REVLINKS
555 <a href="/shortlog/xyzzy?style=gitweb">shortlog</a> |
559 <a href="/shortlog/xyzzy?style=gitweb">shortlog</a> |
556 <a href="/graph/xyzzy?style=gitweb">graph</a> |
560 <a href="/graph/xyzzy?style=gitweb">graph</a> |
557 <a href="/file/xyzzy?style=gitweb">files</a> | <a href="/archive/xyzzy.zip">zip</a> |
561 <a href="/file/xyzzy?style=gitweb">files</a> | <a href="/archive/xyzzy.zip">zip</a> |
558 <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/>
562 <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/>
559 <a class="title" href="/rev/a7c1559b7bba?style=gitweb"><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>second<span class="logtags"> <span class="bookmarktag" title="xyzzy">xyzzy</span> </span></a>
563 <a class="title" href="/rev/a7c1559b7bba?style=gitweb"><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>second<span class="logtags"> <span class="bookmarktag" title="xyzzy">xyzzy</span> </span></a>
560 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a><br/>
564 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a><br/>
561 <a class="title" href="/rev/43c799df6e75?style=gitweb"><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>first<span class="logtags"> </span></a>
565 <a class="title" href="/rev/43c799df6e75?style=gitweb"><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>first<span class="logtags"> </span></a>
562 <a href="/rev/43c799df6e75?style=gitweb">changeset</a><br/>
566 <a href="/rev/43c799df6e75?style=gitweb">changeset</a><br/>
563 <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/>
567 <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/>
564
568
565 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph/xyzzy?style=gitweb' | egrep $REVLINKS
569 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph/xyzzy?style=gitweb' | egrep $REVLINKS
566 <a href="/shortlog/xyzzy?style=gitweb">shortlog</a> |
570 <a href="/shortlog/xyzzy?style=gitweb">shortlog</a> |
567 <a href="/log/xyzzy?style=gitweb">changelog</a> |
571 <a href="/log/xyzzy?style=gitweb">changelog</a> |
568 <a href="/file/xyzzy?style=gitweb">files</a> |
572 <a href="/file/xyzzy?style=gitweb">files</a> |
569 <a href="/graph/xyzzy?revcount=30&style=gitweb">less</a>
573 <a href="/graph/xyzzy?revcount=30&style=gitweb">less</a>
570 <a href="/graph/xyzzy?revcount=120&style=gitweb">more</a>
574 <a href="/graph/xyzzy?revcount=120&style=gitweb">more</a>
571 | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a> <br/>
575 | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a> <br/>
572 <a href="/graph/xyzzy?revcount=30&style=gitweb">less</a>
576 <a href="/graph/xyzzy?revcount=30&style=gitweb">less</a>
573 <a href="/graph/xyzzy?revcount=120&style=gitweb">more</a>
577 <a href="/graph/xyzzy?revcount=120&style=gitweb">more</a>
574 | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a>
578 | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a>
575
579
576 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy?style=gitweb' | egrep $REVLINKS
580 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy?style=gitweb' | egrep $REVLINKS
577 <a href="/rev/xyzzy?style=gitweb">changeset</a> | <a href="/archive/xyzzy.zip">zip</a> |
581 <a href="/rev/xyzzy?style=gitweb">changeset</a> | <a href="/archive/xyzzy.zip">zip</a> |
578 <td><a href="/file/xyzzy/?style=gitweb">[up]</a></td>
582 <td><a href="/file/xyzzy/?style=gitweb">[up]</a></td>
579 <a href="/file/xyzzy/dir?style=gitweb">dir</a>
583 <a href="/file/xyzzy/dir?style=gitweb">dir</a>
580 <a href="/file/xyzzy/dir/?style=gitweb"></a>
584 <a href="/file/xyzzy/dir/?style=gitweb"></a>
581 <a href="/file/xyzzy/dir?style=gitweb">files</a>
585 <a href="/file/xyzzy/dir?style=gitweb">files</a>
582 <a class="list" href="/file/xyzzy/foo?style=gitweb">foo</a>
586 <a class="list" href="/file/xyzzy/foo?style=gitweb">foo</a>
583 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
587 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
584 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
588 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
585 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a>
589 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a>
586
590
587 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy/foo?style=gitweb' | egrep $REVLINKS
591 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy/foo?style=gitweb' | egrep $REVLINKS
588 <a href="/file/xyzzy/?style=gitweb">files</a> |
592 <a href="/file/xyzzy/?style=gitweb">files</a> |
589 <a href="/rev/xyzzy?style=gitweb">changeset</a> |
593 <a href="/rev/xyzzy?style=gitweb">changeset</a> |
590 <a href="/file/tip/foo?style=gitweb">latest</a> |
594 <a href="/file/tip/foo?style=gitweb">latest</a> |
591 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
595 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
592 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> |
596 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> |
593 <a href="/diff/xyzzy/foo?style=gitweb">diff</a> |
597 <a href="/diff/xyzzy/foo?style=gitweb">diff</a> |
594 <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> |
598 <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> |
595 <a href="/raw-file/xyzzy/foo">raw</a> |
599 <a href="/raw-file/xyzzy/foo">raw</a> |
596 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
600 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
597 <a class="list" href="/file/43c799df6e75/foo?style=gitweb">
601 <a class="list" href="/file/43c799df6e75/foo?style=gitweb">
598 <a class="list" href="/file/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a></td>
602 <a class="list" href="/file/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a></td>
599
603
600 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy/foo?style=gitweb' | egrep $REVLINKS
604 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy/foo?style=gitweb' | egrep $REVLINKS
601 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
605 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
602 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> |
606 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> |
603 <a href="/diff/xyzzy/foo?style=gitweb">diff</a> |
607 <a href="/diff/xyzzy/foo?style=gitweb">diff</a> |
604 <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> |
608 <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> |
605 <a href="/rss-log/tip/foo">rss</a> |
609 <a href="/rss-log/tip/foo">rss</a> |
606 <a href="/log/43c799df6e75/foo?style=gitweb">(0)</a> <a href="/log/tip/foo?style=gitweb">tip</a>
610 <a href="/log/43c799df6e75/foo?style=gitweb">(0)</a> <a href="/log/tip/foo?style=gitweb">tip</a>
607 <a class="list" href="/rev/a7c1559b7bba?style=gitweb">
611 <a class="list" href="/rev/a7c1559b7bba?style=gitweb">
608 <a href="/file/a7c1559b7bba/foo?style=gitweb">file</a> |
612 <a href="/file/a7c1559b7bba/foo?style=gitweb">file</a> |
609 <a href="/diff/a7c1559b7bba/foo?style=gitweb">diff</a> |
613 <a href="/diff/a7c1559b7bba/foo?style=gitweb">diff</a> |
610 <a href="/annotate/a7c1559b7bba/foo?style=gitweb">annotate</a>
614 <a href="/annotate/a7c1559b7bba/foo?style=gitweb">annotate</a>
611 <a class="list" href="/rev/43c799df6e75?style=gitweb">
615 <a class="list" href="/rev/43c799df6e75?style=gitweb">
612 <a href="/file/43c799df6e75/foo?style=gitweb">file</a> |
616 <a href="/file/43c799df6e75/foo?style=gitweb">file</a> |
613 <a href="/diff/43c799df6e75/foo?style=gitweb">diff</a> |
617 <a href="/diff/43c799df6e75/foo?style=gitweb">diff</a> |
614 <a href="/annotate/43c799df6e75/foo?style=gitweb">annotate</a>
618 <a href="/annotate/43c799df6e75/foo?style=gitweb">annotate</a>
615 <a href="/log/43c799df6e75/foo?style=gitweb">(0)</a> <a href="/log/tip/foo?style=gitweb">tip</a>
619 <a href="/log/43c799df6e75/foo?style=gitweb">(0)</a> <a href="/log/tip/foo?style=gitweb">tip</a>
616
620
617 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'annotate/xyzzy/foo?style=gitweb' | egrep $REVLINKS
621 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'annotate/xyzzy/foo?style=gitweb' | egrep $REVLINKS
618 <a href="/file/xyzzy/?style=gitweb">files</a> |
622 <a href="/file/xyzzy/?style=gitweb">files</a> |
619 <a href="/rev/xyzzy?style=gitweb">changeset</a> |
623 <a href="/rev/xyzzy?style=gitweb">changeset</a> |
620 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
624 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
621 <a href="/file/tip/foo?style=gitweb">latest</a> |
625 <a href="/file/tip/foo?style=gitweb">latest</a> |
622 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
626 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
623 <a href="/diff/xyzzy/foo?style=gitweb">diff</a> |
627 <a href="/diff/xyzzy/foo?style=gitweb">diff</a> |
624 <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> |
628 <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> |
625 <a href="/raw-annotate/xyzzy/foo">raw</a> |
629 <a href="/raw-annotate/xyzzy/foo">raw</a> |
626 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
630 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
627 <a class="list" href="/annotate/43c799df6e75/foo?style=gitweb">
631 <a class="list" href="/annotate/43c799df6e75/foo?style=gitweb">
628 <a class="list" href="/annotate/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a></td>
632 <a class="list" href="/annotate/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a></td>
629 <a href="/annotate/43c799df6e75/foo?style=gitweb#l1">
633 <a href="/annotate/43c799df6e75/foo?style=gitweb#l1">
634 <a href="/annotate/43c799df6e75/foo?style=gitweb#l1">
630 <a href="/diff/43c799df6e75/foo?style=gitweb">diff</a>
635 <a href="/diff/43c799df6e75/foo?style=gitweb">diff</a>
631 <a href="/rev/43c799df6e75?style=gitweb">changeset</a>
636 <a href="/rev/43c799df6e75?style=gitweb">changeset</a>
632 <a href="/annotate/a7c1559b7bba/foo?style=gitweb#l2">
637 <a href="/annotate/a7c1559b7bba/foo?style=gitweb#l2">
638 <a href="/annotate/a7c1559b7bba/foo?style=gitweb#l2">
633 <a href="/annotate/43c799df6e75/foo?style=gitweb">0</a></div>
639 <a href="/annotate/43c799df6e75/foo?style=gitweb">0</a></div>
634 <a href="/diff/a7c1559b7bba/foo?style=gitweb">diff</a>
640 <a href="/diff/a7c1559b7bba/foo?style=gitweb">diff</a>
635 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a>
641 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a>
636
642
637 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'diff/xyzzy/foo?style=gitweb' | egrep $REVLINKS
643 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'diff/xyzzy/foo?style=gitweb' | egrep $REVLINKS
638 <a href="/file/xyzzy?style=gitweb">files</a> |
644 <a href="/file/xyzzy?style=gitweb">files</a> |
639 <a href="/rev/xyzzy?style=gitweb">changeset</a> |
645 <a href="/rev/xyzzy?style=gitweb">changeset</a> |
640 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
646 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
641 <a href="/file/tip/foo?style=gitweb">latest</a> |
647 <a href="/file/tip/foo?style=gitweb">latest</a> |
642 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
648 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
643 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> |
649 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> |
644 <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> |
650 <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> |
645 <a href="/raw-diff/xyzzy/foo">raw</a> |
651 <a href="/raw-diff/xyzzy/foo">raw</a> |
646 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
652 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
647 <a class="list" href="/diff/43c799df6e75/foo?style=gitweb">
653 <a class="list" href="/diff/43c799df6e75/foo?style=gitweb">
648 <a class="list" href="/diff/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a>
654 <a class="list" href="/diff/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a>
649
655
650 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'comparison/xyzzy/foo?style=gitweb' | egrep $REVLINKS
656 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'comparison/xyzzy/foo?style=gitweb' | egrep $REVLINKS
651 <a href="/file/xyzzy?style=gitweb">files</a> |
657 <a href="/file/xyzzy?style=gitweb">files</a> |
652 <a href="/rev/xyzzy?style=gitweb">changeset</a> |
658 <a href="/rev/xyzzy?style=gitweb">changeset</a> |
653 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
659 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
654 <a href="/file/tip/foo?style=gitweb">latest</a> |
660 <a href="/file/tip/foo?style=gitweb">latest</a> |
655 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
661 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
656 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> |
662 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> |
657 <a href="/diff/xyzzy/foo?style=gitweb">diff</a> |
663 <a href="/diff/xyzzy/foo?style=gitweb">diff</a> |
658 <a href="/raw-diff/xyzzy/foo">raw</a> |
664 <a href="/raw-diff/xyzzy/foo">raw</a> |
659 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
665 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
660 <a class="list" href="/comparison/43c799df6e75/foo?style=gitweb">
666 <a class="list" href="/comparison/43c799df6e75/foo?style=gitweb">
661 <a class="list" href="/comparison/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a>
667 <a class="list" href="/comparison/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a>
662
668
663 (De)referencing symbolic revisions (monoblue)
669 (De)referencing symbolic revisions (monoblue)
664
670
665 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'summary?style=monoblue' | egrep $REVLINKS
671 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'summary?style=monoblue' | egrep $REVLINKS
666 <li><a href="/archive/tip.zip">zip</a></li>
672 <li><a href="/archive/tip.zip">zip</a></li>
667 <a href="/rev/9d8c40cba617?style=monoblue">
673 <a href="/rev/9d8c40cba617?style=monoblue">
668 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
674 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
669 <a href="/file/9d8c40cba617?style=monoblue">files</a>
675 <a href="/file/9d8c40cba617?style=monoblue">files</a>
670 <a href="/rev/a7c1559b7bba?style=monoblue">
676 <a href="/rev/a7c1559b7bba?style=monoblue">
671 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
677 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
672 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
678 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
673 <a href="/rev/43c799df6e75?style=monoblue">
679 <a href="/rev/43c799df6e75?style=monoblue">
674 <a href="/rev/43c799df6e75?style=monoblue">changeset</a> |
680 <a href="/rev/43c799df6e75?style=monoblue">changeset</a> |
675 <a href="/file/43c799df6e75?style=monoblue">files</a>
681 <a href="/file/43c799df6e75?style=monoblue">files</a>
676 <td><a href="/rev/xyzzy?style=monoblue">xyzzy</a></td>
682 <td><a href="/rev/xyzzy?style=monoblue">xyzzy</a></td>
677 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
683 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
678 <a href="/log/a7c1559b7bba?style=monoblue">changelog</a> |
684 <a href="/log/a7c1559b7bba?style=monoblue">changelog</a> |
679 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
685 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
680 <td class="open"><a href="/shortlog/default?style=monoblue">default</a></td>
686 <td class="open"><a href="/shortlog/default?style=monoblue">default</a></td>
681 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
687 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
682 <a href="/log/9d8c40cba617?style=monoblue">changelog</a> |
688 <a href="/log/9d8c40cba617?style=monoblue">changelog</a> |
683 <a href="/file/9d8c40cba617?style=monoblue">files</a>
689 <a href="/file/9d8c40cba617?style=monoblue">files</a>
684
690
685 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=monoblue' | egrep $REVLINKS
691 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=monoblue' | egrep $REVLINKS
686 <li><a href="/graph/tip?style=monoblue">graph</a></li>
692 <li><a href="/graph/tip?style=monoblue">graph</a></li>
687 <li><a href="/file/tip?style=monoblue">files</a></li>
693 <li><a href="/file/tip?style=monoblue">files</a></li>
688 <li><a href="/archive/tip.zip">zip</a></li>
694 <li><a href="/archive/tip.zip">zip</a></li>
689 <a href="/rev/9d8c40cba617?style=monoblue">
695 <a href="/rev/9d8c40cba617?style=monoblue">
690 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
696 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
691 <a href="/file/9d8c40cba617?style=monoblue">files</a>
697 <a href="/file/9d8c40cba617?style=monoblue">files</a>
692 <a href="/rev/a7c1559b7bba?style=monoblue">
698 <a href="/rev/a7c1559b7bba?style=monoblue">
693 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
699 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
694 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
700 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
695 <a href="/rev/43c799df6e75?style=monoblue">
701 <a href="/rev/43c799df6e75?style=monoblue">
696 <a href="/rev/43c799df6e75?style=monoblue">changeset</a> |
702 <a href="/rev/43c799df6e75?style=monoblue">changeset</a> |
697 <a href="/file/43c799df6e75?style=monoblue">files</a>
703 <a href="/file/43c799df6e75?style=monoblue">files</a>
698 <a href="/shortlog/43c799df6e75?style=monoblue">(0)</a> <a href="/shortlog/tip?style=monoblue">tip</a>
704 <a href="/shortlog/43c799df6e75?style=monoblue">(0)</a> <a href="/shortlog/tip?style=monoblue">tip</a>
699
705
700 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log?style=monoblue' | egrep $REVLINKS
706 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log?style=monoblue' | egrep $REVLINKS
701 <li><a href="/graph/tip?style=monoblue">graph</a></li>
707 <li><a href="/graph/tip?style=monoblue">graph</a></li>
702 <li><a href="/file/tip?style=monoblue">files</a></li>
708 <li><a href="/file/tip?style=monoblue">files</a></li>
703 <li><a href="/archive/tip.zip">zip</a></li>
709 <li><a href="/archive/tip.zip">zip</a></li>
704 <h3 class="changelog"><a class="title" href="/rev/9d8c40cba617?style=monoblue">third<span class="logtags"> <span class="branchtag" title="default">default</span> <span class="tagtag" title="tip">tip</span> </span></a></h3>
710 <h3 class="changelog"><a class="title" href="/rev/9d8c40cba617?style=monoblue">third<span class="logtags"> <span class="branchtag" title="default">default</span> <span class="tagtag" title="tip">tip</span> </span></a></h3>
705 <h3 class="changelog"><a class="title" href="/rev/a7c1559b7bba?style=monoblue">second<span class="logtags"> <span class="bookmarktag" title="xyzzy">xyzzy</span> </span></a></h3>
711 <h3 class="changelog"><a class="title" href="/rev/a7c1559b7bba?style=monoblue">second<span class="logtags"> <span class="bookmarktag" title="xyzzy">xyzzy</span> </span></a></h3>
706 <h3 class="changelog"><a class="title" href="/rev/43c799df6e75?style=monoblue">first<span class="logtags"> </span></a></h3>
712 <h3 class="changelog"><a class="title" href="/rev/43c799df6e75?style=monoblue">first<span class="logtags"> </span></a></h3>
707 <a href="/log/43c799df6e75?style=monoblue">(0)</a> <a href="/log/tip?style=monoblue">tip</a>
713 <a href="/log/43c799df6e75?style=monoblue">(0)</a> <a href="/log/tip?style=monoblue">tip</a>
708
714
709 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph?style=monoblue' | egrep $REVLINKS
715 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph?style=monoblue' | egrep $REVLINKS
710 <li><a href="/file/tip?style=monoblue">files</a></li>
716 <li><a href="/file/tip?style=monoblue">files</a></li>
711 <a href="/graph/tip?revcount=30&style=monoblue">less</a>
717 <a href="/graph/tip?revcount=30&style=monoblue">less</a>
712 <a href="/graph/tip?revcount=120&style=monoblue">more</a>
718 <a href="/graph/tip?revcount=120&style=monoblue">more</a>
713 | <a href="/graph/43c799df6e75?style=monoblue">(0)</a> <a href="/graph/tip?style=monoblue">tip</a>
719 | <a href="/graph/43c799df6e75?style=monoblue">(0)</a> <a href="/graph/tip?style=monoblue">tip</a>
714
720
715 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'tags?style=monoblue' | egrep $REVLINKS
721 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'tags?style=monoblue' | egrep $REVLINKS
716 <td><a href="/rev/tip?style=monoblue">tip</a></td>
722 <td><a href="/rev/tip?style=monoblue">tip</a></td>
717 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
723 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
718 <a href="/log/9d8c40cba617?style=monoblue">changelog</a> |
724 <a href="/log/9d8c40cba617?style=monoblue">changelog</a> |
719 <a href="/file/9d8c40cba617?style=monoblue">files</a>
725 <a href="/file/9d8c40cba617?style=monoblue">files</a>
720
726
721 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'bookmarks?style=monoblue' | egrep $REVLINKS
727 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'bookmarks?style=monoblue' | egrep $REVLINKS
722 <td><a href="/rev/xyzzy?style=monoblue">xyzzy</a></td>
728 <td><a href="/rev/xyzzy?style=monoblue">xyzzy</a></td>
723 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
729 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
724 <a href="/log/a7c1559b7bba?style=monoblue">changelog</a> |
730 <a href="/log/a7c1559b7bba?style=monoblue">changelog</a> |
725 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
731 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
726
732
727 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'branches?style=monoblue' | egrep $REVLINKS
733 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'branches?style=monoblue' | egrep $REVLINKS
728 <td class="open"><a href="/shortlog/default?style=monoblue">default</a></td>
734 <td class="open"><a href="/shortlog/default?style=monoblue">default</a></td>
729 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
735 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
730 <a href="/log/9d8c40cba617?style=monoblue">changelog</a> |
736 <a href="/log/9d8c40cba617?style=monoblue">changelog</a> |
731 <a href="/file/9d8c40cba617?style=monoblue">files</a>
737 <a href="/file/9d8c40cba617?style=monoblue">files</a>
732
738
733 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file?style=monoblue' | egrep $REVLINKS
739 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file?style=monoblue' | egrep $REVLINKS
734 <li><a href="/graph/tip?style=monoblue">graph</a></li>
740 <li><a href="/graph/tip?style=monoblue">graph</a></li>
735 <li><a href="/rev/tip?style=monoblue">changeset</a></li>
741 <li><a href="/rev/tip?style=monoblue">changeset</a></li>
736 <li><a href="/archive/tip.zip">zip</a></li>
742 <li><a href="/archive/tip.zip">zip</a></li>
737 <td><a href="/file/tip/?style=monoblue">[up]</a></td>
743 <td><a href="/file/tip/?style=monoblue">[up]</a></td>
738 <a href="/file/tip/dir?style=monoblue">dir</a>
744 <a href="/file/tip/dir?style=monoblue">dir</a>
739 <a href="/file/tip/dir/?style=monoblue"></a>
745 <a href="/file/tip/dir/?style=monoblue"></a>
740 <td><a href="/file/tip/dir?style=monoblue">files</a></td>
746 <td><a href="/file/tip/dir?style=monoblue">files</a></td>
741 <td><a href="/file/tip/foo?style=monoblue">foo</a></td>
747 <td><a href="/file/tip/foo?style=monoblue">foo</a></td>
742 <a href="/file/tip/foo?style=monoblue">file</a> |
748 <a href="/file/tip/foo?style=monoblue">file</a> |
743 <a href="/log/tip/foo?style=monoblue">revisions</a> |
749 <a href="/log/tip/foo?style=monoblue">revisions</a> |
744 <a href="/annotate/tip/foo?style=monoblue">annotate</a>
750 <a href="/annotate/tip/foo?style=monoblue">annotate</a>
745
751
746 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=monoblue&rev=all()' | egrep $REVLINKS
752 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=monoblue&rev=all()' | egrep $REVLINKS
747 <li><a href="/archive/tip.zip">zip</a></li>
753 <li><a href="/archive/tip.zip">zip</a></li>
748 <h3 class="changelog"><a class="title" href="/rev/9d8c40cba617?style=monoblue">third<span class="logtags"> <span class="branchtag" title="default">default</span> <span class="tagtag" title="tip">tip</span> </span></a></h3>
754 <h3 class="changelog"><a class="title" href="/rev/9d8c40cba617?style=monoblue">third<span class="logtags"> <span class="branchtag" title="default">default</span> <span class="tagtag" title="tip">tip</span> </span></a></h3>
749 <h3 class="changelog"><a class="title" href="/rev/a7c1559b7bba?style=monoblue">second<span class="logtags"> <span class="bookmarktag" title="xyzzy">xyzzy</span> </span></a></h3>
755 <h3 class="changelog"><a class="title" href="/rev/a7c1559b7bba?style=monoblue">second<span class="logtags"> <span class="bookmarktag" title="xyzzy">xyzzy</span> </span></a></h3>
750 <h3 class="changelog"><a class="title" href="/rev/43c799df6e75?style=monoblue">first<span class="logtags"> </span></a></h3>
756 <h3 class="changelog"><a class="title" href="/rev/43c799df6e75?style=monoblue">first<span class="logtags"> </span></a></h3>
751
757
752 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'rev/xyzzy?style=monoblue' | egrep $REVLINKS
758 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'rev/xyzzy?style=monoblue' | egrep $REVLINKS
753 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
759 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
754 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
760 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
755 <li><a href="/raw-rev/xyzzy">raw</a></li>
761 <li><a href="/raw-rev/xyzzy">raw</a></li>
756 <li><a href="/archive/xyzzy.zip">zip</a></li>
762 <li><a href="/archive/xyzzy.zip">zip</a></li>
757 <h3 class="changeset"><a href="/raw-rev/a7c1559b7bba">second <span class="logtags"><span class="bookmarktag" title="xyzzy">xyzzy</span> </span></a></h3>
763 <h3 class="changeset"><a href="/raw-rev/a7c1559b7bba">second <span class="logtags"><span class="bookmarktag" title="xyzzy">xyzzy</span> </span></a></h3>
758 <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
764 <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
759 <dd><a href="/rev/43c799df6e75?style=monoblue">43c799df6e75</a></dd>
765 <dd><a href="/rev/43c799df6e75?style=monoblue">43c799df6e75</a></dd>
760 <dd><a href="/rev/9d8c40cba617?style=monoblue">9d8c40cba617</a></dd>
766 <dd><a href="/rev/9d8c40cba617?style=monoblue">9d8c40cba617</a></dd>
761 <td><a href="/diff/a7c1559b7bba/foo?style=monoblue">foo</a></td>
767 <td><a href="/diff/a7c1559b7bba/foo?style=monoblue">foo</a></td>
762 <a href="/file/a7c1559b7bba/foo?style=monoblue">file</a> |
768 <a href="/file/a7c1559b7bba/foo?style=monoblue">file</a> |
763 <a href="/annotate/a7c1559b7bba/foo?style=monoblue">annotate</a> |
769 <a href="/annotate/a7c1559b7bba/foo?style=monoblue">annotate</a> |
764 <a href="/diff/a7c1559b7bba/foo?style=monoblue">diff</a> |
770 <a href="/diff/a7c1559b7bba/foo?style=monoblue">diff</a> |
765 <a href="/comparison/a7c1559b7bba/foo?style=monoblue">comparison</a> |
771 <a href="/comparison/a7c1559b7bba/foo?style=monoblue">comparison</a> |
766 <a href="/log/a7c1559b7bba/foo?style=monoblue">revisions</a>
772 <a href="/log/a7c1559b7bba/foo?style=monoblue">revisions</a>
767
773
768 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog/xyzzy?style=monoblue' | egrep $REVLINKS
774 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog/xyzzy?style=monoblue' | egrep $REVLINKS
769 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
775 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
770 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
776 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
771 <li><a href="/archive/xyzzy.zip">zip</a></li>
777 <li><a href="/archive/xyzzy.zip">zip</a></li>
772 <a href="/rev/a7c1559b7bba?style=monoblue">
778 <a href="/rev/a7c1559b7bba?style=monoblue">
773 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
779 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
774 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
780 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
775 <a href="/rev/43c799df6e75?style=monoblue">
781 <a href="/rev/43c799df6e75?style=monoblue">
776 <a href="/rev/43c799df6e75?style=monoblue">changeset</a> |
782 <a href="/rev/43c799df6e75?style=monoblue">changeset</a> |
777 <a href="/file/43c799df6e75?style=monoblue">files</a>
783 <a href="/file/43c799df6e75?style=monoblue">files</a>
778 <a href="/shortlog/43c799df6e75?style=monoblue">(0)</a> <a href="/shortlog/tip?style=monoblue">tip</a>
784 <a href="/shortlog/43c799df6e75?style=monoblue">(0)</a> <a href="/shortlog/tip?style=monoblue">tip</a>
779
785
780 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy?style=monoblue' | egrep $REVLINKS
786 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy?style=monoblue' | egrep $REVLINKS
781 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
787 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
782 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
788 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
783 <li><a href="/archive/xyzzy.zip">zip</a></li>
789 <li><a href="/archive/xyzzy.zip">zip</a></li>
784 <h3 class="changelog"><a class="title" href="/rev/a7c1559b7bba?style=monoblue">second<span class="logtags"> <span class="bookmarktag" title="xyzzy">xyzzy</span> </span></a></h3>
790 <h3 class="changelog"><a class="title" href="/rev/a7c1559b7bba?style=monoblue">second<span class="logtags"> <span class="bookmarktag" title="xyzzy">xyzzy</span> </span></a></h3>
785 <h3 class="changelog"><a class="title" href="/rev/43c799df6e75?style=monoblue">first<span class="logtags"> </span></a></h3>
791 <h3 class="changelog"><a class="title" href="/rev/43c799df6e75?style=monoblue">first<span class="logtags"> </span></a></h3>
786 <a href="/log/43c799df6e75?style=monoblue">(0)</a> <a href="/log/tip?style=monoblue">tip</a>
792 <a href="/log/43c799df6e75?style=monoblue">(0)</a> <a href="/log/tip?style=monoblue">tip</a>
787
793
788 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph/xyzzy?style=monoblue' | egrep $REVLINKS
794 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph/xyzzy?style=monoblue' | egrep $REVLINKS
789 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
795 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
790 <a href="/graph/xyzzy?revcount=30&style=monoblue">less</a>
796 <a href="/graph/xyzzy?revcount=30&style=monoblue">less</a>
791 <a href="/graph/xyzzy?revcount=120&style=monoblue">more</a>
797 <a href="/graph/xyzzy?revcount=120&style=monoblue">more</a>
792 | <a href="/graph/43c799df6e75?style=monoblue">(0)</a> <a href="/graph/tip?style=monoblue">tip</a>
798 | <a href="/graph/43c799df6e75?style=monoblue">(0)</a> <a href="/graph/tip?style=monoblue">tip</a>
793
799
794 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy?style=monoblue' | egrep $REVLINKS
800 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy?style=monoblue' | egrep $REVLINKS
795 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
801 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
796 <li><a href="/rev/xyzzy?style=monoblue">changeset</a></li>
802 <li><a href="/rev/xyzzy?style=monoblue">changeset</a></li>
797 <li><a href="/archive/xyzzy.zip">zip</a></li>
803 <li><a href="/archive/xyzzy.zip">zip</a></li>
798 <td><a href="/file/xyzzy/?style=monoblue">[up]</a></td>
804 <td><a href="/file/xyzzy/?style=monoblue">[up]</a></td>
799 <a href="/file/xyzzy/dir?style=monoblue">dir</a>
805 <a href="/file/xyzzy/dir?style=monoblue">dir</a>
800 <a href="/file/xyzzy/dir/?style=monoblue"></a>
806 <a href="/file/xyzzy/dir/?style=monoblue"></a>
801 <td><a href="/file/xyzzy/dir?style=monoblue">files</a></td>
807 <td><a href="/file/xyzzy/dir?style=monoblue">files</a></td>
802 <td><a href="/file/xyzzy/foo?style=monoblue">foo</a></td>
808 <td><a href="/file/xyzzy/foo?style=monoblue">foo</a></td>
803 <a href="/file/xyzzy/foo?style=monoblue">file</a> |
809 <a href="/file/xyzzy/foo?style=monoblue">file</a> |
804 <a href="/log/xyzzy/foo?style=monoblue">revisions</a> |
810 <a href="/log/xyzzy/foo?style=monoblue">revisions</a> |
805 <a href="/annotate/xyzzy/foo?style=monoblue">annotate</a>
811 <a href="/annotate/xyzzy/foo?style=monoblue">annotate</a>
806
812
807 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy/foo?style=monoblue' | egrep $REVLINKS
813 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy/foo?style=monoblue' | egrep $REVLINKS
808 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
814 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
809 <li><a href="/file/xyzzy/?style=monoblue">files</a></li>
815 <li><a href="/file/xyzzy/?style=monoblue">files</a></li>
810 <li><a href="/file/tip/foo?style=monoblue">latest</a></li>
816 <li><a href="/file/tip/foo?style=monoblue">latest</a></li>
811 <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li>
817 <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li>
812 <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li>
818 <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li>
813 <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li>
819 <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li>
814 <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li>
820 <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li>
815 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
821 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
816 <dd><a class="list" href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
822 <dd><a class="list" href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
817 <a href="/file/43c799df6e75/foo?style=monoblue">
823 <a href="/file/43c799df6e75/foo?style=monoblue">
818 <a href="/file/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a>
824 <a href="/file/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a>
819
825
820 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy/foo?style=monoblue' | egrep $REVLINKS
826 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy/foo?style=monoblue' | egrep $REVLINKS
821 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
827 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
822 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
828 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
823 <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li>
829 <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li>
824 <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li>
830 <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li>
825 <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li>
831 <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li>
826 <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li>
832 <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li>
827 <li><a href="/rss-log/tip/foo">rss</a></li>
833 <li><a href="/rss-log/tip/foo">rss</a></li>
828 <a href="/rev/a7c1559b7bba?style=monoblue">
834 <a href="/rev/a7c1559b7bba?style=monoblue">
829 <a href="/file/a7c1559b7bba/foo?style=monoblue">file</a> |
835 <a href="/file/a7c1559b7bba/foo?style=monoblue">file</a> |
830 <a href="/diff/a7c1559b7bba/foo?style=monoblue">diff</a> |
836 <a href="/diff/a7c1559b7bba/foo?style=monoblue">diff</a> |
831 <a href="/annotate/a7c1559b7bba/foo?style=monoblue">annotate</a>
837 <a href="/annotate/a7c1559b7bba/foo?style=monoblue">annotate</a>
832 <a href="/rev/43c799df6e75?style=monoblue">
838 <a href="/rev/43c799df6e75?style=monoblue">
833 <a href="/file/43c799df6e75/foo?style=monoblue">file</a> |
839 <a href="/file/43c799df6e75/foo?style=monoblue">file</a> |
834 <a href="/diff/43c799df6e75/foo?style=monoblue">diff</a> |
840 <a href="/diff/43c799df6e75/foo?style=monoblue">diff</a> |
835 <a href="/annotate/43c799df6e75/foo?style=monoblue">annotate</a>
841 <a href="/annotate/43c799df6e75/foo?style=monoblue">annotate</a>
836 <a href="/log/43c799df6e75/foo?style=monoblue">(0)</a> <a href="/log/tip/foo?style=monoblue">tip</a>
842 <a href="/log/43c799df6e75/foo?style=monoblue">(0)</a> <a href="/log/tip/foo?style=monoblue">tip</a>
837
843
838 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'annotate/xyzzy/foo?style=monoblue' | egrep $REVLINKS
844 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'annotate/xyzzy/foo?style=monoblue' | egrep $REVLINKS
839 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
845 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
840 <li><a href="/file/xyzzy/?style=monoblue">files</a></li>
846 <li><a href="/file/xyzzy/?style=monoblue">files</a></li>
841 <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li>
847 <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li>
842 <li><a href="/file/tip/foo?style=monoblue">latest</a></li>
848 <li><a href="/file/tip/foo?style=monoblue">latest</a></li>
843 <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li>
849 <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li>
844 <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li>
850 <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li>
845 <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li>
851 <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li>
846 <li><a href="/raw-annotate/xyzzy/foo">raw</a></li>
852 <li><a href="/raw-annotate/xyzzy/foo">raw</a></li>
847 <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
853 <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
848 <a href="/annotate/43c799df6e75/foo?style=monoblue">
854 <a href="/annotate/43c799df6e75/foo?style=monoblue">
849 <a href="/annotate/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a>
855 <a href="/annotate/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a>
850 <a href="/annotate/43c799df6e75/foo?style=monoblue#l1">
856 <a href="/annotate/43c799df6e75/foo?style=monoblue#l1">
857 <a href="/annotate/43c799df6e75/foo?style=monoblue#l1">
851 <a href="/diff/43c799df6e75/foo?style=monoblue">diff</a>
858 <a href="/diff/43c799df6e75/foo?style=monoblue">diff</a>
852 <a href="/rev/43c799df6e75?style=monoblue">changeset</a>
859 <a href="/rev/43c799df6e75?style=monoblue">changeset</a>
853 <a href="/annotate/a7c1559b7bba/foo?style=monoblue#l2">
860 <a href="/annotate/a7c1559b7bba/foo?style=monoblue#l2">
861 <a href="/annotate/a7c1559b7bba/foo?style=monoblue#l2">
854 <a href="/annotate/43c799df6e75/foo?style=monoblue">0</a></div>
862 <a href="/annotate/43c799df6e75/foo?style=monoblue">0</a></div>
855 <a href="/diff/a7c1559b7bba/foo?style=monoblue">diff</a>
863 <a href="/diff/a7c1559b7bba/foo?style=monoblue">diff</a>
856 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a>
864 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a>
857
865
858 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'diff/xyzzy/foo?style=monoblue' | egrep $REVLINKS
866 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'diff/xyzzy/foo?style=monoblue' | egrep $REVLINKS
859 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
867 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
860 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
868 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
861 <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li>
869 <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li>
862 <li><a href="/file/tip/foo?style=monoblue">latest</a></li>
870 <li><a href="/file/tip/foo?style=monoblue">latest</a></li>
863 <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li>
871 <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li>
864 <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li>
872 <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li>
865 <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li>
873 <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li>
866 <li><a href="/raw-diff/xyzzy/foo">raw</a></li>
874 <li><a href="/raw-diff/xyzzy/foo">raw</a></li>
867 <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
875 <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
868 <dd><a href="/diff/43c799df6e75/foo?style=monoblue">43c799df6e75</a></dd>
876 <dd><a href="/diff/43c799df6e75/foo?style=monoblue">43c799df6e75</a></dd>
869 <dd><a href="/diff/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a></dd>
877 <dd><a href="/diff/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a></dd>
870
878
871 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'comparison/xyzzy/foo?style=monoblue' | egrep $REVLINKS
879 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'comparison/xyzzy/foo?style=monoblue' | egrep $REVLINKS
872 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
880 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
873 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
881 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
874 <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li>
882 <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li>
875 <li><a href="/file/tip/foo?style=monoblue">latest</a></li>
883 <li><a href="/file/tip/foo?style=monoblue">latest</a></li>
876 <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li>
884 <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li>
877 <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li>
885 <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li>
878 <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li>
886 <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li>
879 <li><a href="/raw-diff/xyzzy/foo">raw</a></li>
887 <li><a href="/raw-diff/xyzzy/foo">raw</a></li>
880 <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
888 <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
881 <dd><a href="/comparison/43c799df6e75/foo?style=monoblue">43c799df6e75</a></dd>
889 <dd><a href="/comparison/43c799df6e75/foo?style=monoblue">43c799df6e75</a></dd>
882 <dd><a href="/comparison/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a></dd>
890 <dd><a href="/comparison/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a></dd>
883
891
884 (De)referencing symbolic revisions (spartan)
892 (De)referencing symbolic revisions (spartan)
885
893
886 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=spartan' | egrep $REVLINKS
894 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=spartan' | egrep $REVLINKS
887 <a href="/log/tip?style=spartan">changelog</a>
895 <a href="/log/tip?style=spartan">changelog</a>
888 <a href="/graph/tip?style=spartan">graph</a>
896 <a href="/graph/tip?style=spartan">graph</a>
889 <a href="/file/tip/?style=spartan">files</a>
897 <a href="/file/tip/?style=spartan">files</a>
890 <a href="/archive/tip.zip">zip</a>
898 <a href="/archive/tip.zip">zip</a>
891 navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small>
899 navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small>
892 <td class="node"><a href="/rev/9d8c40cba617?style=spartan">third</a></td>
900 <td class="node"><a href="/rev/9d8c40cba617?style=spartan">third</a></td>
893 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">second</a></td>
901 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">second</a></td>
894 <td class="node"><a href="/rev/43c799df6e75?style=spartan">first</a></td>
902 <td class="node"><a href="/rev/43c799df6e75?style=spartan">first</a></td>
895 navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small>
903 navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small>
896
904
897 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log?style=spartan' | egrep $REVLINKS
905 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log?style=spartan' | egrep $REVLINKS
898 <a href="/shortlog/tip?style=spartan">shortlog</a>
906 <a href="/shortlog/tip?style=spartan">shortlog</a>
899 <a href="/graph/tip?style=spartan">graph</a>
907 <a href="/graph/tip?style=spartan">graph</a>
900 <a href="/file/tip?style=spartan">files</a>
908 <a href="/file/tip?style=spartan">files</a>
901 <a href="/archive/tip.zip">zip</a>
909 <a href="/archive/tip.zip">zip</a>
902 navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small>
910 navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small>
903 <td class="node"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
911 <td class="node"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
904 <th class="files"><a href="/file/9d8c40cba617?style=spartan">files</a>:</th>
912 <th class="files"><a href="/file/9d8c40cba617?style=spartan">files</a>:</th>
905 <td class="files"><a href="/diff/9d8c40cba617/foo?style=spartan">foo</a> </td>
913 <td class="files"><a href="/diff/9d8c40cba617/foo?style=spartan">foo</a> </td>
906 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
914 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
907 <th class="files"><a href="/file/a7c1559b7bba?style=spartan">files</a>:</th>
915 <th class="files"><a href="/file/a7c1559b7bba?style=spartan">files</a>:</th>
908 <td class="files"><a href="/diff/a7c1559b7bba/foo?style=spartan">foo</a> </td>
916 <td class="files"><a href="/diff/a7c1559b7bba/foo?style=spartan">foo</a> </td>
909 <td class="node"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
917 <td class="node"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
910 <th class="files"><a href="/file/43c799df6e75?style=spartan">files</a>:</th>
918 <th class="files"><a href="/file/43c799df6e75?style=spartan">files</a>:</th>
911 <td class="files"><a href="/diff/43c799df6e75/dir/bar?style=spartan">dir/bar</a> <a href="/diff/43c799df6e75/foo?style=spartan">foo</a> </td>
919 <td class="files"><a href="/diff/43c799df6e75/dir/bar?style=spartan">dir/bar</a> <a href="/diff/43c799df6e75/foo?style=spartan">foo</a> </td>
912 navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small>
920 navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small>
913
921
914 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph?style=spartan' | egrep $REVLINKS
922 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph?style=spartan' | egrep $REVLINKS
915 <a href="/log/tip?style=spartan">changelog</a>
923 <a href="/log/tip?style=spartan">changelog</a>
916 <a href="/shortlog/tip?style=spartan">shortlog</a>
924 <a href="/shortlog/tip?style=spartan">shortlog</a>
917 <a href="/file/tip/?style=spartan">files</a>
925 <a href="/file/tip/?style=spartan">files</a>
918 navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small>
926 navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small>
919 navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small>
927 navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small>
920
928
921 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'tags?style=spartan' | egrep $REVLINKS
929 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'tags?style=spartan' | egrep $REVLINKS
922 <a href="/rev/9d8c40cba617?style=spartan">tip</a>
930 <a href="/rev/9d8c40cba617?style=spartan">tip</a>
923
931
924 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'branches?style=spartan' | egrep $REVLINKS
932 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'branches?style=spartan' | egrep $REVLINKS
925 <a href="/shortlog/9d8c40cba617?style=spartan" class="open">default</a>
933 <a href="/shortlog/9d8c40cba617?style=spartan" class="open">default</a>
926
934
927 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file?style=spartan' | egrep $REVLINKS
935 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file?style=spartan' | egrep $REVLINKS
928 <a href="/log/tip?style=spartan">changelog</a>
936 <a href="/log/tip?style=spartan">changelog</a>
929 <a href="/shortlog/tip?style=spartan">shortlog</a>
937 <a href="/shortlog/tip?style=spartan">shortlog</a>
930 <a href="/graph/tip?style=spartan">graph</a>
938 <a href="/graph/tip?style=spartan">graph</a>
931 <a href="/rev/tip?style=spartan">changeset</a>
939 <a href="/rev/tip?style=spartan">changeset</a>
932 <a href="/archive/tip.zip">zip</a>
940 <a href="/archive/tip.zip">zip</a>
933 <h2><a href="/">Mercurial</a> / files for changeset <a href="/rev/9d8c40cba617">9d8c40cba617</a>: /</h2>
941 <h2><a href="/">Mercurial</a> / files for changeset <a href="/rev/9d8c40cba617">9d8c40cba617</a>: /</h2>
934 <td><a href="/file/tip/?style=spartan">[up]</a>
942 <td><a href="/file/tip/?style=spartan">[up]</a>
935 <a href="/file/tip/dir?style=spartan">dir/</a>
943 <a href="/file/tip/dir?style=spartan">dir/</a>
936 <a href="/file/tip/dir/?style=spartan">
944 <a href="/file/tip/dir/?style=spartan">
937 <td><a href="/file/tip/foo?style=spartan">foo</a>
945 <td><a href="/file/tip/foo?style=spartan">foo</a>
938
946
939 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=spartan&rev=all()' | egrep $REVLINKS
947 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog?style=spartan&rev=all()' | egrep $REVLINKS
940 <a href="/archive/tip.zip">zip</a>
948 <a href="/archive/tip.zip">zip</a>
941 <td class="node"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
949 <td class="node"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
942 <a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a>
950 <a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a>
943 <th class="files"><a href="/file/9d8c40cba617?style=spartan">files</a>:</th>
951 <th class="files"><a href="/file/9d8c40cba617?style=spartan">files</a>:</th>
944 <td class="files"><a href="/diff/9d8c40cba617/foo?style=spartan">foo</a> </td>
952 <td class="files"><a href="/diff/9d8c40cba617/foo?style=spartan">foo</a> </td>
945 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
953 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
946 <a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a>
954 <a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a>
947 <td class="child"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
955 <td class="child"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
948 <th class="files"><a href="/file/a7c1559b7bba?style=spartan">files</a>:</th>
956 <th class="files"><a href="/file/a7c1559b7bba?style=spartan">files</a>:</th>
949 <td class="files"><a href="/diff/a7c1559b7bba/foo?style=spartan">foo</a> </td>
957 <td class="files"><a href="/diff/a7c1559b7bba/foo?style=spartan">foo</a> </td>
950 <td class="node"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
958 <td class="node"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
951 <td class="child"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
959 <td class="child"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
952 <th class="files"><a href="/file/43c799df6e75?style=spartan">files</a>:</th>
960 <th class="files"><a href="/file/43c799df6e75?style=spartan">files</a>:</th>
953 <td class="files"><a href="/diff/43c799df6e75/dir/bar?style=spartan">dir/bar</a> <a href="/diff/43c799df6e75/foo?style=spartan">foo</a> </td>
961 <td class="files"><a href="/diff/43c799df6e75/dir/bar?style=spartan">dir/bar</a> <a href="/diff/43c799df6e75/foo?style=spartan">foo</a> </td>
954
962
955 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'rev/xyzzy?style=spartan' | egrep $REVLINKS
963 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'rev/xyzzy?style=spartan' | egrep $REVLINKS
956 <a href="/log/xyzzy?style=spartan">changelog</a>
964 <a href="/log/xyzzy?style=spartan">changelog</a>
957 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
965 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
958 <a href="/graph/xyzzy?style=spartan">graph</a>
966 <a href="/graph/xyzzy?style=spartan">graph</a>
959 <a href="/file/xyzzy?style=spartan">files</a>
967 <a href="/file/xyzzy?style=spartan">files</a>
960 <a href="/raw-rev/xyzzy">raw</a>
968 <a href="/raw-rev/xyzzy">raw</a>
961 <a href="/archive/xyzzy.zip">zip</a>
969 <a href="/archive/xyzzy.zip">zip</a>
962 <td class="changeset"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
970 <td class="changeset"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
963 <td class="parent"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
971 <td class="parent"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
964 <td class="child"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
972 <td class="child"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
965 <td class="files"><a href="/file/a7c1559b7bba/foo?style=spartan">foo</a> </td>
973 <td class="files"><a href="/file/a7c1559b7bba/foo?style=spartan">foo</a> </td>
966
974
967 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog/xyzzy?style=spartan' | egrep $REVLINKS
975 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog/xyzzy?style=spartan' | egrep $REVLINKS
968 <a href="/log/xyzzy?style=spartan">changelog</a>
976 <a href="/log/xyzzy?style=spartan">changelog</a>
969 <a href="/graph/xyzzy?style=spartan">graph</a>
977 <a href="/graph/xyzzy?style=spartan">graph</a>
970 <a href="/file/xyzzy/?style=spartan">files</a>
978 <a href="/file/xyzzy/?style=spartan">files</a>
971 <a href="/archive/xyzzy.zip">zip</a>
979 <a href="/archive/xyzzy.zip">zip</a>
972 navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small>
980 navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small>
973 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">second</a></td>
981 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">second</a></td>
974 <td class="node"><a href="/rev/43c799df6e75?style=spartan">first</a></td>
982 <td class="node"><a href="/rev/43c799df6e75?style=spartan">first</a></td>
975 navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small>
983 navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small>
976
984
977 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy?style=spartan' | egrep $REVLINKS
985 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy?style=spartan' | egrep $REVLINKS
978 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
986 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
979 <a href="/graph/xyzzy?style=spartan">graph</a>
987 <a href="/graph/xyzzy?style=spartan">graph</a>
980 <a href="/file/xyzzy?style=spartan">files</a>
988 <a href="/file/xyzzy?style=spartan">files</a>
981 <a href="/archive/xyzzy.zip">zip</a>
989 <a href="/archive/xyzzy.zip">zip</a>
982 navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small>
990 navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small>
983 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
991 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
984 <th class="files"><a href="/file/a7c1559b7bba?style=spartan">files</a>:</th>
992 <th class="files"><a href="/file/a7c1559b7bba?style=spartan">files</a>:</th>
985 <td class="files"><a href="/diff/a7c1559b7bba/foo?style=spartan">foo</a> </td>
993 <td class="files"><a href="/diff/a7c1559b7bba/foo?style=spartan">foo</a> </td>
986 <td class="node"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
994 <td class="node"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
987 <th class="files"><a href="/file/43c799df6e75?style=spartan">files</a>:</th>
995 <th class="files"><a href="/file/43c799df6e75?style=spartan">files</a>:</th>
988 <td class="files"><a href="/diff/43c799df6e75/dir/bar?style=spartan">dir/bar</a> <a href="/diff/43c799df6e75/foo?style=spartan">foo</a> </td>
996 <td class="files"><a href="/diff/43c799df6e75/dir/bar?style=spartan">dir/bar</a> <a href="/diff/43c799df6e75/foo?style=spartan">foo</a> </td>
989 navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small>
997 navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small>
990
998
991 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph/xyzzy?style=spartan' | egrep $REVLINKS
999 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph/xyzzy?style=spartan' | egrep $REVLINKS
992 <a href="/log/xyzzy?style=spartan">changelog</a>
1000 <a href="/log/xyzzy?style=spartan">changelog</a>
993 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1001 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
994 <a href="/file/xyzzy/?style=spartan">files</a>
1002 <a href="/file/xyzzy/?style=spartan">files</a>
995 navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small>
1003 navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small>
996 navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small>
1004 navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small>
997
1005
998 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy?style=spartan' | egrep $REVLINKS
1006 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy?style=spartan' | egrep $REVLINKS
999 <a href="/log/xyzzy?style=spartan">changelog</a>
1007 <a href="/log/xyzzy?style=spartan">changelog</a>
1000 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1008 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1001 <a href="/graph/xyzzy?style=spartan">graph</a>
1009 <a href="/graph/xyzzy?style=spartan">graph</a>
1002 <a href="/rev/xyzzy?style=spartan">changeset</a>
1010 <a href="/rev/xyzzy?style=spartan">changeset</a>
1003 <a href="/archive/xyzzy.zip">zip</a>
1011 <a href="/archive/xyzzy.zip">zip</a>
1004 <h2><a href="/">Mercurial</a> / files for changeset <a href="/rev/a7c1559b7bba">a7c1559b7bba</a>: /</h2>
1012 <h2><a href="/">Mercurial</a> / files for changeset <a href="/rev/a7c1559b7bba">a7c1559b7bba</a>: /</h2>
1005 <td><a href="/file/xyzzy/?style=spartan">[up]</a>
1013 <td><a href="/file/xyzzy/?style=spartan">[up]</a>
1006 <a href="/file/xyzzy/dir?style=spartan">dir/</a>
1014 <a href="/file/xyzzy/dir?style=spartan">dir/</a>
1007 <a href="/file/xyzzy/dir/?style=spartan">
1015 <a href="/file/xyzzy/dir/?style=spartan">
1008 <td><a href="/file/xyzzy/foo?style=spartan">foo</a>
1016 <td><a href="/file/xyzzy/foo?style=spartan">foo</a>
1009
1017
1010 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy/foo?style=spartan' | egrep $REVLINKS
1018 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/xyzzy/foo?style=spartan' | egrep $REVLINKS
1011 <a href="/log/xyzzy?style=spartan">changelog</a>
1019 <a href="/log/xyzzy?style=spartan">changelog</a>
1012 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1020 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1013 <a href="/graph/xyzzy?style=spartan">graph</a>
1021 <a href="/graph/xyzzy?style=spartan">graph</a>
1014 <a href="/rev/xyzzy?style=spartan">changeset</a>
1022 <a href="/rev/xyzzy?style=spartan">changeset</a>
1015 <a href="/file/xyzzy/?style=spartan">files</a>
1023 <a href="/file/xyzzy/?style=spartan">files</a>
1016 <a href="/log/xyzzy/foo?style=spartan">revisions</a>
1024 <a href="/log/xyzzy/foo?style=spartan">revisions</a>
1017 <a href="/annotate/xyzzy/foo?style=spartan">annotate</a>
1025 <a href="/annotate/xyzzy/foo?style=spartan">annotate</a>
1018 <a href="/raw-file/xyzzy/foo">raw</a>
1026 <a href="/raw-file/xyzzy/foo">raw</a>
1019 <td><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
1027 <td><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
1020 <a href="/file/43c799df6e75/foo?style=spartan">
1028 <a href="/file/43c799df6e75/foo?style=spartan">
1021 <td><a href="/file/9d8c40cba617/foo?style=spartan">9d8c40cba617</a></td>
1029 <td><a href="/file/9d8c40cba617/foo?style=spartan">9d8c40cba617</a></td>
1022
1030
1023 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy/foo?style=spartan' | egrep $REVLINKS
1031 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/xyzzy/foo?style=spartan' | egrep $REVLINKS
1024 href="/atom-log/tip/foo" title="Atom feed for test:foo">
1032 href="/atom-log/tip/foo" title="Atom feed for test:foo">
1025 href="/rss-log/tip/foo" title="RSS feed for test:foo">
1033 href="/rss-log/tip/foo" title="RSS feed for test:foo">
1026 <a href="/file/xyzzy/foo?style=spartan">file</a>
1034 <a href="/file/xyzzy/foo?style=spartan">file</a>
1027 <a href="/annotate/xyzzy/foo?style=spartan">annotate</a>
1035 <a href="/annotate/xyzzy/foo?style=spartan">annotate</a>
1028 <a type="application/rss+xml" href="/rss-log/tip/foo">rss</a>
1036 <a type="application/rss+xml" href="/rss-log/tip/foo">rss</a>
1029 <a type="application/atom+xml" href="/atom-log/tip/foo" title="Atom feed for test:foo">atom</a>
1037 <a type="application/atom+xml" href="/atom-log/tip/foo" title="Atom feed for test:foo">atom</a>
1030 <p>navigate: <small class="navigate"><a href="/log/43c799df6e75/foo?style=spartan">(0)</a> <a href="/log/tip/foo?style=spartan">tip</a> </small></p>
1038 <p>navigate: <small class="navigate"><a href="/log/43c799df6e75/foo?style=spartan">(0)</a> <a href="/log/tip/foo?style=spartan">tip</a> </small></p>
1031 <th class="firstline"><a href="/rev/a7c1559b7bba?style=spartan">second</a></th>
1039 <th class="firstline"><a href="/rev/a7c1559b7bba?style=spartan">second</a></th>
1032 <a href="/file/a7c1559b7bba/foo?style=spartan">a7c1559b7bba</a>
1040 <a href="/file/a7c1559b7bba/foo?style=spartan">a7c1559b7bba</a>
1033 <a href="/diff/a7c1559b7bba/foo?style=spartan">(diff)</a>
1041 <a href="/diff/a7c1559b7bba/foo?style=spartan">(diff)</a>
1034 <a href="/annotate/a7c1559b7bba/foo?style=spartan">(annotate)</a>
1042 <a href="/annotate/a7c1559b7bba/foo?style=spartan">(annotate)</a>
1035 <th class="firstline"><a href="/rev/43c799df6e75?style=spartan">first</a></th>
1043 <th class="firstline"><a href="/rev/43c799df6e75?style=spartan">first</a></th>
1036 <a href="/file/43c799df6e75/foo?style=spartan">43c799df6e75</a>
1044 <a href="/file/43c799df6e75/foo?style=spartan">43c799df6e75</a>
1037 <a href="/diff/43c799df6e75/foo?style=spartan">(diff)</a>
1045 <a href="/diff/43c799df6e75/foo?style=spartan">(diff)</a>
1038 <a href="/annotate/43c799df6e75/foo?style=spartan">(annotate)</a>
1046 <a href="/annotate/43c799df6e75/foo?style=spartan">(annotate)</a>
1039
1047
1040 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'annotate/xyzzy/foo?style=spartan' | egrep $REVLINKS
1048 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'annotate/xyzzy/foo?style=spartan' | egrep $REVLINKS
1041 <a href="/log/xyzzy?style=spartan">changelog</a>
1049 <a href="/log/xyzzy?style=spartan">changelog</a>
1042 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1050 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1043 <a href="/graph/xyzzy?style=spartan">graph</a>
1051 <a href="/graph/xyzzy?style=spartan">graph</a>
1044 <a href="/rev/xyzzy?style=spartan">changeset</a>
1052 <a href="/rev/xyzzy?style=spartan">changeset</a>
1045 <a href="/file/xyzzy/?style=spartan">files</a>
1053 <a href="/file/xyzzy/?style=spartan">files</a>
1046 <a href="/file/xyzzy/foo?style=spartan">file</a>
1054 <a href="/file/xyzzy/foo?style=spartan">file</a>
1047 <a href="/log/xyzzy/foo?style=spartan">revisions</a>
1055 <a href="/log/xyzzy/foo?style=spartan">revisions</a>
1048 <a href="/raw-annotate/xyzzy/foo">raw</a>
1056 <a href="/raw-annotate/xyzzy/foo">raw</a>
1049 <td><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
1057 <td><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
1050 <a href="/annotate/43c799df6e75/foo?style=spartan">
1058 <a href="/annotate/43c799df6e75/foo?style=spartan">
1051 <td><a href="/annotate/9d8c40cba617/foo?style=spartan">9d8c40cba617</a></td>
1059 <td><a href="/annotate/9d8c40cba617/foo?style=spartan">9d8c40cba617</a></td>
1052 <a href="/annotate/43c799df6e75/foo?style=spartan#l1">
1060 <a href="/annotate/43c799df6e75/foo?style=spartan#l1">
1061 <a href="/annotate/43c799df6e75/foo?style=spartan#l1">
1053 <a href="/diff/43c799df6e75/foo?style=spartan">diff</a>
1062 <a href="/diff/43c799df6e75/foo?style=spartan">diff</a>
1054 <a href="/rev/43c799df6e75?style=spartan">changeset</a>
1063 <a href="/rev/43c799df6e75?style=spartan">changeset</a>
1055 <a href="/annotate/a7c1559b7bba/foo?style=spartan#l2">
1064 <a href="/annotate/a7c1559b7bba/foo?style=spartan#l2">
1065 <a href="/annotate/a7c1559b7bba/foo?style=spartan#l2">
1056 <a href="/annotate/43c799df6e75/foo?style=spartan">0</a></div>
1066 <a href="/annotate/43c799df6e75/foo?style=spartan">0</a></div>
1057 <a href="/diff/a7c1559b7bba/foo?style=spartan">diff</a>
1067 <a href="/diff/a7c1559b7bba/foo?style=spartan">diff</a>
1058 <a href="/rev/a7c1559b7bba?style=spartan">changeset</a>
1068 <a href="/rev/a7c1559b7bba?style=spartan">changeset</a>
1059
1069
1060 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'diff/xyzzy/foo?style=spartan' | egrep $REVLINKS
1070 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'diff/xyzzy/foo?style=spartan' | egrep $REVLINKS
1061 <a href="/log/xyzzy?style=spartan">changelog</a>
1071 <a href="/log/xyzzy?style=spartan">changelog</a>
1062 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1072 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1063 <a href="/graph/xyzzy?style=spartan">graph</a>
1073 <a href="/graph/xyzzy?style=spartan">graph</a>
1064 <a href="/rev/xyzzy?style=spartan">changeset</a>
1074 <a href="/rev/xyzzy?style=spartan">changeset</a>
1065 <a href="/file/xyzzy/foo?style=spartan">file</a>
1075 <a href="/file/xyzzy/foo?style=spartan">file</a>
1066 <a href="/log/xyzzy/foo?style=spartan">revisions</a>
1076 <a href="/log/xyzzy/foo?style=spartan">revisions</a>
1067 <a href="/annotate/xyzzy/foo?style=spartan">annotate</a>
1077 <a href="/annotate/xyzzy/foo?style=spartan">annotate</a>
1068 <a href="/raw-diff/xyzzy/foo">raw</a>
1078 <a href="/raw-diff/xyzzy/foo">raw</a>
1069 <td class="revision"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
1079 <td class="revision"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
1070 <td class="parent"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
1080 <td class="parent"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
1071 <td class="child"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
1081 <td class="child"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
1072
1082
1073 Done
1083 Done
1074
1084
1075 $ cat errors.log
1085 $ cat errors.log
1076 $ "$TESTDIR/killdaemons.py" $DAEMON_PIDS
1086 $ "$TESTDIR/killdaemons.py" $DAEMON_PIDS
1077 $ cd ..
1087 $ cd ..
@@ -1,890 +1,1022
1 #require pygments serve
1 #require pygments serve
2
2
3 $ cat <<EOF >> $HGRCPATH
3 $ cat <<EOF >> $HGRCPATH
4 > [extensions]
4 > [extensions]
5 > highlight =
5 > highlight =
6 > [web]
6 > [web]
7 > pygments_style = friendly
7 > pygments_style = friendly
8 > highlightfiles = **.py and size('<100KB')
8 > highlightfiles = **.py and size('<100KB')
9 > EOF
9 > EOF
10 $ hg init test
10 $ hg init test
11 $ cd test
11 $ cd test
12
12
13 $ filterhtml () {
13 $ filterhtml () {
14 > sed -e "s/class=\"k\"/class=\"kn\"/g" \
14 > sed -e "s/class=\"k\"/class=\"kn\"/g" \
15 > -e "s/class=\"mf\"/class=\"mi\"/g" \
15 > -e "s/class=\"mf\"/class=\"mi\"/g" \
16 > -e "s/class=\"\([cs]\)[h12]\"/class=\"\1\"/g"
16 > -e "s/class=\"\([cs]\)[h12]\"/class=\"\1\"/g"
17 > }
17 > }
18
18
19 create random Python file to exercise Pygments
19 create random Python file to exercise Pygments
20
20
21 $ cat <<EOF > primes.py
21 $ cat <<EOF > primes.py
22 > #!/usr/bin/env python
22 > #!/usr/bin/env python
23 >
23 >
24 > """Fun with generators. Corresponding Haskell implementation:
24 > """Fun with generators. Corresponding Haskell implementation:
25 >
25 >
26 > primes = 2 : sieve [3, 5..]
26 > primes = 2 : sieve [3, 5..]
27 > where sieve (p:ns) = p : sieve [n | n <- ns, mod n p /= 0]
27 > where sieve (p:ns) = p : sieve [n | n <- ns, mod n p /= 0]
28 > """
28 > """
29 >
29 >
30 > from itertools import dropwhile, ifilter, islice, count, chain
30 > from itertools import dropwhile, ifilter, islice, count, chain
31 >
31 >
32 > def primes():
32 > def primes():
33 > """Generate all primes."""
33 > """Generate all primes."""
34 > def sieve(ns):
34 > def sieve(ns):
35 > p = ns.next()
35 > p = ns.next()
36 > # It is important to yield *here* in order to stop the
36 > # It is important to yield *here* in order to stop the
37 > # infinite recursion.
37 > # infinite recursion.
38 > yield p
38 > yield p
39 > ns = ifilter(lambda n: n % p != 0, ns)
39 > ns = ifilter(lambda n: n % p != 0, ns)
40 > for n in sieve(ns):
40 > for n in sieve(ns):
41 > yield n
41 > yield n
42 >
42 >
43 > odds = ifilter(lambda i: i % 2 == 1, count())
43 > odds = ifilter(lambda i: i % 2 == 1, count())
44 > return chain([2], sieve(dropwhile(lambda n: n < 3, odds)))
44 > return chain([2], sieve(dropwhile(lambda n: n < 3, odds)))
45 >
45 >
46 > if __name__ == "__main__":
46 > if __name__ == "__main__":
47 > import sys
47 > import sys
48 > try:
48 > try:
49 > n = int(sys.argv[1])
49 > n = int(sys.argv[1])
50 > except (ValueError, IndexError):
50 > except (ValueError, IndexError):
51 > n = 10
51 > n = 10
52 > p = primes()
52 > p = primes()
53 > print "The first %d primes: %s" % (n, list(islice(p, n)))
53 > print "The first %d primes: %s" % (n, list(islice(p, n)))
54 > EOF
54 > EOF
55 $ echo >> primes.py # to test html markup with an empty line just before EOF
55 $ echo >> primes.py # to test html markup with an empty line just before EOF
56 $ hg ci -Ama
56 $ hg ci -Ama
57 adding primes.py
57 adding primes.py
58
58
59 hg serve
59 hg serve
60
60
61 $ hg serve -p $HGPORT -d -n test --pid-file=hg.pid -A access.log -E errors.log
61 $ hg serve -p $HGPORT -d -n test --pid-file=hg.pid -A access.log -E errors.log
62 $ cat hg.pid >> $DAEMON_PIDS
62 $ cat hg.pid >> $DAEMON_PIDS
63
63
64 hgweb filerevision, html
64 hgweb filerevision, html
65
65
66 $ (get-with-headers.py localhost:$HGPORT 'file/tip/primes.py') | filterhtml
66 $ (get-with-headers.py localhost:$HGPORT 'file/tip/primes.py') | filterhtml
67 200 Script output follows
67 200 Script output follows
68
68
69 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
69 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
70 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
70 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
71 <head>
71 <head>
72 <link rel="icon" href="/static/hgicon.png" type="image/png" />
72 <link rel="icon" href="/static/hgicon.png" type="image/png" />
73 <meta name="robots" content="index, nofollow" />
73 <meta name="robots" content="index, nofollow" />
74 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
74 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
75 <script type="text/javascript" src="/static/mercurial.js"></script>
75 <script type="text/javascript" src="/static/mercurial.js"></script>
76
76
77 <link rel="stylesheet" href="/highlightcss" type="text/css" />
77 <link rel="stylesheet" href="/highlightcss" type="text/css" />
78 <title>test: 06824edf55d0 primes.py</title>
78 <title>test: 06824edf55d0 primes.py</title>
79 </head>
79 </head>
80 <body>
80 <body>
81
81
82 <div class="container">
82 <div class="container">
83 <div class="menu">
83 <div class="menu">
84 <div class="logo">
84 <div class="logo">
85 <a href="https://mercurial-scm.org/">
85 <a href="https://mercurial-scm.org/">
86 <img src="/static/hglogo.png" alt="mercurial" /></a>
86 <img src="/static/hglogo.png" alt="mercurial" /></a>
87 </div>
87 </div>
88 <ul>
88 <ul>
89 <li><a href="/shortlog/tip">log</a></li>
89 <li><a href="/shortlog/tip">log</a></li>
90 <li><a href="/graph/tip">graph</a></li>
90 <li><a href="/graph/tip">graph</a></li>
91 <li><a href="/tags">tags</a></li>
91 <li><a href="/tags">tags</a></li>
92 <li><a href="/bookmarks">bookmarks</a></li>
92 <li><a href="/bookmarks">bookmarks</a></li>
93 <li><a href="/branches">branches</a></li>
93 <li><a href="/branches">branches</a></li>
94 </ul>
94 </ul>
95 <ul>
95 <ul>
96 <li><a href="/rev/tip">changeset</a></li>
96 <li><a href="/rev/tip">changeset</a></li>
97 <li><a href="/file/tip/">browse</a></li>
97 <li><a href="/file/tip/">browse</a></li>
98 </ul>
98 </ul>
99 <ul>
99 <ul>
100 <li class="active">file</li>
100 <li class="active">file</li>
101 <li><a href="/file/tip/primes.py">latest</a></li>
101 <li><a href="/file/tip/primes.py">latest</a></li>
102 <li><a href="/diff/tip/primes.py">diff</a></li>
102 <li><a href="/diff/tip/primes.py">diff</a></li>
103 <li><a href="/comparison/tip/primes.py">comparison</a></li>
103 <li><a href="/comparison/tip/primes.py">comparison</a></li>
104 <li><a href="/annotate/tip/primes.py">annotate</a></li>
104 <li><a href="/annotate/tip/primes.py">annotate</a></li>
105 <li><a href="/log/tip/primes.py">file log</a></li>
105 <li><a href="/log/tip/primes.py">file log</a></li>
106 <li><a href="/raw-file/tip/primes.py">raw</a></li>
106 <li><a href="/raw-file/tip/primes.py">raw</a></li>
107 </ul>
107 </ul>
108 <ul>
108 <ul>
109 <li><a href="/help">help</a></li>
109 <li><a href="/help">help</a></li>
110 </ul>
110 </ul>
111 </div>
111 </div>
112
112
113 <div class="main">
113 <div class="main">
114 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
114 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
115 <h3>
115 <h3>
116 view primes.py @ 0:<a href="/rev/06824edf55d0">06824edf55d0</a>
116 view primes.py @ 0:<a href="/rev/06824edf55d0">06824edf55d0</a>
117 <span class="tag">tip</span>
117 <span class="tag">tip</span>
118 </h3>
118 </h3>
119
119
120 <form class="search" action="/log">
120 <form class="search" action="/log">
121
121
122 <p><input name="rev" id="search1" type="text" size="30" /></p>
122 <p><input name="rev" id="search1" type="text" size="30" /></p>
123 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
123 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
124 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
124 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
125 </form>
125 </form>
126
126
127 <div class="description">a</div>
127 <div class="description">a</div>
128
128
129 <table id="changesetEntry">
129 <table id="changesetEntry">
130 <tr>
130 <tr>
131 <th class="author">author</th>
131 <th class="author">author</th>
132 <td class="author">&#116;&#101;&#115;&#116;</td>
132 <td class="author">&#116;&#101;&#115;&#116;</td>
133 </tr>
133 </tr>
134 <tr>
134 <tr>
135 <th class="date">date</th>
135 <th class="date">date</th>
136 <td class="date age">Thu, 01 Jan 1970 00:00:00 +0000</td>
136 <td class="date age">Thu, 01 Jan 1970 00:00:00 +0000</td>
137 </tr>
137 </tr>
138 <tr>
138 <tr>
139 <th class="author">parents</th>
139 <th class="author">parents</th>
140 <td class="author"></td>
140 <td class="author"></td>
141 </tr>
141 </tr>
142 <tr>
142 <tr>
143 <th class="author">children</th>
143 <th class="author">children</th>
144 <td class="author"></td>
144 <td class="author"></td>
145 </tr>
145 </tr>
146 </table>
146 </table>
147
147
148 <div class="overflow">
148 <div class="overflow">
149 <div class="sourcefirst linewraptoggle">line wrap: <a class="linewraplink" href="javascript:toggleLinewrap()">on</a></div>
149 <div class="sourcefirst linewraptoggle">line wrap: <a class="linewraplink" href="javascript:toggleLinewrap()">on</a></div>
150 <div class="sourcefirst"> line source</div>
150 <div class="sourcefirst"> line source</div>
151 <pre class="sourcelines stripes4 wrap bottomline">
151 <pre class="sourcelines stripes4 wrap bottomline">
152 <span id="l1"><span class="c">#!/usr/bin/env python</span></span><a href="#l1"></a>
152 <span id="l1"><span class="c">#!/usr/bin/env python</span></span><a href="#l1"></a>
153 <span id="l2"></span><a href="#l2"></a>
153 <span id="l2"></span><a href="#l2"></a>
154 <span id="l3"><span class="sd">&quot;&quot;&quot;Fun with generators. Corresponding Haskell implementation:</span></span><a href="#l3"></a>
154 <span id="l3"><span class="sd">&quot;&quot;&quot;Fun with generators. Corresponding Haskell implementation:</span></span><a href="#l3"></a>
155 <span id="l4"></span><a href="#l4"></a>
155 <span id="l4"></span><a href="#l4"></a>
156 <span id="l5"><span class="sd">primes = 2 : sieve [3, 5..]</span></span><a href="#l5"></a>
156 <span id="l5"><span class="sd">primes = 2 : sieve [3, 5..]</span></span><a href="#l5"></a>
157 <span id="l6"><span class="sd"> where sieve (p:ns) = p : sieve [n | n &lt;- ns, mod n p /= 0]</span></span><a href="#l6"></a>
157 <span id="l6"><span class="sd"> where sieve (p:ns) = p : sieve [n | n &lt;- ns, mod n p /= 0]</span></span><a href="#l6"></a>
158 <span id="l7"><span class="sd">&quot;&quot;&quot;</span></span><a href="#l7"></a>
158 <span id="l7"><span class="sd">&quot;&quot;&quot;</span></span><a href="#l7"></a>
159 <span id="l8"></span><a href="#l8"></a>
159 <span id="l8"></span><a href="#l8"></a>
160 <span id="l9"><span class="kn">from</span> <span class="nn">itertools</span> <span class="kn">import</span> <span class="n">dropwhile</span><span class="p">,</span> <span class="n">ifilter</span><span class="p">,</span> <span class="n">islice</span><span class="p">,</span> <span class="n">count</span><span class="p">,</span> <span class="n">chain</span></span><a href="#l9"></a>
160 <span id="l9"><span class="kn">from</span> <span class="nn">itertools</span> <span class="kn">import</span> <span class="n">dropwhile</span><span class="p">,</span> <span class="n">ifilter</span><span class="p">,</span> <span class="n">islice</span><span class="p">,</span> <span class="n">count</span><span class="p">,</span> <span class="n">chain</span></span><a href="#l9"></a>
161 <span id="l10"></span><a href="#l10"></a>
161 <span id="l10"></span><a href="#l10"></a>
162 <span id="l11"><span class="kn">def</span> <span class="nf">primes</span><span class="p">():</span></span><a href="#l11"></a>
162 <span id="l11"><span class="kn">def</span> <span class="nf">primes</span><span class="p">():</span></span><a href="#l11"></a>
163 <span id="l12"> <span class="sd">&quot;&quot;&quot;Generate all primes.&quot;&quot;&quot;</span></span><a href="#l12"></a>
163 <span id="l12"> <span class="sd">&quot;&quot;&quot;Generate all primes.&quot;&quot;&quot;</span></span><a href="#l12"></a>
164 <span id="l13"> <span class="kn">def</span> <span class="nf">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></span><a href="#l13"></a>
164 <span id="l13"> <span class="kn">def</span> <span class="nf">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></span><a href="#l13"></a>
165 <span id="l14"> <span class="n">p</span> <span class="o">=</span> <span class="n">ns</span><span class="o">.</span><span class="n">next</span><span class="p">()</span></span><a href="#l14"></a>
165 <span id="l14"> <span class="n">p</span> <span class="o">=</span> <span class="n">ns</span><span class="o">.</span><span class="n">next</span><span class="p">()</span></span><a href="#l14"></a>
166 <span id="l15"> <span class="c"># It is important to yield *here* in order to stop the</span></span><a href="#l15"></a>
166 <span id="l15"> <span class="c"># It is important to yield *here* in order to stop the</span></span><a href="#l15"></a>
167 <span id="l16"> <span class="c"># infinite recursion.</span></span><a href="#l16"></a>
167 <span id="l16"> <span class="c"># infinite recursion.</span></span><a href="#l16"></a>
168 <span id="l17"> <span class="kn">yield</span> <span class="n">p</span></span><a href="#l17"></a>
168 <span id="l17"> <span class="kn">yield</span> <span class="n">p</span></span><a href="#l17"></a>
169 <span id="l18"> <span class="n">ns</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">%</span> <span class="n">p</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">ns</span><span class="p">)</span></span><a href="#l18"></a>
169 <span id="l18"> <span class="n">ns</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">%</span> <span class="n">p</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">ns</span><span class="p">)</span></span><a href="#l18"></a>
170 <span id="l19"> <span class="kn">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></span><a href="#l19"></a>
170 <span id="l19"> <span class="kn">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></span><a href="#l19"></a>
171 <span id="l20"> <span class="kn">yield</span> <span class="n">n</span></span><a href="#l20"></a>
171 <span id="l20"> <span class="kn">yield</span> <span class="n">n</span></span><a href="#l20"></a>
172 <span id="l21"></span><a href="#l21"></a>
172 <span id="l21"></span><a href="#l21"></a>
173 <span id="l22"> <span class="n">odds</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">i</span><span class="p">:</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">1</span><span class="p">,</span> <span class="n">count</span><span class="p">())</span></span><a href="#l22"></a>
173 <span id="l22"> <span class="n">odds</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">i</span><span class="p">:</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">1</span><span class="p">,</span> <span class="n">count</span><span class="p">())</span></span><a href="#l22"></a>
174 <span id="l23"> <span class="kn">return</span> <span class="n">chain</span><span class="p">([</span><span class="mi">2</span><span class="p">],</span> <span class="n">sieve</span><span class="p">(</span><span class="n">dropwhile</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">&lt;</span> <span class="mi">3</span><span class="p">,</span> <span class="n">odds</span><span class="p">)))</span></span><a href="#l23"></a>
174 <span id="l23"> <span class="kn">return</span> <span class="n">chain</span><span class="p">([</span><span class="mi">2</span><span class="p">],</span> <span class="n">sieve</span><span class="p">(</span><span class="n">dropwhile</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">&lt;</span> <span class="mi">3</span><span class="p">,</span> <span class="n">odds</span><span class="p">)))</span></span><a href="#l23"></a>
175 <span id="l24"></span><a href="#l24"></a>
175 <span id="l24"></span><a href="#l24"></a>
176 <span id="l25"><span class="kn">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&quot;__main__&quot;</span><span class="p">:</span></span><a href="#l25"></a>
176 <span id="l25"><span class="kn">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&quot;__main__&quot;</span><span class="p">:</span></span><a href="#l25"></a>
177 <span id="l26"> <span class="kn">import</span> <span class="nn">sys</span></span><a href="#l26"></a>
177 <span id="l26"> <span class="kn">import</span> <span class="nn">sys</span></span><a href="#l26"></a>
178 <span id="l27"> <span class="kn">try</span><span class="p">:</span></span><a href="#l27"></a>
178 <span id="l27"> <span class="kn">try</span><span class="p">:</span></span><a href="#l27"></a>
179 <span id="l28"> <span class="n">n</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span></span><a href="#l28"></a>
179 <span id="l28"> <span class="n">n</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span></span><a href="#l28"></a>
180 <span id="l29"> <span class="kn">except</span> <span class="p">(</span><span class="ne">ValueError</span><span class="p">,</span> <span class="ne">IndexError</span><span class="p">):</span></span><a href="#l29"></a>
180 <span id="l29"> <span class="kn">except</span> <span class="p">(</span><span class="ne">ValueError</span><span class="p">,</span> <span class="ne">IndexError</span><span class="p">):</span></span><a href="#l29"></a>
181 <span id="l30"> <span class="n">n</span> <span class="o">=</span> <span class="mi">10</span></span><a href="#l30"></a>
181 <span id="l30"> <span class="n">n</span> <span class="o">=</span> <span class="mi">10</span></span><a href="#l30"></a>
182 <span id="l31"> <span class="n">p</span> <span class="o">=</span> <span class="n">primes</span><span class="p">()</span></span><a href="#l31"></a>
182 <span id="l31"> <span class="n">p</span> <span class="o">=</span> <span class="n">primes</span><span class="p">()</span></span><a href="#l31"></a>
183 <span id="l32"> <span class="kn">print</span> <span class="s">&quot;The first </span><span class="si">%d</span><span class="s"> primes: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="nb">list</span><span class="p">(</span><span class="n">islice</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">n</span><span class="p">)))</span></span><a href="#l32"></a>
183 <span id="l32"> <span class="kn">print</span> <span class="s">&quot;The first </span><span class="si">%d</span><span class="s"> primes: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="nb">list</span><span class="p">(</span><span class="n">islice</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">n</span><span class="p">)))</span></span><a href="#l32"></a>
184 <span id="l33"></span><a href="#l33"></a></pre>
184 <span id="l33"></span><a href="#l33"></a></pre>
185 </div>
185 </div>
186 </div>
186 </div>
187 </div>
187 </div>
188
188
189 <script type="text/javascript">process_dates()</script>
189 <script type="text/javascript">process_dates()</script>
190
190
191
191
192 </body>
192 </body>
193 </html>
193 </html>
194
194
195
195
196 hgweb fileannotate, html
196 hgweb fileannotate, html
197
197
198 $ (get-with-headers.py localhost:$HGPORT 'annotate/tip/primes.py') | filterhtml
198 $ (get-with-headers.py localhost:$HGPORT 'annotate/tip/primes.py') | filterhtml
199 200 Script output follows
199 200 Script output follows
200
200
201 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
201 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
202 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
202 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
203 <head>
203 <head>
204 <link rel="icon" href="/static/hgicon.png" type="image/png" />
204 <link rel="icon" href="/static/hgicon.png" type="image/png" />
205 <meta name="robots" content="index, nofollow" />
205 <meta name="robots" content="index, nofollow" />
206 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
206 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
207 <script type="text/javascript" src="/static/mercurial.js"></script>
207 <script type="text/javascript" src="/static/mercurial.js"></script>
208
208
209 <link rel="stylesheet" href="/highlightcss" type="text/css" />
209 <link rel="stylesheet" href="/highlightcss" type="text/css" />
210 <title>test: primes.py annotate</title>
210 <title>test: primes.py annotate</title>
211 </head>
211 </head>
212 <body>
212 <body>
213
213
214 <div class="container">
214 <div class="container">
215 <div class="menu">
215 <div class="menu">
216 <div class="logo">
216 <div class="logo">
217 <a href="https://mercurial-scm.org/">
217 <a href="https://mercurial-scm.org/">
218 <img src="/static/hglogo.png" alt="mercurial" /></a>
218 <img src="/static/hglogo.png" alt="mercurial" /></a>
219 </div>
219 </div>
220 <ul>
220 <ul>
221 <li><a href="/shortlog/tip">log</a></li>
221 <li><a href="/shortlog/tip">log</a></li>
222 <li><a href="/graph/tip">graph</a></li>
222 <li><a href="/graph/tip">graph</a></li>
223 <li><a href="/tags">tags</a></li>
223 <li><a href="/tags">tags</a></li>
224 <li><a href="/bookmarks">bookmarks</a></li>
224 <li><a href="/bookmarks">bookmarks</a></li>
225 <li><a href="/branches">branches</a></li>
225 <li><a href="/branches">branches</a></li>
226 </ul>
226 </ul>
227
227
228 <ul>
228 <ul>
229 <li><a href="/rev/tip">changeset</a></li>
229 <li><a href="/rev/tip">changeset</a></li>
230 <li><a href="/file/tip/">browse</a></li>
230 <li><a href="/file/tip/">browse</a></li>
231 </ul>
231 </ul>
232 <ul>
232 <ul>
233 <li><a href="/file/tip/primes.py">file</a></li>
233 <li><a href="/file/tip/primes.py">file</a></li>
234 <li><a href="/file/tip/primes.py">latest</a></li>
234 <li><a href="/file/tip/primes.py">latest</a></li>
235 <li><a href="/diff/tip/primes.py">diff</a></li>
235 <li><a href="/diff/tip/primes.py">diff</a></li>
236 <li><a href="/comparison/tip/primes.py">comparison</a></li>
236 <li><a href="/comparison/tip/primes.py">comparison</a></li>
237 <li class="active">annotate</li>
237 <li class="active">annotate</li>
238 <li><a href="/log/tip/primes.py">file log</a></li>
238 <li><a href="/log/tip/primes.py">file log</a></li>
239 <li><a href="/raw-annotate/tip/primes.py">raw</a></li>
239 <li><a href="/raw-annotate/tip/primes.py">raw</a></li>
240 </ul>
240 </ul>
241 <ul>
241 <ul>
242 <li><a href="/help">help</a></li>
242 <li><a href="/help">help</a></li>
243 </ul>
243 </ul>
244 </div>
244 </div>
245
245
246 <div class="main">
246 <div class="main">
247 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
247 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
248 <h3>
248 <h3>
249 annotate primes.py @ 0:<a href="/rev/06824edf55d0">06824edf55d0</a>
249 annotate primes.py @ 0:<a href="/rev/06824edf55d0">06824edf55d0</a>
250 <span class="tag">tip</span>
250 <span class="tag">tip</span>
251 </h3>
251 </h3>
252
252
253 <form class="search" action="/log">
253 <form class="search" action="/log">
254
254
255 <p><input name="rev" id="search1" type="text" size="30" /></p>
255 <p><input name="rev" id="search1" type="text" size="30" /></p>
256 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
256 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
257 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
257 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
258 </form>
258 </form>
259
259
260 <div class="description">a</div>
260 <div class="description">a</div>
261
261
262 <table id="changesetEntry">
262 <table id="changesetEntry">
263 <tr>
263 <tr>
264 <th class="author">author</th>
264 <th class="author">author</th>
265 <td class="author">&#116;&#101;&#115;&#116;</td>
265 <td class="author">&#116;&#101;&#115;&#116;</td>
266 </tr>
266 </tr>
267 <tr>
267 <tr>
268 <th class="date">date</th>
268 <th class="date">date</th>
269 <td class="date age">Thu, 01 Jan 1970 00:00:00 +0000</td>
269 <td class="date age">Thu, 01 Jan 1970 00:00:00 +0000</td>
270 </tr>
270 </tr>
271 <tr>
271 <tr>
272 <th class="author">parents</th>
272 <th class="author">parents</th>
273 <td class="author"></td>
273 <td class="author"></td>
274 </tr>
274 </tr>
275 <tr>
275 <tr>
276 <th class="author">children</th>
276 <th class="author">children</th>
277 <td class="author"></td>
277 <td class="author"></td>
278 </tr>
278 </tr>
279 </table>
279 </table>
280
280
281 <div class="overflow">
281 <div class="overflow">
282 <table class="bigtable">
282 <table class="bigtable">
283 <thead>
283 <thead>
284 <tr>
284 <tr>
285 <th class="annotate">rev</th>
285 <th class="annotate">rev</th>
286 <th class="line">&nbsp;&nbsp;line source</th>
286 <th class="line">&nbsp;&nbsp;line source</th>
287 </tr>
287 </tr>
288 </thead>
288 </thead>
289 <tbody class="stripes2">
289 <tbody class="stripes2">
290
290
291 <tr id="l1" class="thisrev">
291 <tr id="l1" class="thisrev">
292 <td class="annotate">
292 <td class="annotate">
293 <a href="/annotate/06824edf55d0/primes.py#l1">
293 <a href="/annotate/06824edf55d0/primes.py#l1">
294 0
294 0
295 </a>
295 </a>
296 <div class="annotate-info">
296 <div class="annotate-info">
297 <div>06824edf55d0: a</div>
297 <div>
298 <a href="/annotate/06824edf55d0/primes.py#l1">
299 06824edf55d0</a>
300 a
301 </div>
298 <div><em>&#116;&#101;&#115;&#116;</em></div>
302 <div><em>&#116;&#101;&#115;&#116;</em></div>
299 <div>parents: </div>
303 <div>parents: </div>
300 <a href="/diff/06824edf55d0/primes.py">diff</a>
304 <a href="/diff/06824edf55d0/primes.py">diff</a>
301 <a href="/rev/06824edf55d0">changeset</a>
305 <a href="/rev/06824edf55d0">changeset</a>
302 </div>
306 </div>
303 </td>
307 </td>
304 <td class="source"><a href="#l1"> 1</a> <span class="c">#!/usr/bin/env python</span></td>
308 <td class="source"><a href="#l1"> 1</a> <span class="c">#!/usr/bin/env python</span></td>
305 </tr>
309 </tr>
306 <tr id="l2" class="thisrev">
310 <tr id="l2" class="thisrev">
307 <td class="annotate">
311 <td class="annotate">
308
312
309 <div class="annotate-info">
313 <div class="annotate-info">
310 <div>06824edf55d0: a</div>
314 <div>
315 <a href="/annotate/06824edf55d0/primes.py#l2">
316 06824edf55d0</a>
317 a
318 </div>
311 <div><em>&#116;&#101;&#115;&#116;</em></div>
319 <div><em>&#116;&#101;&#115;&#116;</em></div>
312 <div>parents: </div>
320 <div>parents: </div>
313 <a href="/diff/06824edf55d0/primes.py">diff</a>
321 <a href="/diff/06824edf55d0/primes.py">diff</a>
314 <a href="/rev/06824edf55d0">changeset</a>
322 <a href="/rev/06824edf55d0">changeset</a>
315 </div>
323 </div>
316 </td>
324 </td>
317 <td class="source"><a href="#l2"> 2</a> </td>
325 <td class="source"><a href="#l2"> 2</a> </td>
318 </tr>
326 </tr>
319 <tr id="l3" class="thisrev">
327 <tr id="l3" class="thisrev">
320 <td class="annotate">
328 <td class="annotate">
321
329
322 <div class="annotate-info">
330 <div class="annotate-info">
323 <div>06824edf55d0: a</div>
331 <div>
332 <a href="/annotate/06824edf55d0/primes.py#l3">
333 06824edf55d0</a>
334 a
335 </div>
324 <div><em>&#116;&#101;&#115;&#116;</em></div>
336 <div><em>&#116;&#101;&#115;&#116;</em></div>
325 <div>parents: </div>
337 <div>parents: </div>
326 <a href="/diff/06824edf55d0/primes.py">diff</a>
338 <a href="/diff/06824edf55d0/primes.py">diff</a>
327 <a href="/rev/06824edf55d0">changeset</a>
339 <a href="/rev/06824edf55d0">changeset</a>
328 </div>
340 </div>
329 </td>
341 </td>
330 <td class="source"><a href="#l3"> 3</a> <span class="sd">&quot;&quot;&quot;Fun with generators. Corresponding Haskell implementation:</span></td>
342 <td class="source"><a href="#l3"> 3</a> <span class="sd">&quot;&quot;&quot;Fun with generators. Corresponding Haskell implementation:</span></td>
331 </tr>
343 </tr>
332 <tr id="l4" class="thisrev">
344 <tr id="l4" class="thisrev">
333 <td class="annotate">
345 <td class="annotate">
334
346
335 <div class="annotate-info">
347 <div class="annotate-info">
336 <div>06824edf55d0: a</div>
348 <div>
349 <a href="/annotate/06824edf55d0/primes.py#l4">
350 06824edf55d0</a>
351 a
352 </div>
337 <div><em>&#116;&#101;&#115;&#116;</em></div>
353 <div><em>&#116;&#101;&#115;&#116;</em></div>
338 <div>parents: </div>
354 <div>parents: </div>
339 <a href="/diff/06824edf55d0/primes.py">diff</a>
355 <a href="/diff/06824edf55d0/primes.py">diff</a>
340 <a href="/rev/06824edf55d0">changeset</a>
356 <a href="/rev/06824edf55d0">changeset</a>
341 </div>
357 </div>
342 </td>
358 </td>
343 <td class="source"><a href="#l4"> 4</a> </td>
359 <td class="source"><a href="#l4"> 4</a> </td>
344 </tr>
360 </tr>
345 <tr id="l5" class="thisrev">
361 <tr id="l5" class="thisrev">
346 <td class="annotate">
362 <td class="annotate">
347
363
348 <div class="annotate-info">
364 <div class="annotate-info">
349 <div>06824edf55d0: a</div>
365 <div>
366 <a href="/annotate/06824edf55d0/primes.py#l5">
367 06824edf55d0</a>
368 a
369 </div>
350 <div><em>&#116;&#101;&#115;&#116;</em></div>
370 <div><em>&#116;&#101;&#115;&#116;</em></div>
351 <div>parents: </div>
371 <div>parents: </div>
352 <a href="/diff/06824edf55d0/primes.py">diff</a>
372 <a href="/diff/06824edf55d0/primes.py">diff</a>
353 <a href="/rev/06824edf55d0">changeset</a>
373 <a href="/rev/06824edf55d0">changeset</a>
354 </div>
374 </div>
355 </td>
375 </td>
356 <td class="source"><a href="#l5"> 5</a> <span class="sd">primes = 2 : sieve [3, 5..]</span></td>
376 <td class="source"><a href="#l5"> 5</a> <span class="sd">primes = 2 : sieve [3, 5..]</span></td>
357 </tr>
377 </tr>
358 <tr id="l6" class="thisrev">
378 <tr id="l6" class="thisrev">
359 <td class="annotate">
379 <td class="annotate">
360
380
361 <div class="annotate-info">
381 <div class="annotate-info">
362 <div>06824edf55d0: a</div>
382 <div>
383 <a href="/annotate/06824edf55d0/primes.py#l6">
384 06824edf55d0</a>
385 a
386 </div>
363 <div><em>&#116;&#101;&#115;&#116;</em></div>
387 <div><em>&#116;&#101;&#115;&#116;</em></div>
364 <div>parents: </div>
388 <div>parents: </div>
365 <a href="/diff/06824edf55d0/primes.py">diff</a>
389 <a href="/diff/06824edf55d0/primes.py">diff</a>
366 <a href="/rev/06824edf55d0">changeset</a>
390 <a href="/rev/06824edf55d0">changeset</a>
367 </div>
391 </div>
368 </td>
392 </td>
369 <td class="source"><a href="#l6"> 6</a> <span class="sd"> where sieve (p:ns) = p : sieve [n | n &lt;- ns, mod n p /= 0]</span></td>
393 <td class="source"><a href="#l6"> 6</a> <span class="sd"> where sieve (p:ns) = p : sieve [n | n &lt;- ns, mod n p /= 0]</span></td>
370 </tr>
394 </tr>
371 <tr id="l7" class="thisrev">
395 <tr id="l7" class="thisrev">
372 <td class="annotate">
396 <td class="annotate">
373
397
374 <div class="annotate-info">
398 <div class="annotate-info">
375 <div>06824edf55d0: a</div>
399 <div>
400 <a href="/annotate/06824edf55d0/primes.py#l7">
401 06824edf55d0</a>
402 a
403 </div>
376 <div><em>&#116;&#101;&#115;&#116;</em></div>
404 <div><em>&#116;&#101;&#115;&#116;</em></div>
377 <div>parents: </div>
405 <div>parents: </div>
378 <a href="/diff/06824edf55d0/primes.py">diff</a>
406 <a href="/diff/06824edf55d0/primes.py">diff</a>
379 <a href="/rev/06824edf55d0">changeset</a>
407 <a href="/rev/06824edf55d0">changeset</a>
380 </div>
408 </div>
381 </td>
409 </td>
382 <td class="source"><a href="#l7"> 7</a> <span class="sd">&quot;&quot;&quot;</span></td>
410 <td class="source"><a href="#l7"> 7</a> <span class="sd">&quot;&quot;&quot;</span></td>
383 </tr>
411 </tr>
384 <tr id="l8" class="thisrev">
412 <tr id="l8" class="thisrev">
385 <td class="annotate">
413 <td class="annotate">
386
414
387 <div class="annotate-info">
415 <div class="annotate-info">
388 <div>06824edf55d0: a</div>
416 <div>
417 <a href="/annotate/06824edf55d0/primes.py#l8">
418 06824edf55d0</a>
419 a
420 </div>
389 <div><em>&#116;&#101;&#115;&#116;</em></div>
421 <div><em>&#116;&#101;&#115;&#116;</em></div>
390 <div>parents: </div>
422 <div>parents: </div>
391 <a href="/diff/06824edf55d0/primes.py">diff</a>
423 <a href="/diff/06824edf55d0/primes.py">diff</a>
392 <a href="/rev/06824edf55d0">changeset</a>
424 <a href="/rev/06824edf55d0">changeset</a>
393 </div>
425 </div>
394 </td>
426 </td>
395 <td class="source"><a href="#l8"> 8</a> </td>
427 <td class="source"><a href="#l8"> 8</a> </td>
396 </tr>
428 </tr>
397 <tr id="l9" class="thisrev">
429 <tr id="l9" class="thisrev">
398 <td class="annotate">
430 <td class="annotate">
399
431
400 <div class="annotate-info">
432 <div class="annotate-info">
401 <div>06824edf55d0: a</div>
433 <div>
434 <a href="/annotate/06824edf55d0/primes.py#l9">
435 06824edf55d0</a>
436 a
437 </div>
402 <div><em>&#116;&#101;&#115;&#116;</em></div>
438 <div><em>&#116;&#101;&#115;&#116;</em></div>
403 <div>parents: </div>
439 <div>parents: </div>
404 <a href="/diff/06824edf55d0/primes.py">diff</a>
440 <a href="/diff/06824edf55d0/primes.py">diff</a>
405 <a href="/rev/06824edf55d0">changeset</a>
441 <a href="/rev/06824edf55d0">changeset</a>
406 </div>
442 </div>
407 </td>
443 </td>
408 <td class="source"><a href="#l9"> 9</a> <span class="kn">from</span> <span class="nn">itertools</span> <span class="kn">import</span> <span class="n">dropwhile</span><span class="p">,</span> <span class="n">ifilter</span><span class="p">,</span> <span class="n">islice</span><span class="p">,</span> <span class="n">count</span><span class="p">,</span> <span class="n">chain</span></td>
444 <td class="source"><a href="#l9"> 9</a> <span class="kn">from</span> <span class="nn">itertools</span> <span class="kn">import</span> <span class="n">dropwhile</span><span class="p">,</span> <span class="n">ifilter</span><span class="p">,</span> <span class="n">islice</span><span class="p">,</span> <span class="n">count</span><span class="p">,</span> <span class="n">chain</span></td>
409 </tr>
445 </tr>
410 <tr id="l10" class="thisrev">
446 <tr id="l10" class="thisrev">
411 <td class="annotate">
447 <td class="annotate">
412
448
413 <div class="annotate-info">
449 <div class="annotate-info">
414 <div>06824edf55d0: a</div>
450 <div>
451 <a href="/annotate/06824edf55d0/primes.py#l10">
452 06824edf55d0</a>
453 a
454 </div>
415 <div><em>&#116;&#101;&#115;&#116;</em></div>
455 <div><em>&#116;&#101;&#115;&#116;</em></div>
416 <div>parents: </div>
456 <div>parents: </div>
417 <a href="/diff/06824edf55d0/primes.py">diff</a>
457 <a href="/diff/06824edf55d0/primes.py">diff</a>
418 <a href="/rev/06824edf55d0">changeset</a>
458 <a href="/rev/06824edf55d0">changeset</a>
419 </div>
459 </div>
420 </td>
460 </td>
421 <td class="source"><a href="#l10"> 10</a> </td>
461 <td class="source"><a href="#l10"> 10</a> </td>
422 </tr>
462 </tr>
423 <tr id="l11" class="thisrev">
463 <tr id="l11" class="thisrev">
424 <td class="annotate">
464 <td class="annotate">
425
465
426 <div class="annotate-info">
466 <div class="annotate-info">
427 <div>06824edf55d0: a</div>
467 <div>
468 <a href="/annotate/06824edf55d0/primes.py#l11">
469 06824edf55d0</a>
470 a
471 </div>
428 <div><em>&#116;&#101;&#115;&#116;</em></div>
472 <div><em>&#116;&#101;&#115;&#116;</em></div>
429 <div>parents: </div>
473 <div>parents: </div>
430 <a href="/diff/06824edf55d0/primes.py">diff</a>
474 <a href="/diff/06824edf55d0/primes.py">diff</a>
431 <a href="/rev/06824edf55d0">changeset</a>
475 <a href="/rev/06824edf55d0">changeset</a>
432 </div>
476 </div>
433 </td>
477 </td>
434 <td class="source"><a href="#l11"> 11</a> <span class="kn">def</span> <span class="nf">primes</span><span class="p">():</span></td>
478 <td class="source"><a href="#l11"> 11</a> <span class="kn">def</span> <span class="nf">primes</span><span class="p">():</span></td>
435 </tr>
479 </tr>
436 <tr id="l12" class="thisrev">
480 <tr id="l12" class="thisrev">
437 <td class="annotate">
481 <td class="annotate">
438
482
439 <div class="annotate-info">
483 <div class="annotate-info">
440 <div>06824edf55d0: a</div>
484 <div>
485 <a href="/annotate/06824edf55d0/primes.py#l12">
486 06824edf55d0</a>
487 a
488 </div>
441 <div><em>&#116;&#101;&#115;&#116;</em></div>
489 <div><em>&#116;&#101;&#115;&#116;</em></div>
442 <div>parents: </div>
490 <div>parents: </div>
443 <a href="/diff/06824edf55d0/primes.py">diff</a>
491 <a href="/diff/06824edf55d0/primes.py">diff</a>
444 <a href="/rev/06824edf55d0">changeset</a>
492 <a href="/rev/06824edf55d0">changeset</a>
445 </div>
493 </div>
446 </td>
494 </td>
447 <td class="source"><a href="#l12"> 12</a> <span class="sd">&quot;&quot;&quot;Generate all primes.&quot;&quot;&quot;</span></td>
495 <td class="source"><a href="#l12"> 12</a> <span class="sd">&quot;&quot;&quot;Generate all primes.&quot;&quot;&quot;</span></td>
448 </tr>
496 </tr>
449 <tr id="l13" class="thisrev">
497 <tr id="l13" class="thisrev">
450 <td class="annotate">
498 <td class="annotate">
451
499
452 <div class="annotate-info">
500 <div class="annotate-info">
453 <div>06824edf55d0: a</div>
501 <div>
502 <a href="/annotate/06824edf55d0/primes.py#l13">
503 06824edf55d0</a>
504 a
505 </div>
454 <div><em>&#116;&#101;&#115;&#116;</em></div>
506 <div><em>&#116;&#101;&#115;&#116;</em></div>
455 <div>parents: </div>
507 <div>parents: </div>
456 <a href="/diff/06824edf55d0/primes.py">diff</a>
508 <a href="/diff/06824edf55d0/primes.py">diff</a>
457 <a href="/rev/06824edf55d0">changeset</a>
509 <a href="/rev/06824edf55d0">changeset</a>
458 </div>
510 </div>
459 </td>
511 </td>
460 <td class="source"><a href="#l13"> 13</a> <span class="kn">def</span> <span class="nf">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></td>
512 <td class="source"><a href="#l13"> 13</a> <span class="kn">def</span> <span class="nf">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></td>
461 </tr>
513 </tr>
462 <tr id="l14" class="thisrev">
514 <tr id="l14" class="thisrev">
463 <td class="annotate">
515 <td class="annotate">
464
516
465 <div class="annotate-info">
517 <div class="annotate-info">
466 <div>06824edf55d0: a</div>
518 <div>
519 <a href="/annotate/06824edf55d0/primes.py#l14">
520 06824edf55d0</a>
521 a
522 </div>
467 <div><em>&#116;&#101;&#115;&#116;</em></div>
523 <div><em>&#116;&#101;&#115;&#116;</em></div>
468 <div>parents: </div>
524 <div>parents: </div>
469 <a href="/diff/06824edf55d0/primes.py">diff</a>
525 <a href="/diff/06824edf55d0/primes.py">diff</a>
470 <a href="/rev/06824edf55d0">changeset</a>
526 <a href="/rev/06824edf55d0">changeset</a>
471 </div>
527 </div>
472 </td>
528 </td>
473 <td class="source"><a href="#l14"> 14</a> <span class="n">p</span> <span class="o">=</span> <span class="n">ns</span><span class="o">.</span><span class="n">next</span><span class="p">()</span></td>
529 <td class="source"><a href="#l14"> 14</a> <span class="n">p</span> <span class="o">=</span> <span class="n">ns</span><span class="o">.</span><span class="n">next</span><span class="p">()</span></td>
474 </tr>
530 </tr>
475 <tr id="l15" class="thisrev">
531 <tr id="l15" class="thisrev">
476 <td class="annotate">
532 <td class="annotate">
477
533
478 <div class="annotate-info">
534 <div class="annotate-info">
479 <div>06824edf55d0: a</div>
535 <div>
536 <a href="/annotate/06824edf55d0/primes.py#l15">
537 06824edf55d0</a>
538 a
539 </div>
480 <div><em>&#116;&#101;&#115;&#116;</em></div>
540 <div><em>&#116;&#101;&#115;&#116;</em></div>
481 <div>parents: </div>
541 <div>parents: </div>
482 <a href="/diff/06824edf55d0/primes.py">diff</a>
542 <a href="/diff/06824edf55d0/primes.py">diff</a>
483 <a href="/rev/06824edf55d0">changeset</a>
543 <a href="/rev/06824edf55d0">changeset</a>
484 </div>
544 </div>
485 </td>
545 </td>
486 <td class="source"><a href="#l15"> 15</a> <span class="c"># It is important to yield *here* in order to stop the</span></td>
546 <td class="source"><a href="#l15"> 15</a> <span class="c"># It is important to yield *here* in order to stop the</span></td>
487 </tr>
547 </tr>
488 <tr id="l16" class="thisrev">
548 <tr id="l16" class="thisrev">
489 <td class="annotate">
549 <td class="annotate">
490
550
491 <div class="annotate-info">
551 <div class="annotate-info">
492 <div>06824edf55d0: a</div>
552 <div>
553 <a href="/annotate/06824edf55d0/primes.py#l16">
554 06824edf55d0</a>
555 a
556 </div>
493 <div><em>&#116;&#101;&#115;&#116;</em></div>
557 <div><em>&#116;&#101;&#115;&#116;</em></div>
494 <div>parents: </div>
558 <div>parents: </div>
495 <a href="/diff/06824edf55d0/primes.py">diff</a>
559 <a href="/diff/06824edf55d0/primes.py">diff</a>
496 <a href="/rev/06824edf55d0">changeset</a>
560 <a href="/rev/06824edf55d0">changeset</a>
497 </div>
561 </div>
498 </td>
562 </td>
499 <td class="source"><a href="#l16"> 16</a> <span class="c"># infinite recursion.</span></td>
563 <td class="source"><a href="#l16"> 16</a> <span class="c"># infinite recursion.</span></td>
500 </tr>
564 </tr>
501 <tr id="l17" class="thisrev">
565 <tr id="l17" class="thisrev">
502 <td class="annotate">
566 <td class="annotate">
503
567
504 <div class="annotate-info">
568 <div class="annotate-info">
505 <div>06824edf55d0: a</div>
569 <div>
570 <a href="/annotate/06824edf55d0/primes.py#l17">
571 06824edf55d0</a>
572 a
573 </div>
506 <div><em>&#116;&#101;&#115;&#116;</em></div>
574 <div><em>&#116;&#101;&#115;&#116;</em></div>
507 <div>parents: </div>
575 <div>parents: </div>
508 <a href="/diff/06824edf55d0/primes.py">diff</a>
576 <a href="/diff/06824edf55d0/primes.py">diff</a>
509 <a href="/rev/06824edf55d0">changeset</a>
577 <a href="/rev/06824edf55d0">changeset</a>
510 </div>
578 </div>
511 </td>
579 </td>
512 <td class="source"><a href="#l17"> 17</a> <span class="kn">yield</span> <span class="n">p</span></td>
580 <td class="source"><a href="#l17"> 17</a> <span class="kn">yield</span> <span class="n">p</span></td>
513 </tr>
581 </tr>
514 <tr id="l18" class="thisrev">
582 <tr id="l18" class="thisrev">
515 <td class="annotate">
583 <td class="annotate">
516
584
517 <div class="annotate-info">
585 <div class="annotate-info">
518 <div>06824edf55d0: a</div>
586 <div>
587 <a href="/annotate/06824edf55d0/primes.py#l18">
588 06824edf55d0</a>
589 a
590 </div>
519 <div><em>&#116;&#101;&#115;&#116;</em></div>
591 <div><em>&#116;&#101;&#115;&#116;</em></div>
520 <div>parents: </div>
592 <div>parents: </div>
521 <a href="/diff/06824edf55d0/primes.py">diff</a>
593 <a href="/diff/06824edf55d0/primes.py">diff</a>
522 <a href="/rev/06824edf55d0">changeset</a>
594 <a href="/rev/06824edf55d0">changeset</a>
523 </div>
595 </div>
524 </td>
596 </td>
525 <td class="source"><a href="#l18"> 18</a> <span class="n">ns</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">%</span> <span class="n">p</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">ns</span><span class="p">)</span></td>
597 <td class="source"><a href="#l18"> 18</a> <span class="n">ns</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">%</span> <span class="n">p</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">ns</span><span class="p">)</span></td>
526 </tr>
598 </tr>
527 <tr id="l19" class="thisrev">
599 <tr id="l19" class="thisrev">
528 <td class="annotate">
600 <td class="annotate">
529
601
530 <div class="annotate-info">
602 <div class="annotate-info">
531 <div>06824edf55d0: a</div>
603 <div>
604 <a href="/annotate/06824edf55d0/primes.py#l19">
605 06824edf55d0</a>
606 a
607 </div>
532 <div><em>&#116;&#101;&#115;&#116;</em></div>
608 <div><em>&#116;&#101;&#115;&#116;</em></div>
533 <div>parents: </div>
609 <div>parents: </div>
534 <a href="/diff/06824edf55d0/primes.py">diff</a>
610 <a href="/diff/06824edf55d0/primes.py">diff</a>
535 <a href="/rev/06824edf55d0">changeset</a>
611 <a href="/rev/06824edf55d0">changeset</a>
536 </div>
612 </div>
537 </td>
613 </td>
538 <td class="source"><a href="#l19"> 19</a> <span class="kn">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></td>
614 <td class="source"><a href="#l19"> 19</a> <span class="kn">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></td>
539 </tr>
615 </tr>
540 <tr id="l20" class="thisrev">
616 <tr id="l20" class="thisrev">
541 <td class="annotate">
617 <td class="annotate">
542
618
543 <div class="annotate-info">
619 <div class="annotate-info">
544 <div>06824edf55d0: a</div>
620 <div>
621 <a href="/annotate/06824edf55d0/primes.py#l20">
622 06824edf55d0</a>
623 a
624 </div>
545 <div><em>&#116;&#101;&#115;&#116;</em></div>
625 <div><em>&#116;&#101;&#115;&#116;</em></div>
546 <div>parents: </div>
626 <div>parents: </div>
547 <a href="/diff/06824edf55d0/primes.py">diff</a>
627 <a href="/diff/06824edf55d0/primes.py">diff</a>
548 <a href="/rev/06824edf55d0">changeset</a>
628 <a href="/rev/06824edf55d0">changeset</a>
549 </div>
629 </div>
550 </td>
630 </td>
551 <td class="source"><a href="#l20"> 20</a> <span class="kn">yield</span> <span class="n">n</span></td>
631 <td class="source"><a href="#l20"> 20</a> <span class="kn">yield</span> <span class="n">n</span></td>
552 </tr>
632 </tr>
553 <tr id="l21" class="thisrev">
633 <tr id="l21" class="thisrev">
554 <td class="annotate">
634 <td class="annotate">
555
635
556 <div class="annotate-info">
636 <div class="annotate-info">
557 <div>06824edf55d0: a</div>
637 <div>
638 <a href="/annotate/06824edf55d0/primes.py#l21">
639 06824edf55d0</a>
640 a
641 </div>
558 <div><em>&#116;&#101;&#115;&#116;</em></div>
642 <div><em>&#116;&#101;&#115;&#116;</em></div>
559 <div>parents: </div>
643 <div>parents: </div>
560 <a href="/diff/06824edf55d0/primes.py">diff</a>
644 <a href="/diff/06824edf55d0/primes.py">diff</a>
561 <a href="/rev/06824edf55d0">changeset</a>
645 <a href="/rev/06824edf55d0">changeset</a>
562 </div>
646 </div>
563 </td>
647 </td>
564 <td class="source"><a href="#l21"> 21</a> </td>
648 <td class="source"><a href="#l21"> 21</a> </td>
565 </tr>
649 </tr>
566 <tr id="l22" class="thisrev">
650 <tr id="l22" class="thisrev">
567 <td class="annotate">
651 <td class="annotate">
568
652
569 <div class="annotate-info">
653 <div class="annotate-info">
570 <div>06824edf55d0: a</div>
654 <div>
655 <a href="/annotate/06824edf55d0/primes.py#l22">
656 06824edf55d0</a>
657 a
658 </div>
571 <div><em>&#116;&#101;&#115;&#116;</em></div>
659 <div><em>&#116;&#101;&#115;&#116;</em></div>
572 <div>parents: </div>
660 <div>parents: </div>
573 <a href="/diff/06824edf55d0/primes.py">diff</a>
661 <a href="/diff/06824edf55d0/primes.py">diff</a>
574 <a href="/rev/06824edf55d0">changeset</a>
662 <a href="/rev/06824edf55d0">changeset</a>
575 </div>
663 </div>
576 </td>
664 </td>
577 <td class="source"><a href="#l22"> 22</a> <span class="n">odds</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">i</span><span class="p">:</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">1</span><span class="p">,</span> <span class="n">count</span><span class="p">())</span></td>
665 <td class="source"><a href="#l22"> 22</a> <span class="n">odds</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">i</span><span class="p">:</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">1</span><span class="p">,</span> <span class="n">count</span><span class="p">())</span></td>
578 </tr>
666 </tr>
579 <tr id="l23" class="thisrev">
667 <tr id="l23" class="thisrev">
580 <td class="annotate">
668 <td class="annotate">
581
669
582 <div class="annotate-info">
670 <div class="annotate-info">
583 <div>06824edf55d0: a</div>
671 <div>
672 <a href="/annotate/06824edf55d0/primes.py#l23">
673 06824edf55d0</a>
674 a
675 </div>
584 <div><em>&#116;&#101;&#115;&#116;</em></div>
676 <div><em>&#116;&#101;&#115;&#116;</em></div>
585 <div>parents: </div>
677 <div>parents: </div>
586 <a href="/diff/06824edf55d0/primes.py">diff</a>
678 <a href="/diff/06824edf55d0/primes.py">diff</a>
587 <a href="/rev/06824edf55d0">changeset</a>
679 <a href="/rev/06824edf55d0">changeset</a>
588 </div>
680 </div>
589 </td>
681 </td>
590 <td class="source"><a href="#l23"> 23</a> <span class="kn">return</span> <span class="n">chain</span><span class="p">([</span><span class="mi">2</span><span class="p">],</span> <span class="n">sieve</span><span class="p">(</span><span class="n">dropwhile</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">&lt;</span> <span class="mi">3</span><span class="p">,</span> <span class="n">odds</span><span class="p">)))</span></td>
682 <td class="source"><a href="#l23"> 23</a> <span class="kn">return</span> <span class="n">chain</span><span class="p">([</span><span class="mi">2</span><span class="p">],</span> <span class="n">sieve</span><span class="p">(</span><span class="n">dropwhile</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">&lt;</span> <span class="mi">3</span><span class="p">,</span> <span class="n">odds</span><span class="p">)))</span></td>
591 </tr>
683 </tr>
592 <tr id="l24" class="thisrev">
684 <tr id="l24" class="thisrev">
593 <td class="annotate">
685 <td class="annotate">
594
686
595 <div class="annotate-info">
687 <div class="annotate-info">
596 <div>06824edf55d0: a</div>
688 <div>
689 <a href="/annotate/06824edf55d0/primes.py#l24">
690 06824edf55d0</a>
691 a
692 </div>
597 <div><em>&#116;&#101;&#115;&#116;</em></div>
693 <div><em>&#116;&#101;&#115;&#116;</em></div>
598 <div>parents: </div>
694 <div>parents: </div>
599 <a href="/diff/06824edf55d0/primes.py">diff</a>
695 <a href="/diff/06824edf55d0/primes.py">diff</a>
600 <a href="/rev/06824edf55d0">changeset</a>
696 <a href="/rev/06824edf55d0">changeset</a>
601 </div>
697 </div>
602 </td>
698 </td>
603 <td class="source"><a href="#l24"> 24</a> </td>
699 <td class="source"><a href="#l24"> 24</a> </td>
604 </tr>
700 </tr>
605 <tr id="l25" class="thisrev">
701 <tr id="l25" class="thisrev">
606 <td class="annotate">
702 <td class="annotate">
607
703
608 <div class="annotate-info">
704 <div class="annotate-info">
609 <div>06824edf55d0: a</div>
705 <div>
706 <a href="/annotate/06824edf55d0/primes.py#l25">
707 06824edf55d0</a>
708 a
709 </div>
610 <div><em>&#116;&#101;&#115;&#116;</em></div>
710 <div><em>&#116;&#101;&#115;&#116;</em></div>
611 <div>parents: </div>
711 <div>parents: </div>
612 <a href="/diff/06824edf55d0/primes.py">diff</a>
712 <a href="/diff/06824edf55d0/primes.py">diff</a>
613 <a href="/rev/06824edf55d0">changeset</a>
713 <a href="/rev/06824edf55d0">changeset</a>
614 </div>
714 </div>
615 </td>
715 </td>
616 <td class="source"><a href="#l25"> 25</a> <span class="kn">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&quot;__main__&quot;</span><span class="p">:</span></td>
716 <td class="source"><a href="#l25"> 25</a> <span class="kn">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&quot;__main__&quot;</span><span class="p">:</span></td>
617 </tr>
717 </tr>
618 <tr id="l26" class="thisrev">
718 <tr id="l26" class="thisrev">
619 <td class="annotate">
719 <td class="annotate">
620
720
621 <div class="annotate-info">
721 <div class="annotate-info">
622 <div>06824edf55d0: a</div>
722 <div>
723 <a href="/annotate/06824edf55d0/primes.py#l26">
724 06824edf55d0</a>
725 a
726 </div>
623 <div><em>&#116;&#101;&#115;&#116;</em></div>
727 <div><em>&#116;&#101;&#115;&#116;</em></div>
624 <div>parents: </div>
728 <div>parents: </div>
625 <a href="/diff/06824edf55d0/primes.py">diff</a>
729 <a href="/diff/06824edf55d0/primes.py">diff</a>
626 <a href="/rev/06824edf55d0">changeset</a>
730 <a href="/rev/06824edf55d0">changeset</a>
627 </div>
731 </div>
628 </td>
732 </td>
629 <td class="source"><a href="#l26"> 26</a> <span class="kn">import</span> <span class="nn">sys</span></td>
733 <td class="source"><a href="#l26"> 26</a> <span class="kn">import</span> <span class="nn">sys</span></td>
630 </tr>
734 </tr>
631 <tr id="l27" class="thisrev">
735 <tr id="l27" class="thisrev">
632 <td class="annotate">
736 <td class="annotate">
633
737
634 <div class="annotate-info">
738 <div class="annotate-info">
635 <div>06824edf55d0: a</div>
739 <div>
740 <a href="/annotate/06824edf55d0/primes.py#l27">
741 06824edf55d0</a>
742 a
743 </div>
636 <div><em>&#116;&#101;&#115;&#116;</em></div>
744 <div><em>&#116;&#101;&#115;&#116;</em></div>
637 <div>parents: </div>
745 <div>parents: </div>
638 <a href="/diff/06824edf55d0/primes.py">diff</a>
746 <a href="/diff/06824edf55d0/primes.py">diff</a>
639 <a href="/rev/06824edf55d0">changeset</a>
747 <a href="/rev/06824edf55d0">changeset</a>
640 </div>
748 </div>
641 </td>
749 </td>
642 <td class="source"><a href="#l27"> 27</a> <span class="kn">try</span><span class="p">:</span></td>
750 <td class="source"><a href="#l27"> 27</a> <span class="kn">try</span><span class="p">:</span></td>
643 </tr>
751 </tr>
644 <tr id="l28" class="thisrev">
752 <tr id="l28" class="thisrev">
645 <td class="annotate">
753 <td class="annotate">
646
754
647 <div class="annotate-info">
755 <div class="annotate-info">
648 <div>06824edf55d0: a</div>
756 <div>
757 <a href="/annotate/06824edf55d0/primes.py#l28">
758 06824edf55d0</a>
759 a
760 </div>
649 <div><em>&#116;&#101;&#115;&#116;</em></div>
761 <div><em>&#116;&#101;&#115;&#116;</em></div>
650 <div>parents: </div>
762 <div>parents: </div>
651 <a href="/diff/06824edf55d0/primes.py">diff</a>
763 <a href="/diff/06824edf55d0/primes.py">diff</a>
652 <a href="/rev/06824edf55d0">changeset</a>
764 <a href="/rev/06824edf55d0">changeset</a>
653 </div>
765 </div>
654 </td>
766 </td>
655 <td class="source"><a href="#l28"> 28</a> <span class="n">n</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span></td>
767 <td class="source"><a href="#l28"> 28</a> <span class="n">n</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span></td>
656 </tr>
768 </tr>
657 <tr id="l29" class="thisrev">
769 <tr id="l29" class="thisrev">
658 <td class="annotate">
770 <td class="annotate">
659
771
660 <div class="annotate-info">
772 <div class="annotate-info">
661 <div>06824edf55d0: a</div>
773 <div>
774 <a href="/annotate/06824edf55d0/primes.py#l29">
775 06824edf55d0</a>
776 a
777 </div>
662 <div><em>&#116;&#101;&#115;&#116;</em></div>
778 <div><em>&#116;&#101;&#115;&#116;</em></div>
663 <div>parents: </div>
779 <div>parents: </div>
664 <a href="/diff/06824edf55d0/primes.py">diff</a>
780 <a href="/diff/06824edf55d0/primes.py">diff</a>
665 <a href="/rev/06824edf55d0">changeset</a>
781 <a href="/rev/06824edf55d0">changeset</a>
666 </div>
782 </div>
667 </td>
783 </td>
668 <td class="source"><a href="#l29"> 29</a> <span class="kn">except</span> <span class="p">(</span><span class="ne">ValueError</span><span class="p">,</span> <span class="ne">IndexError</span><span class="p">):</span></td>
784 <td class="source"><a href="#l29"> 29</a> <span class="kn">except</span> <span class="p">(</span><span class="ne">ValueError</span><span class="p">,</span> <span class="ne">IndexError</span><span class="p">):</span></td>
669 </tr>
785 </tr>
670 <tr id="l30" class="thisrev">
786 <tr id="l30" class="thisrev">
671 <td class="annotate">
787 <td class="annotate">
672
788
673 <div class="annotate-info">
789 <div class="annotate-info">
674 <div>06824edf55d0: a</div>
790 <div>
791 <a href="/annotate/06824edf55d0/primes.py#l30">
792 06824edf55d0</a>
793 a
794 </div>
675 <div><em>&#116;&#101;&#115;&#116;</em></div>
795 <div><em>&#116;&#101;&#115;&#116;</em></div>
676 <div>parents: </div>
796 <div>parents: </div>
677 <a href="/diff/06824edf55d0/primes.py">diff</a>
797 <a href="/diff/06824edf55d0/primes.py">diff</a>
678 <a href="/rev/06824edf55d0">changeset</a>
798 <a href="/rev/06824edf55d0">changeset</a>
679 </div>
799 </div>
680 </td>
800 </td>
681 <td class="source"><a href="#l30"> 30</a> <span class="n">n</span> <span class="o">=</span> <span class="mi">10</span></td>
801 <td class="source"><a href="#l30"> 30</a> <span class="n">n</span> <span class="o">=</span> <span class="mi">10</span></td>
682 </tr>
802 </tr>
683 <tr id="l31" class="thisrev">
803 <tr id="l31" class="thisrev">
684 <td class="annotate">
804 <td class="annotate">
685
805
686 <div class="annotate-info">
806 <div class="annotate-info">
687 <div>06824edf55d0: a</div>
807 <div>
808 <a href="/annotate/06824edf55d0/primes.py#l31">
809 06824edf55d0</a>
810 a
811 </div>
688 <div><em>&#116;&#101;&#115;&#116;</em></div>
812 <div><em>&#116;&#101;&#115;&#116;</em></div>
689 <div>parents: </div>
813 <div>parents: </div>
690 <a href="/diff/06824edf55d0/primes.py">diff</a>
814 <a href="/diff/06824edf55d0/primes.py">diff</a>
691 <a href="/rev/06824edf55d0">changeset</a>
815 <a href="/rev/06824edf55d0">changeset</a>
692 </div>
816 </div>
693 </td>
817 </td>
694 <td class="source"><a href="#l31"> 31</a> <span class="n">p</span> <span class="o">=</span> <span class="n">primes</span><span class="p">()</span></td>
818 <td class="source"><a href="#l31"> 31</a> <span class="n">p</span> <span class="o">=</span> <span class="n">primes</span><span class="p">()</span></td>
695 </tr>
819 </tr>
696 <tr id="l32" class="thisrev">
820 <tr id="l32" class="thisrev">
697 <td class="annotate">
821 <td class="annotate">
698
822
699 <div class="annotate-info">
823 <div class="annotate-info">
700 <div>06824edf55d0: a</div>
824 <div>
825 <a href="/annotate/06824edf55d0/primes.py#l32">
826 06824edf55d0</a>
827 a
828 </div>
701 <div><em>&#116;&#101;&#115;&#116;</em></div>
829 <div><em>&#116;&#101;&#115;&#116;</em></div>
702 <div>parents: </div>
830 <div>parents: </div>
703 <a href="/diff/06824edf55d0/primes.py">diff</a>
831 <a href="/diff/06824edf55d0/primes.py">diff</a>
704 <a href="/rev/06824edf55d0">changeset</a>
832 <a href="/rev/06824edf55d0">changeset</a>
705 </div>
833 </div>
706 </td>
834 </td>
707 <td class="source"><a href="#l32"> 32</a> <span class="kn">print</span> <span class="s">&quot;The first </span><span class="si">%d</span><span class="s"> primes: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="nb">list</span><span class="p">(</span><span class="n">islice</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">n</span><span class="p">)))</span></td>
835 <td class="source"><a href="#l32"> 32</a> <span class="kn">print</span> <span class="s">&quot;The first </span><span class="si">%d</span><span class="s"> primes: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="nb">list</span><span class="p">(</span><span class="n">islice</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">n</span><span class="p">)))</span></td>
708 </tr>
836 </tr>
709 <tr id="l33" class="thisrev">
837 <tr id="l33" class="thisrev">
710 <td class="annotate">
838 <td class="annotate">
711
839
712 <div class="annotate-info">
840 <div class="annotate-info">
713 <div>06824edf55d0: a</div>
841 <div>
842 <a href="/annotate/06824edf55d0/primes.py#l33">
843 06824edf55d0</a>
844 a
845 </div>
714 <div><em>&#116;&#101;&#115;&#116;</em></div>
846 <div><em>&#116;&#101;&#115;&#116;</em></div>
715 <div>parents: </div>
847 <div>parents: </div>
716 <a href="/diff/06824edf55d0/primes.py">diff</a>
848 <a href="/diff/06824edf55d0/primes.py">diff</a>
717 <a href="/rev/06824edf55d0">changeset</a>
849 <a href="/rev/06824edf55d0">changeset</a>
718 </div>
850 </div>
719 </td>
851 </td>
720 <td class="source"><a href="#l33"> 33</a> </td>
852 <td class="source"><a href="#l33"> 33</a> </td>
721 </tr>
853 </tr>
722 </tbody>
854 </tbody>
723 </table>
855 </table>
724 </div>
856 </div>
725 </div>
857 </div>
726 </div>
858 </div>
727
859
728 <script type="text/javascript">process_dates()</script>
860 <script type="text/javascript">process_dates()</script>
729
861
730
862
731 </body>
863 </body>
732 </html>
864 </html>
733
865
734
866
735 hgweb fileannotate, raw
867 hgweb fileannotate, raw
736
868
737 $ (get-with-headers.py localhost:$HGPORT 'annotate/tip/primes.py?style=raw') \
869 $ (get-with-headers.py localhost:$HGPORT 'annotate/tip/primes.py?style=raw') \
738 > | sed "s/test@//" > a
870 > | sed "s/test@//" > a
739 $ echo "200 Script output follows" > b
871 $ echo "200 Script output follows" > b
740 $ echo "" >> b
872 $ echo "" >> b
741 $ echo "" >> b
873 $ echo "" >> b
742 $ hg annotate "primes.py" >> b
874 $ hg annotate "primes.py" >> b
743 $ echo "" >> b
875 $ echo "" >> b
744 $ echo "" >> b
876 $ echo "" >> b
745 $ echo "" >> b
877 $ echo "" >> b
746 $ echo "" >> b
878 $ echo "" >> b
747 $ cmp b a || diff -u b a
879 $ cmp b a || diff -u b a
748
880
749 hgweb filerevision, raw
881 hgweb filerevision, raw
750
882
751 $ (get-with-headers.py localhost:$HGPORT 'file/tip/primes.py?style=raw') \
883 $ (get-with-headers.py localhost:$HGPORT 'file/tip/primes.py?style=raw') \
752 > > a
884 > > a
753 $ echo "200 Script output follows" > b
885 $ echo "200 Script output follows" > b
754 $ echo "" >> b
886 $ echo "" >> b
755 $ hg cat primes.py >> b
887 $ hg cat primes.py >> b
756 $ cmp b a || diff -u b a
888 $ cmp b a || diff -u b a
757
889
758 hgweb highlightcss friendly
890 hgweb highlightcss friendly
759
891
760 $ get-with-headers.py localhost:$HGPORT 'highlightcss' > out
892 $ get-with-headers.py localhost:$HGPORT 'highlightcss' > out
761 $ head -n 4 out
893 $ head -n 4 out
762 200 Script output follows
894 200 Script output follows
763
895
764 /* pygments_style = friendly */
896 /* pygments_style = friendly */
765
897
766 $ rm out
898 $ rm out
767
899
768 errors encountered
900 errors encountered
769
901
770 $ cat errors.log
902 $ cat errors.log
771 $ killdaemons.py
903 $ killdaemons.py
772
904
773 Change the pygments style
905 Change the pygments style
774
906
775 $ cat > .hg/hgrc <<EOF
907 $ cat > .hg/hgrc <<EOF
776 > [web]
908 > [web]
777 > pygments_style = fruity
909 > pygments_style = fruity
778 > EOF
910 > EOF
779
911
780 hg serve again
912 hg serve again
781
913
782 $ hg serve -p $HGPORT -d -n test --pid-file=hg.pid -A access.log -E errors.log
914 $ hg serve -p $HGPORT -d -n test --pid-file=hg.pid -A access.log -E errors.log
783 $ cat hg.pid >> $DAEMON_PIDS
915 $ cat hg.pid >> $DAEMON_PIDS
784
916
785 hgweb highlightcss fruity
917 hgweb highlightcss fruity
786
918
787 $ get-with-headers.py localhost:$HGPORT 'highlightcss' > out
919 $ get-with-headers.py localhost:$HGPORT 'highlightcss' > out
788 $ head -n 4 out
920 $ head -n 4 out
789 200 Script output follows
921 200 Script output follows
790
922
791 /* pygments_style = fruity */
923 /* pygments_style = fruity */
792
924
793 $ rm out
925 $ rm out
794
926
795 errors encountered
927 errors encountered
796
928
797 $ cat errors.log
929 $ cat errors.log
798 $ killdaemons.py
930 $ killdaemons.py
799
931
800 only highlight C source files
932 only highlight C source files
801
933
802 $ cat > .hg/hgrc <<EOF
934 $ cat > .hg/hgrc <<EOF
803 > [web]
935 > [web]
804 > highlightfiles = **.c
936 > highlightfiles = **.c
805 > EOF
937 > EOF
806
938
807 hg serve again
939 hg serve again
808
940
809 $ hg serve -p $HGPORT -d -n test --pid-file=hg.pid -A access.log -E errors.log
941 $ hg serve -p $HGPORT -d -n test --pid-file=hg.pid -A access.log -E errors.log
810 $ cat hg.pid >> $DAEMON_PIDS
942 $ cat hg.pid >> $DAEMON_PIDS
811
943
812 test that fileset in highlightfiles works and primes.py is not highlighted
944 test that fileset in highlightfiles works and primes.py is not highlighted
813
945
814 $ get-with-headers.py localhost:$HGPORT 'file/tip/primes.py' | grep 'id="l11"'
946 $ get-with-headers.py localhost:$HGPORT 'file/tip/primes.py' | grep 'id="l11"'
815 <span id="l11">def primes():</span><a href="#l11"></a>
947 <span id="l11">def primes():</span><a href="#l11"></a>
816
948
817 errors encountered
949 errors encountered
818
950
819 $ cat errors.log
951 $ cat errors.log
820 $ cd ..
952 $ cd ..
821 $ hg init eucjp
953 $ hg init eucjp
822 $ cd eucjp
954 $ cd eucjp
823 $ $PYTHON -c 'print("\265\376")' >> eucjp.txt # Japanese kanji "Kyo"
955 $ $PYTHON -c 'print("\265\376")' >> eucjp.txt # Japanese kanji "Kyo"
824 $ hg ci -Ama
956 $ hg ci -Ama
825 adding eucjp.txt
957 adding eucjp.txt
826 $ hgserveget () {
958 $ hgserveget () {
827 > killdaemons.py
959 > killdaemons.py
828 > echo % HGENCODING="$1" hg serve
960 > echo % HGENCODING="$1" hg serve
829 > HGENCODING="$1" hg serve -p $HGPORT -d -n test --pid-file=hg.pid -E errors.log
961 > HGENCODING="$1" hg serve -p $HGPORT -d -n test --pid-file=hg.pid -E errors.log
830 > cat hg.pid >> $DAEMON_PIDS
962 > cat hg.pid >> $DAEMON_PIDS
831 >
963 >
832 > echo % hgweb filerevision, html
964 > echo % hgweb filerevision, html
833 > get-with-headers.py localhost:$HGPORT "file/tip/$2" \
965 > get-with-headers.py localhost:$HGPORT "file/tip/$2" \
834 > | grep '<div class="parity0 source">'
966 > | grep '<div class="parity0 source">'
835 > echo % errors encountered
967 > echo % errors encountered
836 > cat errors.log
968 > cat errors.log
837 > }
969 > }
838 $ hgserveget euc-jp eucjp.txt
970 $ hgserveget euc-jp eucjp.txt
839 % HGENCODING=euc-jp hg serve
971 % HGENCODING=euc-jp hg serve
840 % hgweb filerevision, html
972 % hgweb filerevision, html
841 % errors encountered
973 % errors encountered
842 $ hgserveget utf-8 eucjp.txt
974 $ hgserveget utf-8 eucjp.txt
843 % HGENCODING=utf-8 hg serve
975 % HGENCODING=utf-8 hg serve
844 % hgweb filerevision, html
976 % hgweb filerevision, html
845 % errors encountered
977 % errors encountered
846 $ hgserveget us-ascii eucjp.txt
978 $ hgserveget us-ascii eucjp.txt
847 % HGENCODING=us-ascii hg serve
979 % HGENCODING=us-ascii hg serve
848 % hgweb filerevision, html
980 % hgweb filerevision, html
849 % errors encountered
981 % errors encountered
850
982
851 We attempt to highlight unknown files by default
983 We attempt to highlight unknown files by default
852
984
853 $ killdaemons.py
985 $ killdaemons.py
854
986
855 $ cat > .hg/hgrc << EOF
987 $ cat > .hg/hgrc << EOF
856 > [web]
988 > [web]
857 > highlightfiles = **
989 > highlightfiles = **
858 > EOF
990 > EOF
859
991
860 $ cat > unknownfile << EOF
992 $ cat > unknownfile << EOF
861 > #!/usr/bin/python
993 > #!/usr/bin/python
862 > def foo():
994 > def foo():
863 > pass
995 > pass
864 > EOF
996 > EOF
865
997
866 $ hg add unknownfile
998 $ hg add unknownfile
867 $ hg commit -m unknown unknownfile
999 $ hg commit -m unknown unknownfile
868
1000
869 $ hg serve -p $HGPORT -d -n test --pid-file=hg.pid
1001 $ hg serve -p $HGPORT -d -n test --pid-file=hg.pid
870 $ cat hg.pid >> $DAEMON_PIDS
1002 $ cat hg.pid >> $DAEMON_PIDS
871
1003
872 $ get-with-headers.py localhost:$HGPORT 'file/tip/unknownfile' | grep l2
1004 $ get-with-headers.py localhost:$HGPORT 'file/tip/unknownfile' | grep l2
873 <span id="l2"><span class="k">def</span> <span class="nf">foo</span><span class="p">():</span></span><a href="#l2"></a>
1005 <span id="l2"><span class="k">def</span> <span class="nf">foo</span><span class="p">():</span></span><a href="#l2"></a>
874
1006
875 We can prevent Pygments from falling back to a non filename-based
1007 We can prevent Pygments from falling back to a non filename-based
876 detection mode
1008 detection mode
877
1009
878 $ cat > .hg/hgrc << EOF
1010 $ cat > .hg/hgrc << EOF
879 > [web]
1011 > [web]
880 > highlightfiles = **
1012 > highlightfiles = **
881 > highlightonlymatchfilename = true
1013 > highlightonlymatchfilename = true
882 > EOF
1014 > EOF
883
1015
884 $ killdaemons.py
1016 $ killdaemons.py
885 $ hg serve -p $HGPORT -d -n test --pid-file=hg.pid
1017 $ hg serve -p $HGPORT -d -n test --pid-file=hg.pid
886 $ cat hg.pid >> $DAEMON_PIDS
1018 $ cat hg.pid >> $DAEMON_PIDS
887 $ get-with-headers.py localhost:$HGPORT 'file/tip/unknownfile' | grep l2
1019 $ get-with-headers.py localhost:$HGPORT 'file/tip/unknownfile' | grep l2
888 <span id="l2">def foo():</span><a href="#l2"></a>
1020 <span id="l2">def foo():</span><a href="#l2"></a>
889
1021
890 $ cd ..
1022 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now