##// END OF EJS Templates
monoblue: don't show '[up]' in file view when in root directory already
av6 -
r38203:9ed35270 default
parent child Browse files
Show More
@@ -1,47 +1,41 b''
1 1 {header}
2 2 <title>{repo|escape}: files</title>
3 3 <link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
4 4 <link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
5 5 </head>
6 6
7 7 <body>
8 8 <div id="container">
9 9 <div class="page-header">
10 10 <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / files</h1>
11 11
12 12 {searchform}
13 13
14 14 <ul class="page-nav">
15 15 <li><a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a></li>
16 16 <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a></li>
17 17 <li><a href="{url|urlescape}changelog{sessionvars%urlparameter}">changelog</a></li>
18 18 <li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li>
19 19 <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
20 20 <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
21 21 <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
22 22 <li class="current">files</li>
23 23 <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
24 24 </ul>
25 25 </div>
26 26
27 27 <ul class="submenu">
28 28 <li><a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a></li>
29 29 {archives%archiveentry}
30 30 </ul>
31 31
32 32 <h2 class="no-link no-border">files</h2>
33 33 <p class="files">{path|escape} {alltags}</p>
34 34
35 35 <table>
36 <tr class="parity{upparity}">
37 <td>drwxr-xr-x</td>
38 <td></td>
39 <td></td>
40 <td><a href="{url|urlescape}file/{symrev}{up|urlescape}{sessionvars%urlparameter}">[up]</a></td>
41 <td class="link">&nbsp;</td>
42 </tr>
36 {ifeq(path, up, '', updirentry)}
43 37 {dentries%direntry}
44 38 {fentries%fileentry}
45 39 </table>
46 40
47 41 {footer}
@@ -1,308 +1,318 b''
1 1 default = 'summary'
2 2 mimetype = 'text/html; charset={encoding}'
3 3 header = header.tmpl
4 4 footer = footer.tmpl
5 5 search = search.tmpl
6 6 changelog = changelog.tmpl
7 7 summary = summary.tmpl
8 8 error = error.tmpl
9 9 notfound = notfound.tmpl
10 10
11 11 help = help.tmpl
12 12 helptopics = helptopics.tmpl
13 13
14 14 helpentry = '
15 15 <tr><td>
16 16 <a href="{url|urlescape}help/{topic|escape}{sessionvars%urlparameter}">
17 17 {if(basename, '{basename|escape}', '{topic|escape}')}
18 18 </a>
19 19 </td><td>
20 20 {summary|escape}
21 21 </td></tr>'
22 22
23 23 naventry = '<a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
24 24 navshortentry = '<a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
25 25 navgraphentry = '<a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
26 26 filenaventry = '<a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
27 27 filedifflink = '<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
28 28 filenodelink = '
29 29 <tr class="parity{parity}">
30 30 <td><a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
31 31 <td></td>
32 32 <td>
33 33 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
34 34 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
35 35 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
36 36 <a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
37 37 <a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
38 38 </td>
39 39 </tr>'
40 40 filenolink = '
41 41 <tr class="parity{parity}">
42 42 <td><a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
43 43 <td></td>
44 44 <td>
45 45 file |
46 46 annotate |
47 47 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
48 48 <a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
49 49 <a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
50 50 </td>
51 51 </tr>'
52 52
53 53 nav = '{before%naventry} {after%naventry}'
54 54 navshort = '{before%navshortentry}{after%navshortentry}'
55 55 navgraph = '{before%navgraphentry}{after%navgraphentry}'
56 56 filenav = '{before%filenaventry}{after%filenaventry}'
57 57
58 58 fileellipses = '...'
59 59 changelogentry = changelogentry.tmpl
60 60 changeset = changeset.tmpl
61 61 manifest = manifest.tmpl
62 updirentry = '
63 <tr class="parity{upparity}">
64 <td>drwxr-xr-x</td>
65 <td></td>
66 <td></td>
67 <td>
68 <a href="{url|urlescape}file/{symrev}{up|urlescape}{sessionvars%urlparameter}">[up]</a>
69 </td>
70 <td class="link">&nbsp;</td>
71 </tr>'
62 72 direntry = '
63 73 <tr class="parity{parity}">
64 74 <td>drwxr-xr-x</td>
65 75 <td></td>
66 76 <td></td>
67 77 <td>
68 78 <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
69 79 <a href="{url|urlescape}file/{symrev}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">{emptydirs|escape}</a>
70 80 </td>
71 81 <td><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a></td>
72 82 </tr>'
73 83 fileentry = '
74 84 <tr class="parity{parity}">
75 85 <td>{permissions|permissions}</td>
76 86 <td>{date|isodate}</td>
77 87 <td>{size}</td>
78 88 <td><a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a></td>
79 89 <td>
80 90 <a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
81 91 <a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
82 92 <a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
83 93 </td>
84 94 </tr>'
85 95 filerevision = filerevision.tmpl
86 96 fileannotate = fileannotate.tmpl
87 97 filediff = filediff.tmpl
88 98 filecomparison = filecomparison.tmpl
89 99 filelog = filelog.tmpl
90 100 fileline = '
91 101 <a href="#{lineid}"></a><span id="{lineid}">{strip(line|escape, '\r\n')}</span>'
92 102 annotateline = '
93 103 <tr id="{lineid}" class="parity{parity}{ifeq(node, originalnode, ' thisrev')}">
94 104 <td class="annotate linenr parity{blockparity}">
95 105 {if(blockhead,
96 106 '<a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
97 107 {rev}
98 108 </a>')}
99 109 <div class="annotate-info">
100 110 <div>
101 111 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
102 112 {node|short}</a>
103 113 {desc|escape|firstline}
104 114 </div>
105 115 <div><em>{author|obfuscate}</em></div>
106 116 <div>parents: {parents%annotateparent}</div>
107 117 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>
108 118 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a>
109 119 </div>
110 120 </td>
111 121 <td class="lineno">
112 122 <a href="#{lineid}">{linenumber}</a>
113 123 </td>
114 124 <td class="source">{line|escape}</td>
115 125 </tr>'
116 126 annotateparent = '
117 127 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rev}</a>'
118 128 difflineplus = '
119 129 <a href="#{lineid}"></a><span id="{lineid}" class="difflineplus">{strip(line|escape, '\r\n')}</span>'
120 130 difflineminus = '
121 131 <a href="#{lineid}"></a><span id="{lineid}" class="difflineminus">{strip(line|escape, '\r\n')}</span>'
122 132 difflineat = '
123 133 <a href="#{lineid}"></a><span id="{lineid}" class="difflineat">{strip(line|escape, '\r\n')}</span>'
124 134 diffline = '
125 135 <a href="#{lineid}"></a><span id="{lineid}">{strip(line|escape, '\r\n')}</span>'
126 136
127 137 comparisonblock ='
128 138 <tbody class="block">
129 139 {lines}
130 140 </tbody>'
131 141 comparisonline = '
132 142 <tr id="{lineid}">
133 143 <td class="source {type}"><a class="linenr" href="#{lineid}">{leftlinenumber}</a> {leftline|escape}</td>
134 144 <td class="source {type}"><a class="linenr" href="#{lineid}">{rightlinenumber}</a> {rightline|escape}</td>
135 145 </tr>'
136 146
137 147 changesetlink = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
138 148 changesetbranch = '<dt>branch</dt><dd>{name|escape}</dd>'
139 149 changesetparent = '
140 150 <dt>parent {rev}</dt>
141 151 <dd>{changesetlink}</dd>'
142 152 changesetparentdiff = '
143 153 <dt>parent {rev}</dt>
144 154 <dd>{changesetlink} {ifeq(node, basenode, '(current diff)', '({difffrom})')}</dd>'
145 155 difffrom = '<a href="{url|urlescape}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">diff</a>'
146 156 filerevbranch = '<dt>branch</dt><dd>{name|escape}</dd>'
147 157 filerevparent = '
148 158 <dt>parent {rev}</dt>
149 159 <dd>
150 160 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
151 161 {rename%filerename}{node|short}
152 162 </a>
153 163 </dd>'
154 164 filerename = '{file|escape}@'
155 165 filelogrename = '| <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>'
156 166 fileannotateparent = '
157 167 <dt>parent {rev}</dt>
158 168 <dd>
159 169 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
160 170 {rename%filerename}{node|short}
161 171 </a>
162 172 </dd>'
163 173 changesetchild = '
164 174 <dt>child {rev}</dt>
165 175 <dd><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></dd>'
166 176 filerevchild = '
167 177 <dt>child {rev}</dt>
168 178 <dd>
169 179 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
170 180 </dd>'
171 181 fileannotatechild = '
172 182 <dt>child {rev}</dt>
173 183 <dd>
174 184 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
175 185 </dd>'
176 186 tags = tags.tmpl
177 187 tagentry = '
178 188 <tr class="parity{parity}">
179 189 <td class="nowrap age">{date|rfc822date}</td>
180 190 <td><a href="{url|urlescape}rev/{tag|revescape}{sessionvars%urlparameter}">{tag|escape}</a></td>
181 191 <td class="nowrap">
182 192 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
183 193 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
184 194 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
185 195 </td>
186 196 </tr>'
187 197 bookmarks = bookmarks.tmpl
188 198 bookmarkentry = '
189 199 <tr class="parity{parity}">
190 200 <td class="nowrap age">{date|rfc822date}</td>
191 201 <td><a href="{url|urlescape}rev/{bookmark|revescape}{sessionvars%urlparameter}">{bookmark|escape}</a></td>
192 202 <td class="nowrap">
193 203 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
194 204 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
195 205 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
196 206 </td>
197 207 </tr>'
198 208 branches = branches.tmpl
199 209 branchentry = '
200 210 <tr class="parity{parity}">
201 211 <td class="nowrap age">{date|rfc822date}</td>
202 212 <td class="{status}"><a href="{url|urlescape}shortlog/{branch|revescape}{sessionvars%urlparameter}">{branch|escape}</a></td>
203 213 <td class="nowrap">
204 214 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
205 215 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
206 216 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
207 217 </td>
208 218 </tr>'
209 219 diffblock = '<div class="diffblock"><pre class="sourcelines">{lines}</pre></div>'
210 220 filediffparent = '
211 221 <dt>parent {rev}</dt>
212 222 <dd><a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
213 223 filecompparent = '
214 224 <dt>parent {rev}</dt>
215 225 <dd><a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
216 226 filediffchild = '
217 227 <dt>child {rev}</dt>
218 228 <dd><a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
219 229 filecompchild = '
220 230 <dt>child {rev}</dt>
221 231 <dd><a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></dd>'
222 232 shortlog = shortlog.tmpl
223 233 phasetag = '{ifeq(phase, 'public', '', '<span class="phasetag" title="{phase|escape}">{phase|escape}</span> ')}'
224 234 obsoletetag = '{if(obsolete, '<span class="obsoletetag" title="obsolete">obsolete</span> ')}'
225 235 instabilitytag = '<span class="instabilitytag" title="{instability|escape}">{instability|escape}</span> '
226 236 tagtag = '<span class="tagtag" title="{name|escape}">{name|escape}</span> '
227 237 branchtag = '<span class="branchtag" title="{name|escape}">{name|escape}</span> '
228 238 inbranchtag = '<span class="inbranchtag" title="{name|escape}">{name|escape}</span> '
229 239 bookmarktag = '<span class="bookmarktag" title="{name|escape}">{name|escape}</span> '
230 240 alltags = '<span class="logtags">{phasetag}{obsoletetag}{instabilities%instabilitytag}{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>'
231 241 successorlink = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> '
232 242 obsfatesuccessors = '{if(successors, ' as ')}{successors%successorlink}'
233 243 obsfateverb = '{obsfateverb(successors, markers)}'
234 244 obsfateoperations = '{if(obsfateoperations(markers), ' using {join(obsfateoperations(markers), ', ')}')}'
235 245 obsfateusers = '{if(obsfateusers(markers), ' by {join(obsfateusers(markers)%'{user|obfuscate}', ', ')}')}'
236 246 obsfatedate = '{if(obsfatedate(markers), ' {ifeq(min(obsfatedate(markers)), max(obsfatedate(markers)), '<span class="age">{min(obsfatedate(markers))|rfc822date}</span>', 'between <span class="age">{min(obsfatedate(markers))|rfc822date}</span> and <span class="age">{max(obsfatedate(markers))|rfc822date}</span>')}')}'
237 247 obsfateentry = '
238 248 <dt>obsolete</dt>
239 249 <dd>{obsfateverb}{obsfateoperations}{obsfatesuccessors}{obsfateusers}{obsfatedate}</dd>'
240 250 instabilitychangesetlink = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
241 251 divergentnode = '{instabilitychangesetlink} ({phase})'
242 252 whyunstableentry = '
243 253 <dt>unstable</dt>
244 254 <dd>{instability}: {if(divergentnodes, divergentnodes%divergentnode)} {reason} {instabilitychangesetlink}</dd>'
245 255 shortlogentry = '
246 256 <tr class="parity{parity}">
247 257 <td class="nowrap age">{date|rfc822date}</td>
248 258 <td>{author|person}</td>
249 259 <td>
250 260 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
251 261 {desc|strip|firstline|escape|nonempty}
252 262 {alltags}
253 263 </a>
254 264 </td>
255 265 <td class="nowrap">
256 266 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
257 267 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
258 268 </td>
259 269 </tr>'
260 270 filelogentry = '
261 271 <tr class="parity{parity}">
262 272 <td class="nowrap age">{date|rfc822date}</td>
263 273 <td>{author|person}</td>
264 274 <td>
265 275 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
266 276 {desc|strip|firstline|escape|nonempty}
267 277 {alltags}
268 278 </a>
269 279 </td>
270 280 <td class="nowrap">
271 281 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
272 282 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
273 283 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
274 284 {rename%filelogrename}
275 285 </td>
276 286 </tr>'
277 287 archiveentry = '<li><a href="{url|urlescape}archive/{symrev}{extension}{ifeq(path,'/','',path|urlescape)}">{type|escape}</a></li>'
278 288 indexentry = '
279 289 <tr class="parity{parity}">
280 290 <td><a href="{url|urlescape}{sessionvars%urlparameter}">{name|escape}</a></td>
281 291 <td>{description}</td>
282 292 <td>{contact|obfuscate}</td>
283 293 <td class="age">{lastchange|rfc822date}</td>
284 294 <td class="indexlinks">{archives%indexarchiveentry}</td>
285 295 <td>
286 296 {if(isdirectory, '',
287 297 '<div class="rss_logo">
288 298 <a href="{url|urlescape}rss-log">RSS</a> <a href="{url|urlescape}atom-log">Atom</a>
289 299 </div>'
290 300 )}
291 301 </td>
292 302 </tr>\n'
293 303 indexarchiveentry = '<a href="{url|urlescape}archive/{node|short}{extension}">{type|escape}</a> '
294 304 index = index.tmpl
295 305 urlparameter = '{separator}{name}={value|urlescape}'
296 306 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
297 307 graph = graph.tmpl
298 308 graphentry = graphentry.tmpl
299 309 breadcrumb = '&gt; <a href="{url|urlescape}">{name|escape}</a> '
300 310
301 311 searchform = '
302 312 <form action="{url|urlescape}log">
303 313 {sessionvars%hiddenformentry}
304 314 <dl class="search">
305 315 <dt><label>Search: </label></dt>
306 316 <dd><input type="text" name="rev" value="{query|escape}" /></dd>
307 317 </dl>
308 318 </form>'
@@ -1,567 +1,561 b''
1 1 #require serve
2 2
3 3 Test chains of near empty directories, terminating 3 different ways:
4 4 - a1: file at level 4 (deepest)
5 5 - b1: two dirs at level 3
6 6 - d1: file at level 2
7 7
8 8 Set up the repo
9 9
10 10 $ hg init test
11 11 $ cd test
12 12 $ mkdir -p a1/a2/a3/a4
13 13 $ mkdir -p b1/b2/b3/b4
14 14 $ mkdir -p b1/b2/b3/c4
15 15 $ mkdir -p d1/d2/d3/d4
16 16 $ echo foo > a1/a2/a3/a4/foo
17 17 $ echo foo > b1/b2/b3/b4/foo
18 18 $ echo foo > b1/b2/b3/c4/foo
19 19 $ echo foo > d1/d2/d3/d4/foo
20 20 $ echo foo > d1/d2/foo
21 21 $ hg ci -Ama
22 22 adding a1/a2/a3/a4/foo
23 23 adding b1/b2/b3/b4/foo
24 24 adding b1/b2/b3/c4/foo
25 25 adding d1/d2/d3/d4/foo
26 26 adding d1/d2/foo
27 27 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -E errors.log
28 28 $ cat hg.pid >> $DAEMON_PIDS
29 29
30 30 manifest with descending (paper)
31 31
32 32 $ get-with-headers.py $LOCALIP:$HGPORT 'file'
33 33 200 Script output follows
34 34
35 35 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
36 36 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
37 37 <head>
38 38 <link rel="icon" href="/static/hgicon.png" type="image/png" />
39 39 <meta name="robots" content="index, nofollow" />
40 40 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
41 41 <script type="text/javascript" src="/static/mercurial.js"></script>
42 42
43 43 <title>test: c9f45f7a1659 /</title>
44 44 </head>
45 45 <body>
46 46
47 47 <div class="container">
48 48 <div class="menu">
49 49 <div class="logo">
50 50 <a href="https://mercurial-scm.org/">
51 51 <img src="/static/hglogo.png" alt="mercurial" /></a>
52 52 </div>
53 53 <ul>
54 54 <li><a href="/shortlog/tip">log</a></li>
55 55 <li><a href="/graph/tip">graph</a></li>
56 56 <li><a href="/tags">tags</a></li>
57 57 <li><a href="/bookmarks">bookmarks</a></li>
58 58 <li><a href="/branches">branches</a></li>
59 59 </ul>
60 60 <ul>
61 61 <li><a href="/rev/tip">changeset</a></li>
62 62 <li class="active">browse</li>
63 63 </ul>
64 64 <ul>
65 65
66 66 </ul>
67 67 <ul>
68 68 <li><a href="/help">help</a></li>
69 69 </ul>
70 70 </div>
71 71
72 72 <div class="main">
73 73 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
74 74 <h3>
75 75 directory / @ 0:<a href="/rev/c9f45f7a1659">c9f45f7a1659</a>
76 76 <span class="phase">draft</span> <span class="branchhead">default</span> <span class="tag">tip</span>
77 77 </h3>
78 78
79 79
80 80 <form class="search" action="/log">
81 81
82 82 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
83 83 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
84 84 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
85 85 </form>
86 86
87 87 <table class="bigtable">
88 88 <thead>
89 89 <tr>
90 90 <th class="name">name</th>
91 91 <th class="size">size</th>
92 92 <th class="permissions">permissions</th>
93 93 </tr>
94 94 </thead>
95 95 <tbody class="stripes2">
96 96
97 97
98 98 <tr class="fileline">
99 99 <td class="name">
100 100 <a href="/file/tip/a1">
101 101 <img src="/static/coal-folder.png" alt="dir."/> a1/
102 102 </a>
103 103 <a href="/file/tip/a1/a2/a3/a4">
104 104 a2/a3/a4
105 105 </a>
106 106 </td>
107 107 <td class="size"></td>
108 108 <td class="permissions">drwxr-xr-x</td>
109 109 </tr>
110 110 <tr class="fileline">
111 111 <td class="name">
112 112 <a href="/file/tip/b1">
113 113 <img src="/static/coal-folder.png" alt="dir."/> b1/
114 114 </a>
115 115 <a href="/file/tip/b1/b2/b3">
116 116 b2/b3
117 117 </a>
118 118 </td>
119 119 <td class="size"></td>
120 120 <td class="permissions">drwxr-xr-x</td>
121 121 </tr>
122 122 <tr class="fileline">
123 123 <td class="name">
124 124 <a href="/file/tip/d1">
125 125 <img src="/static/coal-folder.png" alt="dir."/> d1/
126 126 </a>
127 127 <a href="/file/tip/d1/d2">
128 128 d2
129 129 </a>
130 130 </td>
131 131 <td class="size"></td>
132 132 <td class="permissions">drwxr-xr-x</td>
133 133 </tr>
134 134
135 135 </tbody>
136 136 </table>
137 137 </div>
138 138 </div>
139 139
140 140
141 141 </body>
142 142 </html>
143 143
144 144
145 145 manifest with descending (coal)
146 146
147 147 $ get-with-headers.py $LOCALIP:$HGPORT 'file?style=coal'
148 148 200 Script output follows
149 149
150 150 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
151 151 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
152 152 <head>
153 153 <link rel="icon" href="/static/hgicon.png" type="image/png" />
154 154 <meta name="robots" content="index, nofollow" />
155 155 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
156 156 <link rel="stylesheet" href="/static/style-extra-coal.css" type="text/css" />
157 157 <script type="text/javascript" src="/static/mercurial.js"></script>
158 158
159 159 <title>test: c9f45f7a1659 /</title>
160 160 </head>
161 161 <body>
162 162
163 163 <div class="container">
164 164 <div class="menu">
165 165 <div class="logo">
166 166 <a href="https://mercurial-scm.org/">
167 167 <img src="/static/hglogo.png" alt="mercurial" /></a>
168 168 </div>
169 169 <ul>
170 170 <li><a href="/shortlog/tip?style=coal">log</a></li>
171 171 <li><a href="/graph/tip?style=coal">graph</a></li>
172 172 <li><a href="/tags?style=coal">tags</a></li>
173 173 <li><a href="/bookmarks?style=coal">bookmarks</a></li>
174 174 <li><a href="/branches?style=coal">branches</a></li>
175 175 </ul>
176 176 <ul>
177 177 <li><a href="/rev/tip?style=coal">changeset</a></li>
178 178 <li class="active">browse</li>
179 179 </ul>
180 180 <ul>
181 181
182 182 </ul>
183 183 <ul>
184 184 <li><a href="/help?style=coal">help</a></li>
185 185 </ul>
186 186 </div>
187 187
188 188 <div class="main">
189 189 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
190 190 <h3>
191 191 directory / @ 0:<a href="/rev/c9f45f7a1659?style=coal">c9f45f7a1659</a>
192 192 <span class="phase">draft</span> <span class="branchhead">default</span> <span class="tag">tip</span>
193 193 </h3>
194 194
195 195
196 196 <form class="search" action="/log">
197 197 <input type="hidden" name="style" value="coal" />
198 198 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
199 199 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
200 200 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
201 201 </form>
202 202
203 203 <table class="bigtable">
204 204 <thead>
205 205 <tr>
206 206 <th class="name">name</th>
207 207 <th class="size">size</th>
208 208 <th class="permissions">permissions</th>
209 209 </tr>
210 210 </thead>
211 211 <tbody class="stripes2">
212 212
213 213
214 214 <tr class="fileline">
215 215 <td class="name">
216 216 <a href="/file/tip/a1?style=coal">
217 217 <img src="/static/coal-folder.png" alt="dir."/> a1/
218 218 </a>
219 219 <a href="/file/tip/a1/a2/a3/a4?style=coal">
220 220 a2/a3/a4
221 221 </a>
222 222 </td>
223 223 <td class="size"></td>
224 224 <td class="permissions">drwxr-xr-x</td>
225 225 </tr>
226 226 <tr class="fileline">
227 227 <td class="name">
228 228 <a href="/file/tip/b1?style=coal">
229 229 <img src="/static/coal-folder.png" alt="dir."/> b1/
230 230 </a>
231 231 <a href="/file/tip/b1/b2/b3?style=coal">
232 232 b2/b3
233 233 </a>
234 234 </td>
235 235 <td class="size"></td>
236 236 <td class="permissions">drwxr-xr-x</td>
237 237 </tr>
238 238 <tr class="fileline">
239 239 <td class="name">
240 240 <a href="/file/tip/d1?style=coal">
241 241 <img src="/static/coal-folder.png" alt="dir."/> d1/
242 242 </a>
243 243 <a href="/file/tip/d1/d2?style=coal">
244 244 d2
245 245 </a>
246 246 </td>
247 247 <td class="size"></td>
248 248 <td class="permissions">drwxr-xr-x</td>
249 249 </tr>
250 250
251 251 </tbody>
252 252 </table>
253 253 </div>
254 254 </div>
255 255
256 256
257 257 </body>
258 258 </html>
259 259
260 260
261 261 manifest with descending (monoblue)
262 262
263 263 $ get-with-headers.py $LOCALIP:$HGPORT 'file?style=monoblue'
264 264 200 Script output follows
265 265
266 266 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
267 267 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
268 268 <head>
269 269 <link rel="icon" href="/static/hgicon.png" type="image/png" />
270 270 <meta name="robots" content="index, nofollow"/>
271 271 <link rel="stylesheet" href="/static/style-monoblue.css" type="text/css" />
272 272 <script type="text/javascript" src="/static/mercurial.js"></script>
273 273
274 274 <title>test: files</title>
275 275 <link rel="alternate" type="application/atom+xml" href="/atom-log" title="Atom feed for test"/>
276 276 <link rel="alternate" type="application/rss+xml" href="/rss-log" title="RSS feed for test"/>
277 277 </head>
278 278
279 279 <body>
280 280 <div id="container">
281 281 <div class="page-header">
282 282 <h1 class="breadcrumb"><a href="/">Mercurial</a> / files</h1>
283 283
284 284
285 285 <form action="/log">
286 286 <input type="hidden" name="style" value="monoblue" />
287 287 <dl class="search">
288 288 <dt><label>Search: </label></dt>
289 289 <dd><input type="text" name="rev" value="" /></dd>
290 290 </dl>
291 291 </form>
292 292
293 293 <ul class="page-nav">
294 294 <li><a href="/summary?style=monoblue">summary</a></li>
295 295 <li><a href="/shortlog?style=monoblue">shortlog</a></li>
296 296 <li><a href="/changelog?style=monoblue">changelog</a></li>
297 297 <li><a href="/graph/tip?style=monoblue">graph</a></li>
298 298 <li><a href="/tags?style=monoblue">tags</a></li>
299 299 <li><a href="/bookmarks?style=monoblue">bookmarks</a></li>
300 300 <li><a href="/branches?style=monoblue">branches</a></li>
301 301 <li class="current">files</li>
302 302 <li><a href="/help?style=monoblue">help</a></li>
303 303 </ul>
304 304 </div>
305 305
306 306 <ul class="submenu">
307 307 <li><a href="/rev/tip?style=monoblue">changeset</a></li>
308 308
309 309 </ul>
310 310
311 311 <h2 class="no-link no-border">files</h2>
312 312 <p class="files">/ <span class="logtags"><span class="phasetag" title="draft">draft</span> <span class="branchtag" title="default">default</span> <span class="tagtag" title="tip">tip</span> </span></p>
313 313
314 314 <table>
315 <tr class="parity0">
316 <td>drwxr-xr-x</td>
317 <td></td>
318 <td></td>
319 <td><a href="/file/tip/?style=monoblue">[up]</a></td>
320 <td class="link">&nbsp;</td>
321 </tr>
315
322 316
323 317 <tr class="parity1">
324 318 <td>drwxr-xr-x</td>
325 319 <td></td>
326 320 <td></td>
327 321 <td>
328 322 <a href="/file/tip/a1?style=monoblue">a1</a>
329 323 <a href="/file/tip/a1/a2/a3/a4?style=monoblue">a2/a3/a4</a>
330 324 </td>
331 325 <td><a href="/file/tip/a1?style=monoblue">files</a></td>
332 326 </tr>
333 327 <tr class="parity0">
334 328 <td>drwxr-xr-x</td>
335 329 <td></td>
336 330 <td></td>
337 331 <td>
338 332 <a href="/file/tip/b1?style=monoblue">b1</a>
339 333 <a href="/file/tip/b1/b2/b3?style=monoblue">b2/b3</a>
340 334 </td>
341 335 <td><a href="/file/tip/b1?style=monoblue">files</a></td>
342 336 </tr>
343 337 <tr class="parity1">
344 338 <td>drwxr-xr-x</td>
345 339 <td></td>
346 340 <td></td>
347 341 <td>
348 342 <a href="/file/tip/d1?style=monoblue">d1</a>
349 343 <a href="/file/tip/d1/d2?style=monoblue">d2</a>
350 344 </td>
351 345 <td><a href="/file/tip/d1?style=monoblue">files</a></td>
352 346 </tr>
353 347
354 348 </table>
355 349
356 350 <div class="page-footer">
357 351 <p>Mercurial Repository: test</p>
358 352 <ul class="rss-logo">
359 353 <li><a href="/rss-log">RSS</a></li>
360 354 <li><a href="/atom-log">Atom</a></li>
361 355 </ul>
362 356
363 357 </div>
364 358
365 359 <div id="powered-by">
366 360 <p><a href="https://mercurial-scm.org/" title="Mercurial"><img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a></p>
367 361 </div>
368 362
369 363 </div>
370 364
371 365 </body>
372 366 </html>
373 367
374 368
375 369 manifest with descending (gitweb)
376 370
377 371 $ get-with-headers.py $LOCALIP:$HGPORT 'file?style=gitweb'
378 372 200 Script output follows
379 373
380 374 <?xml version="1.0" encoding="ascii"?>
381 375 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
382 376 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
383 377 <head>
384 378 <link rel="icon" href="/static/hgicon.png" type="image/png" />
385 379 <meta name="robots" content="index, nofollow"/>
386 380 <link rel="stylesheet" href="/static/style-gitweb.css" type="text/css" />
387 381 <script type="text/javascript" src="/static/mercurial.js"></script>
388 382
389 383 <title>test: files</title>
390 384 <link rel="alternate" type="application/atom+xml"
391 385 href="/atom-log" title="Atom feed for test"/>
392 386 <link rel="alternate" type="application/rss+xml"
393 387 href="/rss-log" title="RSS feed for test"/>
394 388 </head>
395 389 <body>
396 390
397 391 <div class="page_header">
398 392 <a href="https://mercurial-scm.org/" title="Mercurial" style="float: right;">Mercurial</a>
399 393 <a href="/">Mercurial</a> / files
400 394 </div>
401 395
402 396 <div class="page_nav">
403 397 <div>
404 398 <a href="/summary?style=gitweb">summary</a> |
405 399 <a href="/shortlog?style=gitweb">shortlog</a> |
406 400 <a href="/log?style=gitweb">changelog</a> |
407 401 <a href="/graph?style=gitweb">graph</a> |
408 402 <a href="/tags?style=gitweb">tags</a> |
409 403 <a href="/bookmarks?style=gitweb">bookmarks</a> |
410 404 <a href="/branches?style=gitweb">branches</a> |
411 405 files |
412 406 <a href="/rev/tip?style=gitweb">changeset</a> |
413 407 <a href="/help?style=gitweb">help</a>
414 408 </div>
415 409
416 410 <div class="search">
417 411 <form id="searchform" action="/log">
418 412 <input type="hidden" name="style" value="gitweb" />
419 413 <input name="rev" type="text" value="" size="40" />
420 414 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
421 415 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
422 416 </form>
423 417 </div>
424 418 </div>
425 419
426 420 <div class="title">/ <span class="logtags"><span class="phasetag" title="draft">draft</span> <span class="branchtag" title="default">default</span> <span class="tagtag" title="tip">tip</span> </span></div>
427 421 <table cellspacing="0">
428 422
429 423
430 424 <tr class="parity1">
431 425 <td style="font-family:monospace">drwxr-xr-x</td>
432 426 <td style="font-family:monospace"></td>
433 427 <td style="font-family:monospace"></td>
434 428 <td>
435 429 <a href="/file/tip/a1?style=gitweb">a1</a>
436 430 <a href="/file/tip/a1/a2/a3/a4?style=gitweb">a2/a3/a4</a>
437 431 </td>
438 432 <td class="link">
439 433 <a href="/file/tip/a1?style=gitweb">files</a>
440 434 </td>
441 435 </tr>
442 436 <tr class="parity0">
443 437 <td style="font-family:monospace">drwxr-xr-x</td>
444 438 <td style="font-family:monospace"></td>
445 439 <td style="font-family:monospace"></td>
446 440 <td>
447 441 <a href="/file/tip/b1?style=gitweb">b1</a>
448 442 <a href="/file/tip/b1/b2/b3?style=gitweb">b2/b3</a>
449 443 </td>
450 444 <td class="link">
451 445 <a href="/file/tip/b1?style=gitweb">files</a>
452 446 </td>
453 447 </tr>
454 448 <tr class="parity1">
455 449 <td style="font-family:monospace">drwxr-xr-x</td>
456 450 <td style="font-family:monospace"></td>
457 451 <td style="font-family:monospace"></td>
458 452 <td>
459 453 <a href="/file/tip/d1?style=gitweb">d1</a>
460 454 <a href="/file/tip/d1/d2?style=gitweb">d2</a>
461 455 </td>
462 456 <td class="link">
463 457 <a href="/file/tip/d1?style=gitweb">files</a>
464 458 </td>
465 459 </tr>
466 460
467 461 </table>
468 462
469 463 <div class="page_footer">
470 464 <div class="page_footer_text">test</div>
471 465 <div class="rss_logo">
472 466 <a href="/rss-log">RSS</a>
473 467 <a href="/atom-log">Atom</a>
474 468 </div>
475 469 <br />
476 470
477 471 </div>
478 472 </body>
479 473 </html>
480 474
481 475
482 476 manifest with descending (spartan)
483 477
484 478 $ get-with-headers.py $LOCALIP:$HGPORT 'file?style=spartan'
485 479 200 Script output follows
486 480
487 481 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
488 482 <html>
489 483 <head>
490 484 <link rel="icon" href="/static/hgicon.png" type="image/png">
491 485 <meta name="robots" content="index, nofollow" />
492 486 <link rel="stylesheet" href="/static/style.css" type="text/css" />
493 487 <script type="text/javascript" src="/static/mercurial.js"></script>
494 488
495 489 <title>test: files for changeset c9f45f7a1659</title>
496 490 </head>
497 491 <body>
498 492
499 493 <div class="buttons">
500 494 <a href="/log/tip?style=spartan">changelog</a>
501 495 <a href="/shortlog/tip?style=spartan">shortlog</a>
502 496 <a href="/graph/tip?style=spartan">graph</a>
503 497 <a href="/tags?style=spartan">tags</a>
504 498 <a href="/branches?style=spartan">branches</a>
505 499 <a href="/rev/tip?style=spartan">changeset</a>
506 500
507 501 <a href="/help?style=spartan">help</a>
508 502 </div>
509 503
510 504 <h2><a href="/">Mercurial</a> / files for changeset <a href="/rev/c9f45f7a1659">c9f45f7a1659</a>: /</h2>
511 505
512 506 <table cellpadding="0" cellspacing="0">
513 507 <tr class="parity0">
514 508 <td><tt>drwxr-xr-x</tt>&nbsp;
515 509 <td>&nbsp;
516 510 <td>&nbsp;
517 511 <td><a href="/file/tip/?style=spartan">[up]</a>
518 512 </tr>
519 513
520 514 <tr class="parity1">
521 515 <td><tt>drwxr-xr-x</tt>&nbsp;</td>
522 516 <td>&nbsp;</td>
523 517 <td>&nbsp;</td>
524 518 <td>
525 519 <a href="/file/tip/a1?style=spartan">a1/</a>
526 520 <a href="/file/tip/a1/a2/a3/a4?style=spartan">
527 521 a2/a3/a4
528 522 </a>
529 523 </td>
530 524 </tr>
531 525 <tr class="parity0">
532 526 <td><tt>drwxr-xr-x</tt>&nbsp;</td>
533 527 <td>&nbsp;</td>
534 528 <td>&nbsp;</td>
535 529 <td>
536 530 <a href="/file/tip/b1?style=spartan">b1/</a>
537 531 <a href="/file/tip/b1/b2/b3?style=spartan">
538 532 b2/b3
539 533 </a>
540 534 </td>
541 535 </tr>
542 536 <tr class="parity1">
543 537 <td><tt>drwxr-xr-x</tt>&nbsp;</td>
544 538 <td>&nbsp;</td>
545 539 <td>&nbsp;</td>
546 540 <td>
547 541 <a href="/file/tip/d1?style=spartan">d1/</a>
548 542 <a href="/file/tip/d1/d2?style=spartan">
549 543 d2
550 544 </a>
551 545 </td>
552 546 </tr>
553 547
554 548 </table>
555 549
556 550 <div class="logo">
557 551 <a href="https://mercurial-scm.org/">
558 552 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial"></a>
559 553 </div>
560 554
561 555 </body>
562 556 </html>
563 557
564 558
565 559 $ cat errors.log
566 560
567 561 $ cd ..
@@ -1,1108 +1,1106 b''
1 1 #require serve
2 2
3 3 Test symbolic revision usage in links produced by hgweb pages. There are
4 4 multiple issues related to this:
5 5 - issue2296
6 6 - issue2826
7 7 - issue3594
8 8 - issue3634
9 9
10 10 Set up the repo
11 11
12 12 $ hg init test
13 13 $ cd test
14 14 $ echo 0 > foo
15 15 $ mkdir dir
16 16 $ echo 0 > dir/bar
17 17 $ hg ci -Am 'first'
18 18 adding dir/bar
19 19 adding foo
20 20 $ echo 1 >> foo
21 21 $ hg ci -m 'second'
22 22 $ echo 2 >> foo
23 23 $ hg ci -m 'third'
24 24 $ hg bookmark -r1 xyzzy
25 25
26 26 $ hg log -G --template '{rev}:{node|short} {tags} {bookmarks}\n'
27 27 @ 2:9d8c40cba617 tip
28 28 |
29 29 o 1:a7c1559b7bba xyzzy
30 30 |
31 31 o 0:43c799df6e75
32 32
33 33 $ hg serve --config web.allow_archive=zip -n test -p $HGPORT -d --pid-file=hg.pid -E errors.log
34 34 $ cat hg.pid >> $DAEMON_PIDS
35 35
36 36 $ REVLINKS='href=[^>]+(rev=|/)(43c799df6e75|0|a7c1559b7bba|1|xyzzy|9d8c40cba617|2|tip|default)'
37 37
38 38 (De)referencing symbolic revisions (paper)
39 39
40 40 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=paper' | egrep $REVLINKS
41 41 <li><a href="/graph/tip?style=paper">graph</a></li>
42 42 <li><a href="/rev/tip?style=paper">changeset</a></li>
43 43 <li><a href="/file/tip?style=paper">browse</a></li>
44 44 <a href="/archive/tip.zip">zip</a>
45 45 <a href="/shortlog/tip?revcount=30&style=paper">less</a>
46 46 <a href="/shortlog/tip?revcount=120&style=paper">more</a>
47 47 | rev 2: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a>
48 48 <a href="/rev/9d8c40cba617?style=paper">third</a>
49 49 <a href="/rev/a7c1559b7bba?style=paper">second</a>
50 50 <a href="/rev/43c799df6e75?style=paper">first</a>
51 51 <a href="/shortlog/tip?revcount=30&style=paper">less</a>
52 52 <a href="/shortlog/tip?revcount=120&style=paper">more</a>
53 53 | rev 2: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a>
54 54
55 55 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph?style=paper' | egrep $REVLINKS
56 56 <li><a href="/shortlog/tip?style=paper">log</a></li>
57 57 <li><a href="/rev/tip?style=paper">changeset</a></li>
58 58 <li><a href="/file/tip?style=paper">browse</a></li>
59 59 <a href="/graph/tip?revcount=30&style=paper">less</a>
60 60 <a href="/graph/tip?revcount=120&style=paper">more</a>
61 61 | rev 2: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a>
62 62 <a href="/rev/9d8c40cba617?style=paper">third</a>
63 63 <a href="/rev/a7c1559b7bba?style=paper">second</a>
64 64 <a href="/rev/43c799df6e75?style=paper">first</a>
65 65 <a href="/graph/tip?revcount=30&style=paper">less</a>
66 66 <a href="/graph/tip?revcount=120&style=paper">more</a>
67 67 | rev 2: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a>
68 68
69 69 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file?style=paper' | egrep $REVLINKS
70 70 <li><a href="/shortlog/tip?style=paper">log</a></li>
71 71 <li><a href="/graph/tip?style=paper">graph</a></li>
72 72 <li><a href="/rev/tip?style=paper">changeset</a></li>
73 73 <a href="/archive/tip.zip">zip</a>
74 74 directory / @ 2:<a href="/rev/9d8c40cba617?style=paper">9d8c40cba617</a>
75 75 <a href="/file/tip/dir?style=paper">
76 76 <a href="/file/tip/dir/?style=paper">
77 77 <a href="/file/tip/foo?style=paper">
78 78
79 79 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'branches?style=paper' | egrep $REVLINKS
80 80 <a href="/shortlog/default?style=paper" class="open">
81 81 <a href="/shortlog/9d8c40cba617?style=paper" class="open">
82 82
83 83 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'tags?style=paper' | egrep $REVLINKS
84 84 <a href="/rev/tip?style=paper">
85 85 <a href="/rev/9d8c40cba617?style=paper">
86 86
87 87 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'bookmarks?style=paper' | egrep $REVLINKS
88 88 <a href="/rev/xyzzy?style=paper">
89 89 <a href="/rev/a7c1559b7bba?style=paper">
90 90
91 91 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=paper&rev=all()' | egrep $REVLINKS
92 92 <a href="/rev/9d8c40cba617?style=paper">third</a>
93 93 <a href="/rev/a7c1559b7bba?style=paper">second</a>
94 94 <a href="/rev/43c799df6e75?style=paper">first</a>
95 95
96 96 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'rev/xyzzy?style=paper' | egrep $REVLINKS
97 97 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
98 98 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
99 99 <li><a href="/raw-rev/xyzzy?style=paper">raw</a></li>
100 100 <li><a href="/file/xyzzy?style=paper">browse</a></li>
101 101 <a href="/archive/xyzzy.zip">zip</a>
102 102 changeset 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
103 103 <td class="author"><a href="/rev/43c799df6e75?style=paper">43c799df6e75</a> </td>
104 104 <td class="author"> <a href="/rev/9d8c40cba617?style=paper">9d8c40cba617</a></td>
105 105 <td class="files"><a href="/file/a7c1559b7bba/foo?style=paper">foo</a> </td>
106 106
107 107 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog/xyzzy?style=paper' | egrep $REVLINKS
108 108 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
109 109 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
110 110 <li><a href="/file/xyzzy?style=paper">browse</a></li>
111 111 <a href="/archive/xyzzy.zip">zip</a>
112 112 <a href="/shortlog/xyzzy?revcount=30&style=paper">less</a>
113 113 <a href="/shortlog/xyzzy?revcount=120&style=paper">more</a>
114 114 | rev 1: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a>
115 115 <a href="/rev/a7c1559b7bba?style=paper">second</a>
116 116 <a href="/rev/43c799df6e75?style=paper">first</a>
117 117 <a href="/shortlog/xyzzy?revcount=30&style=paper">less</a>
118 118 <a href="/shortlog/xyzzy?revcount=120&style=paper">more</a>
119 119 | rev 1: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a>
120 120
121 121 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph/xyzzy?style=paper' | egrep $REVLINKS
122 122 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
123 123 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
124 124 <li><a href="/file/xyzzy?style=paper">browse</a></li>
125 125 <a href="/graph/xyzzy?revcount=30&style=paper">less</a>
126 126 <a href="/graph/xyzzy?revcount=120&style=paper">more</a>
127 127 | rev 1: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a>
128 128 <a href="/rev/a7c1559b7bba?style=paper">second</a>
129 129 <a href="/rev/43c799df6e75?style=paper">first</a>
130 130 <a href="/graph/xyzzy?revcount=30&style=paper">less</a>
131 131 <a href="/graph/xyzzy?revcount=120&style=paper">more</a>
132 132 | rev 1: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a>
133 133
134 134 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy?style=paper' | egrep $REVLINKS
135 135 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
136 136 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
137 137 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
138 138 <a href="/archive/xyzzy.zip">zip</a>
139 139 directory / @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
140 140 <a href="/file/xyzzy/dir?style=paper">
141 141 <a href="/file/xyzzy/dir/?style=paper">
142 142 <a href="/file/xyzzy/foo?style=paper">
143 143
144 144 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy/foo?style=paper' | egrep $REVLINKS
145 145 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
146 146 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
147 147 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
148 148 <li><a href="/file/xyzzy/?style=paper">browse</a></li>
149 149 <li><a href="/file/tip/foo?style=paper">latest</a></li>
150 150 <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li>
151 151 <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li>
152 152 <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li>
153 153 <li><a href="/log/xyzzy/foo?style=paper">file log</a></li>
154 154 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
155 155 view foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
156 156 <td class="author"><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td>
157 157 <td class="author"><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td>
158 158
159 159 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy/foo?style=paper' | egrep $REVLINKS
160 160 href="/atom-log/tip/foo" title="Atom feed for test:foo" />
161 161 href="/rss-log/tip/foo" title="RSS feed for test:foo" />
162 162 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
163 163 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
164 164 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
165 165 <li><a href="/file/xyzzy?style=paper">browse</a></li>
166 166 <li><a href="/file/xyzzy/foo?style=paper">file</a></li>
167 167 <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li>
168 168 <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li>
169 169 <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li>
170 170 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
171 171 <a href="/atom-log/tip/foo" title="subscribe to atom feed">
172 172 log foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
173 173 <a href="/log/xyzzy/foo?revcount=30&style=paper">less</a>
174 174 <a href="/log/xyzzy/foo?revcount=120&style=paper">more</a>
175 175 | <a href="/log/43c799df6e75/foo?style=paper">(0)</a> <a href="/log/tip/foo?style=paper">tip</a> </div>
176 176 <a href="/rev/a7c1559b7bba?style=paper">second</a>
177 177 <a href="/rev/43c799df6e75?style=paper">first</a>
178 178 <a href="/log/xyzzy/foo?revcount=30&style=paper">less</a>
179 179 <a href="/log/xyzzy/foo?revcount=120&style=paper">more</a>
180 180 | <a href="/log/43c799df6e75/foo?style=paper">(0)</a> <a href="/log/tip/foo?style=paper">tip</a>
181 181
182 182 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'annotate/xyzzy/foo?style=paper' | egrep $REVLINKS
183 183 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
184 184 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
185 185 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
186 186 <li><a href="/file/xyzzy/?style=paper">browse</a></li>
187 187 <li><a href="/file/xyzzy/foo?style=paper">file</a></li>
188 188 <li><a href="/file/tip/foo?style=paper">latest</a></li>
189 189 <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li>
190 190 <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li>
191 191 <li><a href="/log/xyzzy/foo?style=paper">file log</a></li>
192 192 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
193 193 annotate foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
194 194 <td class="author"><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td>
195 195 <td class="author"><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td>
196 196 <a href="/annotate/43c799df6e75/foo?style=paper#l1">
197 197 <a href="/annotate/43c799df6e75/foo?style=paper#l1">
198 198 <a href="/diff/43c799df6e75/foo?style=paper">diff</a>
199 199 <a href="/rev/43c799df6e75?style=paper">changeset</a>
200 200 <a href="/annotate/a7c1559b7bba/foo?style=paper#l2">
201 201 <a href="/annotate/a7c1559b7bba/foo?style=paper#l2">
202 202 <a href="/annotate/43c799df6e75/foo?style=paper">0</a></div>
203 203 <a href="/diff/a7c1559b7bba/foo?style=paper">diff</a>
204 204 <a href="/rev/a7c1559b7bba?style=paper">changeset</a>
205 205
206 206 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'diff/xyzzy/foo?style=paper' | egrep $REVLINKS
207 207 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
208 208 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
209 209 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
210 210 <li><a href="/file/xyzzy?style=paper">browse</a></li>
211 211 <li><a href="/file/xyzzy/foo?style=paper">file</a></li>
212 212 <li><a href="/file/tip/foo?style=paper">latest</a></li>
213 213 <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li>
214 214 <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li>
215 215 <li><a href="/log/xyzzy/foo?style=paper">file log</a></li>
216 216 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
217 217 diff foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
218 218 <td><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td>
219 219 <td><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td>
220 220
221 221 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'comparison/xyzzy/foo?style=paper' | egrep $REVLINKS
222 222 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
223 223 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
224 224 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
225 225 <li><a href="/file/xyzzy?style=paper">browse</a></li>
226 226 <li><a href="/file/xyzzy/foo?style=paper">file</a></li>
227 227 <li><a href="/file/tip/foo?style=paper">latest</a></li>
228 228 <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li>
229 229 <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li>
230 230 <li><a href="/log/xyzzy/foo?style=paper">file log</a></li>
231 231 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
232 232 comparison foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
233 233 <td><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td>
234 234 <td><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td>
235 235
236 236 (De)referencing symbolic revisions (coal)
237 237
238 238 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=coal' | egrep $REVLINKS
239 239 <li><a href="/graph/tip?style=coal">graph</a></li>
240 240 <li><a href="/rev/tip?style=coal">changeset</a></li>
241 241 <li><a href="/file/tip?style=coal">browse</a></li>
242 242 <a href="/archive/tip.zip">zip</a>
243 243 <a href="/shortlog/tip?revcount=30&style=coal">less</a>
244 244 <a href="/shortlog/tip?revcount=120&style=coal">more</a>
245 245 | rev 2: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a>
246 246 <a href="/rev/9d8c40cba617?style=coal">third</a>
247 247 <a href="/rev/a7c1559b7bba?style=coal">second</a>
248 248 <a href="/rev/43c799df6e75?style=coal">first</a>
249 249 <a href="/shortlog/tip?revcount=30&style=coal">less</a>
250 250 <a href="/shortlog/tip?revcount=120&style=coal">more</a>
251 251 | rev 2: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a>
252 252
253 253 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph?style=coal' | egrep $REVLINKS
254 254 <li><a href="/shortlog/tip?style=coal">log</a></li>
255 255 <li><a href="/rev/tip?style=coal">changeset</a></li>
256 256 <li><a href="/file/tip?style=coal">browse</a></li>
257 257 <a href="/graph/tip?revcount=30&style=coal">less</a>
258 258 <a href="/graph/tip?revcount=120&style=coal">more</a>
259 259 | rev 2: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a>
260 260 <a href="/rev/9d8c40cba617?style=coal">third</a>
261 261 <a href="/rev/a7c1559b7bba?style=coal">second</a>
262 262 <a href="/rev/43c799df6e75?style=coal">first</a>
263 263 <a href="/graph/tip?revcount=30&style=coal">less</a>
264 264 <a href="/graph/tip?revcount=120&style=coal">more</a>
265 265 | rev 2: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a>
266 266
267 267 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file?style=coal' | egrep $REVLINKS
268 268 <li><a href="/shortlog/tip?style=coal">log</a></li>
269 269 <li><a href="/graph/tip?style=coal">graph</a></li>
270 270 <li><a href="/rev/tip?style=coal">changeset</a></li>
271 271 <a href="/archive/tip.zip">zip</a>
272 272 directory / @ 2:<a href="/rev/9d8c40cba617?style=coal">9d8c40cba617</a>
273 273 <a href="/file/tip/dir?style=coal">
274 274 <a href="/file/tip/dir/?style=coal">
275 275 <a href="/file/tip/foo?style=coal">
276 276
277 277 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'branches?style=coal' | egrep $REVLINKS
278 278 <a href="/shortlog/default?style=coal" class="open">
279 279 <a href="/shortlog/9d8c40cba617?style=coal" class="open">
280 280
281 281 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'tags?style=coal' | egrep $REVLINKS
282 282 <a href="/rev/tip?style=coal">
283 283 <a href="/rev/9d8c40cba617?style=coal">
284 284
285 285 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'bookmarks?style=coal' | egrep $REVLINKS
286 286 <a href="/rev/xyzzy?style=coal">
287 287 <a href="/rev/a7c1559b7bba?style=coal">
288 288
289 289 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=coal&rev=all()' | egrep $REVLINKS
290 290 <a href="/rev/9d8c40cba617?style=coal">third</a>
291 291 <a href="/rev/a7c1559b7bba?style=coal">second</a>
292 292 <a href="/rev/43c799df6e75?style=coal">first</a>
293 293
294 294 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'rev/xyzzy?style=coal' | egrep $REVLINKS
295 295 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
296 296 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
297 297 <li><a href="/raw-rev/xyzzy?style=coal">raw</a></li>
298 298 <li><a href="/file/xyzzy?style=coal">browse</a></li>
299 299 <a href="/archive/xyzzy.zip">zip</a>
300 300 changeset 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
301 301 <td class="author"><a href="/rev/43c799df6e75?style=coal">43c799df6e75</a> </td>
302 302 <td class="author"> <a href="/rev/9d8c40cba617?style=coal">9d8c40cba617</a></td>
303 303 <td class="files"><a href="/file/a7c1559b7bba/foo?style=coal">foo</a> </td>
304 304
305 305 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog/xyzzy?style=coal' | egrep $REVLINKS
306 306 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
307 307 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
308 308 <li><a href="/file/xyzzy?style=coal">browse</a></li>
309 309 <a href="/archive/xyzzy.zip">zip</a>
310 310 <a href="/shortlog/xyzzy?revcount=30&style=coal">less</a>
311 311 <a href="/shortlog/xyzzy?revcount=120&style=coal">more</a>
312 312 | rev 1: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a>
313 313 <a href="/rev/a7c1559b7bba?style=coal">second</a>
314 314 <a href="/rev/43c799df6e75?style=coal">first</a>
315 315 <a href="/shortlog/xyzzy?revcount=30&style=coal">less</a>
316 316 <a href="/shortlog/xyzzy?revcount=120&style=coal">more</a>
317 317 | rev 1: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a>
318 318
319 319 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph/xyzzy?style=coal' | egrep $REVLINKS
320 320 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
321 321 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
322 322 <li><a href="/file/xyzzy?style=coal">browse</a></li>
323 323 <a href="/graph/xyzzy?revcount=30&style=coal">less</a>
324 324 <a href="/graph/xyzzy?revcount=120&style=coal">more</a>
325 325 | rev 1: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a>
326 326 <a href="/rev/a7c1559b7bba?style=coal">second</a>
327 327 <a href="/rev/43c799df6e75?style=coal">first</a>
328 328 <a href="/graph/xyzzy?revcount=30&style=coal">less</a>
329 329 <a href="/graph/xyzzy?revcount=120&style=coal">more</a>
330 330 | rev 1: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a>
331 331
332 332 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy?style=coal' | egrep $REVLINKS
333 333 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
334 334 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
335 335 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
336 336 <a href="/archive/xyzzy.zip">zip</a>
337 337 directory / @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
338 338 <a href="/file/xyzzy/dir?style=coal">
339 339 <a href="/file/xyzzy/dir/?style=coal">
340 340 <a href="/file/xyzzy/foo?style=coal">
341 341
342 342 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy/foo?style=coal' | egrep $REVLINKS
343 343 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
344 344 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
345 345 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
346 346 <li><a href="/file/xyzzy/?style=coal">browse</a></li>
347 347 <li><a href="/file/tip/foo?style=coal">latest</a></li>
348 348 <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li>
349 349 <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li>
350 350 <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li>
351 351 <li><a href="/log/xyzzy/foo?style=coal">file log</a></li>
352 352 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
353 353 view foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
354 354 <td class="author"><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td>
355 355 <td class="author"><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td>
356 356
357 357 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy/foo?style=coal' | egrep $REVLINKS
358 358 href="/atom-log/tip/foo" title="Atom feed for test:foo" />
359 359 href="/rss-log/tip/foo" title="RSS feed for test:foo" />
360 360 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
361 361 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
362 362 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
363 363 <li><a href="/file/xyzzy?style=coal">browse</a></li>
364 364 <li><a href="/file/xyzzy/foo?style=coal">file</a></li>
365 365 <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li>
366 366 <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li>
367 367 <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li>
368 368 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
369 369 <a href="/atom-log/tip/foo" title="subscribe to atom feed">
370 370 log foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
371 371 <a href="/log/xyzzy/foo?revcount=30&style=coal">less</a>
372 372 <a href="/log/xyzzy/foo?revcount=120&style=coal">more</a>
373 373 | <a href="/log/43c799df6e75/foo?style=coal">(0)</a> <a href="/log/tip/foo?style=coal">tip</a> </div>
374 374 <a href="/rev/a7c1559b7bba?style=coal">second</a>
375 375 <a href="/rev/43c799df6e75?style=coal">first</a>
376 376 <a href="/log/xyzzy/foo?revcount=30&style=coal">less</a>
377 377 <a href="/log/xyzzy/foo?revcount=120&style=coal">more</a>
378 378 | <a href="/log/43c799df6e75/foo?style=coal">(0)</a> <a href="/log/tip/foo?style=coal">tip</a>
379 379
380 380 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'annotate/xyzzy/foo?style=coal' | egrep $REVLINKS
381 381 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
382 382 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
383 383 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
384 384 <li><a href="/file/xyzzy/?style=coal">browse</a></li>
385 385 <li><a href="/file/xyzzy/foo?style=coal">file</a></li>
386 386 <li><a href="/file/tip/foo?style=coal">latest</a></li>
387 387 <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li>
388 388 <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li>
389 389 <li><a href="/log/xyzzy/foo?style=coal">file log</a></li>
390 390 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
391 391 annotate foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
392 392 <td class="author"><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td>
393 393 <td class="author"><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td>
394 394 <a href="/annotate/43c799df6e75/foo?style=coal#l1">
395 395 <a href="/annotate/43c799df6e75/foo?style=coal#l1">
396 396 <a href="/diff/43c799df6e75/foo?style=coal">diff</a>
397 397 <a href="/rev/43c799df6e75?style=coal">changeset</a>
398 398 <a href="/annotate/a7c1559b7bba/foo?style=coal#l2">
399 399 <a href="/annotate/a7c1559b7bba/foo?style=coal#l2">
400 400 <a href="/annotate/43c799df6e75/foo?style=coal">0</a></div>
401 401 <a href="/diff/a7c1559b7bba/foo?style=coal">diff</a>
402 402 <a href="/rev/a7c1559b7bba?style=coal">changeset</a>
403 403
404 404 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'diff/xyzzy/foo?style=coal' | egrep $REVLINKS
405 405 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
406 406 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
407 407 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
408 408 <li><a href="/file/xyzzy?style=coal">browse</a></li>
409 409 <li><a href="/file/xyzzy/foo?style=coal">file</a></li>
410 410 <li><a href="/file/tip/foo?style=coal">latest</a></li>
411 411 <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li>
412 412 <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li>
413 413 <li><a href="/log/xyzzy/foo?style=coal">file log</a></li>
414 414 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
415 415 diff foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
416 416 <td><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td>
417 417 <td><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td>
418 418
419 419 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'comparison/xyzzy/foo?style=coal' | egrep $REVLINKS
420 420 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
421 421 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
422 422 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
423 423 <li><a href="/file/xyzzy?style=coal">browse</a></li>
424 424 <li><a href="/file/xyzzy/foo?style=coal">file</a></li>
425 425 <li><a href="/file/tip/foo?style=coal">latest</a></li>
426 426 <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li>
427 427 <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li>
428 428 <li><a href="/log/xyzzy/foo?style=coal">file log</a></li>
429 429 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
430 430 comparison foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
431 431 <td><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td>
432 432 <td><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td>
433 433
434 434 (De)referencing symbolic revisions (gitweb)
435 435
436 436 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'summary?style=gitweb' | egrep $REVLINKS
437 437 <a href="/file?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a> |
438 438 <a class="list" href="/rev/9d8c40cba617?style=gitweb">
439 439 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a> |
440 440 <a href="/file/9d8c40cba617?style=gitweb">files</a>
441 441 <a class="list" href="/rev/a7c1559b7bba?style=gitweb">
442 442 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
443 443 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
444 444 <a class="list" href="/rev/43c799df6e75?style=gitweb">
445 445 <a href="/rev/43c799df6e75?style=gitweb">changeset</a> |
446 446 <a href="/file/43c799df6e75?style=gitweb">files</a>
447 447 <td><a class="list" href="/rev/xyzzy?style=gitweb"><b>xyzzy</b></a></td>
448 448 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
449 449 <a href="/log/a7c1559b7bba?style=gitweb">changelog</a> |
450 450 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
451 451 <td class="open"><a class="list" href="/shortlog/default?style=gitweb"><b>default</b></a></td>
452 452 <a href="/changeset/9d8c40cba617?style=gitweb">changeset</a> |
453 453 <a href="/log/9d8c40cba617?style=gitweb">changelog</a> |
454 454 <a href="/file/9d8c40cba617?style=gitweb">files</a>
455 455
456 456 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=gitweb' | egrep $REVLINKS
457 457 <a href="/log/tip?style=gitweb">changelog</a> |
458 458 <a href="/graph/tip?style=gitweb">graph</a> |
459 459 <a href="/file/tip?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a> |
460 460 <br/><a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a> <br/>
461 461 <a class="list" href="/rev/9d8c40cba617?style=gitweb">
462 462 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a> |
463 463 <a href="/file/9d8c40cba617?style=gitweb">files</a>
464 464 <a class="list" href="/rev/a7c1559b7bba?style=gitweb">
465 465 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
466 466 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
467 467 <a class="list" href="/rev/43c799df6e75?style=gitweb">
468 468 <a href="/rev/43c799df6e75?style=gitweb">changeset</a> |
469 469 <a href="/file/43c799df6e75?style=gitweb">files</a>
470 470 <a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a>
471 471
472 472 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log?style=gitweb' | egrep $REVLINKS
473 473 <a href="/shortlog/tip?style=gitweb">shortlog</a> |
474 474 <a href="/graph/tip?style=gitweb">graph</a> |
475 475 <a href="/file/tip?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a> |
476 476 <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/>
477 477 <a class="title" href="/rev/9d8c40cba617?style=gitweb">
478 478 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a><br/>
479 479 <a class="title" href="/rev/a7c1559b7bba?style=gitweb">
480 480 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a><br/>
481 481 <a class="title" href="/rev/43c799df6e75?style=gitweb">
482 482 <a href="/rev/43c799df6e75?style=gitweb">changeset</a><br/>
483 483 <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/>
484 484
485 485 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph?style=gitweb' | egrep $REVLINKS
486 486 <a href="/shortlog/tip?style=gitweb">shortlog</a> |
487 487 <a href="/log/tip?style=gitweb">changelog</a> |
488 488 <a href="/file/tip?style=gitweb">files</a> |
489 489 <a href="/graph/tip?revcount=30&style=gitweb">less</a>
490 490 <a href="/graph/tip?revcount=120&style=gitweb">more</a>
491 491 | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a>
492 492 <a class="list" href="/rev/9d8c40cba617?style=gitweb"><b>third</b></a>
493 493 <a class="list" href="/rev/a7c1559b7bba?style=gitweb"><b>second</b></a>
494 494 <a class="list" href="/rev/43c799df6e75?style=gitweb"><b>first</b></a>
495 495 <a href="/graph/tip?revcount=30&style=gitweb">less</a>
496 496 <a href="/graph/tip?revcount=120&style=gitweb">more</a>
497 497 | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a>
498 498
499 499 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'tags?style=gitweb' | egrep $REVLINKS
500 500 <td><a class="list" href="/rev/tip?style=gitweb"><b>tip</b></a></td>
501 501 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a> |
502 502 <a href="/log/9d8c40cba617?style=gitweb">changelog</a> |
503 503 <a href="/file/9d8c40cba617?style=gitweb">files</a>
504 504
505 505 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'bookmarks?style=gitweb' | egrep $REVLINKS
506 506 <td><a class="list" href="/rev/xyzzy?style=gitweb"><b>xyzzy</b></a></td>
507 507 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
508 508 <a href="/log/a7c1559b7bba?style=gitweb">changelog</a> |
509 509 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
510 510
511 511 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'branches?style=gitweb' | egrep $REVLINKS
512 512 <td class="open"><a class="list" href="/shortlog/default?style=gitweb"><b>default</b></a></td>
513 513 <a href="/changeset/9d8c40cba617?style=gitweb">changeset</a> |
514 514 <a href="/log/9d8c40cba617?style=gitweb">changelog</a> |
515 515 <a href="/file/9d8c40cba617?style=gitweb">files</a>
516 516
517 517 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file?style=gitweb' | egrep $REVLINKS
518 518 <a href="/rev/tip?style=gitweb">changeset</a> | <a href="/archive/tip.zip">zip</a> |
519 519 <a href="/file/tip/dir?style=gitweb">dir</a>
520 520 <a href="/file/tip/dir/?style=gitweb"></a>
521 521 <a href="/file/tip/dir?style=gitweb">files</a>
522 522 <a class="list" href="/file/tip/foo?style=gitweb">foo</a>
523 523 <a href="/file/tip/foo?style=gitweb">file</a> |
524 524 <a href="/log/tip/foo?style=gitweb">revisions</a> |
525 525 <a href="/annotate/tip/foo?style=gitweb">annotate</a>
526 526
527 527 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=gitweb&rev=all()' | egrep $REVLINKS
528 528 <a href="/file?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a>
529 529 <a class="title" href="/rev/9d8c40cba617?style=gitweb">
530 530 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a><br/>
531 531 <a class="title" href="/rev/a7c1559b7bba?style=gitweb">
532 532 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a><br/>
533 533 <a class="title" href="/rev/43c799df6e75?style=gitweb">
534 534 <a href="/rev/43c799df6e75?style=gitweb">changeset</a><br/>
535 535
536 536 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'rev/xyzzy?style=gitweb' | egrep $REVLINKS
537 537 <a href="/shortlog/xyzzy?style=gitweb">shortlog</a> |
538 538 <a href="/log/xyzzy?style=gitweb">changelog</a> |
539 539 <a href="/graph/xyzzy?style=gitweb">graph</a> |
540 540 <a href="/file/xyzzy?style=gitweb">files</a> |
541 541 <a href="/raw-rev/xyzzy">raw</a> | <a href="/archive/xyzzy.zip">zip</a> |
542 542 <a class="title" href="/raw-rev/a7c1559b7bba">
543 543 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
544 544 <a class="list" href="/rev/43c799df6e75?style=gitweb">43c799df6e75</a>
545 545 <a class="list" href="/rev/9d8c40cba617?style=gitweb">9d8c40cba617</a>
546 546 <td><a class="list" href="/diff/a7c1559b7bba/foo?style=gitweb">foo</a></td>
547 547 <a href="/file/a7c1559b7bba/foo?style=gitweb">file</a> |
548 548 <a href="/annotate/a7c1559b7bba/foo?style=gitweb">annotate</a> |
549 549 <a href="/diff/a7c1559b7bba/foo?style=gitweb">diff</a> |
550 550 <a href="/comparison/a7c1559b7bba/foo?style=gitweb">comparison</a> |
551 551 <a href="/log/a7c1559b7bba/foo?style=gitweb">revisions</a>
552 552
553 553 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog/xyzzy?style=gitweb' | egrep $REVLINKS
554 554 <a href="/log/xyzzy?style=gitweb">changelog</a> |
555 555 <a href="/graph/xyzzy?style=gitweb">graph</a> |
556 556 <a href="/file/xyzzy?style=gitweb">files</a> | <a href="/archive/xyzzy.zip">zip</a> |
557 557 <br/><a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a> <br/>
558 558 <a class="list" href="/rev/a7c1559b7bba?style=gitweb">
559 559 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
560 560 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
561 561 <a class="list" href="/rev/43c799df6e75?style=gitweb">
562 562 <a href="/rev/43c799df6e75?style=gitweb">changeset</a> |
563 563 <a href="/file/43c799df6e75?style=gitweb">files</a>
564 564 <a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a>
565 565
566 566 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy?style=gitweb' | egrep $REVLINKS
567 567 <a href="/shortlog/xyzzy?style=gitweb">shortlog</a> |
568 568 <a href="/graph/xyzzy?style=gitweb">graph</a> |
569 569 <a href="/file/xyzzy?style=gitweb">files</a> | <a href="/archive/xyzzy.zip">zip</a> |
570 570 <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/>
571 571 <a class="title" href="/rev/a7c1559b7bba?style=gitweb">
572 572 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a><br/>
573 573 <a class="title" href="/rev/43c799df6e75?style=gitweb">
574 574 <a href="/rev/43c799df6e75?style=gitweb">changeset</a><br/>
575 575 <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/>
576 576
577 577 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph/xyzzy?style=gitweb' | egrep $REVLINKS
578 578 <a href="/shortlog/xyzzy?style=gitweb">shortlog</a> |
579 579 <a href="/log/xyzzy?style=gitweb">changelog</a> |
580 580 <a href="/file/xyzzy?style=gitweb">files</a> |
581 581 <a href="/graph/xyzzy?revcount=30&style=gitweb">less</a>
582 582 <a href="/graph/xyzzy?revcount=120&style=gitweb">more</a>
583 583 | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a>
584 584 <a class="list" href="/rev/a7c1559b7bba?style=gitweb"><b>second</b></a>
585 585 <a class="list" href="/rev/43c799df6e75?style=gitweb"><b>first</b></a>
586 586 <a href="/graph/xyzzy?revcount=30&style=gitweb">less</a>
587 587 <a href="/graph/xyzzy?revcount=120&style=gitweb">more</a>
588 588 | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a>
589 589
590 590 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy?style=gitweb' | egrep $REVLINKS
591 591 <a href="/rev/xyzzy?style=gitweb">changeset</a> | <a href="/archive/xyzzy.zip">zip</a> |
592 592 <a href="/file/xyzzy/dir?style=gitweb">dir</a>
593 593 <a href="/file/xyzzy/dir/?style=gitweb"></a>
594 594 <a href="/file/xyzzy/dir?style=gitweb">files</a>
595 595 <a class="list" href="/file/xyzzy/foo?style=gitweb">foo</a>
596 596 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
597 597 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
598 598 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a>
599 599
600 600 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy/foo?style=gitweb' | egrep $REVLINKS
601 601 <a href="/file/xyzzy/?style=gitweb">files</a> |
602 602 <a href="/rev/xyzzy?style=gitweb">changeset</a> |
603 603 <a href="/file/tip/foo?style=gitweb">latest</a> |
604 604 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
605 605 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> |
606 606 <a href="/diff/xyzzy/foo?style=gitweb">diff</a> |
607 607 <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> |
608 608 <a href="/raw-file/xyzzy/foo">raw</a> |
609 609 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
610 610 <a class="list" href="/file/43c799df6e75/foo?style=gitweb">
611 611 <a class="list" href="/file/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a></td>
612 612
613 613 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy/foo?style=gitweb' | egrep $REVLINKS
614 614 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
615 615 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> |
616 616 <a href="/diff/xyzzy/foo?style=gitweb">diff</a> |
617 617 <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> |
618 618 <a href="/rss-log/tip/foo">rss</a> |
619 619 <a href="/log/43c799df6e75/foo?style=gitweb">(0)</a> <a href="/log/tip/foo?style=gitweb">tip</a>
620 620 <a class="list" href="/rev/a7c1559b7bba?style=gitweb">
621 621 <a href="/file/a7c1559b7bba/foo?style=gitweb">file</a> |
622 622 <a href="/diff/a7c1559b7bba/foo?style=gitweb">diff</a> |
623 623 <a href="/annotate/a7c1559b7bba/foo?style=gitweb">annotate</a>
624 624 <a class="list" href="/rev/43c799df6e75?style=gitweb">
625 625 <a href="/file/43c799df6e75/foo?style=gitweb">file</a> |
626 626 <a href="/diff/43c799df6e75/foo?style=gitweb">diff</a> |
627 627 <a href="/annotate/43c799df6e75/foo?style=gitweb">annotate</a>
628 628 <a href="/log/xyzzy/foo?revcount=30&style=gitweb">less</a>
629 629 <a href="/log/xyzzy/foo?revcount=120&style=gitweb">more</a>
630 630 <a href="/log/43c799df6e75/foo?style=gitweb">(0)</a> <a href="/log/tip/foo?style=gitweb">tip</a>
631 631
632 632 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'annotate/xyzzy/foo?style=gitweb' | egrep $REVLINKS
633 633 <a href="/file/xyzzy/?style=gitweb">files</a> |
634 634 <a href="/rev/xyzzy?style=gitweb">changeset</a> |
635 635 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
636 636 <a href="/file/tip/foo?style=gitweb">latest</a> |
637 637 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
638 638 <a href="/diff/xyzzy/foo?style=gitweb">diff</a> |
639 639 <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> |
640 640 <a href="/raw-file/xyzzy/foo">raw</a> |
641 641 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
642 642 <a class="list" href="/annotate/43c799df6e75/foo?style=gitweb">
643 643 <a class="list" href="/annotate/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a></td>
644 644 <a href="/annotate/43c799df6e75/foo?style=gitweb#l1">
645 645 <a href="/annotate/43c799df6e75/foo?style=gitweb#l1">
646 646 <a href="/diff/43c799df6e75/foo?style=gitweb">diff</a>
647 647 <a href="/rev/43c799df6e75?style=gitweb">changeset</a>
648 648 <a href="/annotate/a7c1559b7bba/foo?style=gitweb#l2">
649 649 <a href="/annotate/a7c1559b7bba/foo?style=gitweb#l2">
650 650 <a href="/annotate/43c799df6e75/foo?style=gitweb">0</a></div>
651 651 <a href="/diff/a7c1559b7bba/foo?style=gitweb">diff</a>
652 652 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a>
653 653
654 654 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'diff/xyzzy/foo?style=gitweb' | egrep $REVLINKS
655 655 <a href="/file/xyzzy?style=gitweb">files</a> |
656 656 <a href="/rev/xyzzy?style=gitweb">changeset</a> |
657 657 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
658 658 <a href="/file/tip/foo?style=gitweb">latest</a> |
659 659 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
660 660 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> |
661 661 <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> |
662 662 <a href="/raw-diff/xyzzy/foo">raw</a> |
663 663 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
664 664 <a class="list" href="/diff/43c799df6e75/foo?style=gitweb">
665 665 <a class="list" href="/diff/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a>
666 666
667 667 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'comparison/xyzzy/foo?style=gitweb' | egrep $REVLINKS
668 668 <a href="/file/xyzzy?style=gitweb">files</a> |
669 669 <a href="/rev/xyzzy?style=gitweb">changeset</a> |
670 670 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
671 671 <a href="/file/tip/foo?style=gitweb">latest</a> |
672 672 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
673 673 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> |
674 674 <a href="/diff/xyzzy/foo?style=gitweb">diff</a> |
675 675 <a href="/raw-diff/xyzzy/foo">raw</a> |
676 676 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
677 677 <a class="list" href="/comparison/43c799df6e75/foo?style=gitweb">
678 678 <a class="list" href="/comparison/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a>
679 679
680 680 (De)referencing symbolic revisions (monoblue)
681 681
682 682 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'summary?style=monoblue' | egrep $REVLINKS
683 683 <li><a href="/archive/tip.zip">zip</a></li>
684 684 <a href="/rev/9d8c40cba617?style=monoblue">
685 685 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
686 686 <a href="/file/9d8c40cba617?style=monoblue">files</a>
687 687 <a href="/rev/a7c1559b7bba?style=monoblue">
688 688 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
689 689 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
690 690 <a href="/rev/43c799df6e75?style=monoblue">
691 691 <a href="/rev/43c799df6e75?style=monoblue">changeset</a> |
692 692 <a href="/file/43c799df6e75?style=monoblue">files</a>
693 693 <td><a href="/rev/xyzzy?style=monoblue">xyzzy</a></td>
694 694 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
695 695 <a href="/log/a7c1559b7bba?style=monoblue">changelog</a> |
696 696 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
697 697 <td class="open"><a href="/shortlog/default?style=monoblue">default</a></td>
698 698 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
699 699 <a href="/log/9d8c40cba617?style=monoblue">changelog</a> |
700 700 <a href="/file/9d8c40cba617?style=monoblue">files</a>
701 701
702 702 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=monoblue' | egrep $REVLINKS
703 703 <li><a href="/graph/tip?style=monoblue">graph</a></li>
704 704 <li><a href="/file/tip?style=monoblue">files</a></li>
705 705 <li><a href="/archive/tip.zip">zip</a></li>
706 706 <a href="/rev/9d8c40cba617?style=monoblue">
707 707 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
708 708 <a href="/file/9d8c40cba617?style=monoblue">files</a>
709 709 <a href="/rev/a7c1559b7bba?style=monoblue">
710 710 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
711 711 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
712 712 <a href="/rev/43c799df6e75?style=monoblue">
713 713 <a href="/rev/43c799df6e75?style=monoblue">changeset</a> |
714 714 <a href="/file/43c799df6e75?style=monoblue">files</a>
715 715 <a href="/shortlog/43c799df6e75?style=monoblue">(0)</a> <a href="/shortlog/tip?style=monoblue">tip</a>
716 716
717 717 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log?style=monoblue' | egrep $REVLINKS
718 718 <li><a href="/graph/tip?style=monoblue">graph</a></li>
719 719 <li><a href="/file/tip?style=monoblue">files</a></li>
720 720 <li><a href="/archive/tip.zip">zip</a></li>
721 721 <a class="title" href="/rev/9d8c40cba617?style=monoblue">
722 722 <a class="title" href="/rev/a7c1559b7bba?style=monoblue">
723 723 <a class="title" href="/rev/43c799df6e75?style=monoblue">
724 724 <a href="/log/43c799df6e75?style=monoblue">(0)</a> <a href="/log/tip?style=monoblue">tip</a>
725 725
726 726 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph?style=monoblue' | egrep $REVLINKS
727 727 <li><a href="/file/tip?style=monoblue">files</a></li>
728 728 <a href="/rev/9d8c40cba617?style=monoblue">third</a>
729 729 <a href="/rev/a7c1559b7bba?style=monoblue">second</a>
730 730 <a href="/rev/43c799df6e75?style=monoblue">first</a>
731 731 <a href="/graph/tip?revcount=30&style=monoblue">less</a>
732 732 <a href="/graph/tip?revcount=120&style=monoblue">more</a>
733 733 | <a href="/graph/43c799df6e75?style=monoblue">(0)</a> <a href="/graph/tip?style=monoblue">tip</a>
734 734
735 735 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'tags?style=monoblue' | egrep $REVLINKS
736 736 <td><a href="/rev/tip?style=monoblue">tip</a></td>
737 737 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
738 738 <a href="/log/9d8c40cba617?style=monoblue">changelog</a> |
739 739 <a href="/file/9d8c40cba617?style=monoblue">files</a>
740 740
741 741 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'bookmarks?style=monoblue' | egrep $REVLINKS
742 742 <td><a href="/rev/xyzzy?style=monoblue">xyzzy</a></td>
743 743 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
744 744 <a href="/log/a7c1559b7bba?style=monoblue">changelog</a> |
745 745 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
746 746
747 747 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'branches?style=monoblue' | egrep $REVLINKS
748 748 <td class="open"><a href="/shortlog/default?style=monoblue">default</a></td>
749 749 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
750 750 <a href="/log/9d8c40cba617?style=monoblue">changelog</a> |
751 751 <a href="/file/9d8c40cba617?style=monoblue">files</a>
752 752
753 753 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file?style=monoblue' | egrep $REVLINKS
754 754 <li><a href="/graph/tip?style=monoblue">graph</a></li>
755 755 <li><a href="/rev/tip?style=monoblue">changeset</a></li>
756 756 <li><a href="/archive/tip.zip">zip</a></li>
757 <td><a href="/file/tip/?style=monoblue">[up]</a></td>
758 757 <a href="/file/tip/dir?style=monoblue">dir</a>
759 758 <a href="/file/tip/dir/?style=monoblue"></a>
760 759 <td><a href="/file/tip/dir?style=monoblue">files</a></td>
761 760 <td><a href="/file/tip/foo?style=monoblue">foo</a></td>
762 761 <a href="/file/tip/foo?style=monoblue">file</a> |
763 762 <a href="/log/tip/foo?style=monoblue">revisions</a> |
764 763 <a href="/annotate/tip/foo?style=monoblue">annotate</a>
765 764
766 765 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=monoblue&rev=all()' | egrep $REVLINKS
767 766 <li><a href="/archive/tip.zip">zip</a></li>
768 767 <a class="title" href="/rev/9d8c40cba617?style=monoblue">
769 768 <a class="title" href="/rev/a7c1559b7bba?style=monoblue">
770 769 <a class="title" href="/rev/43c799df6e75?style=monoblue">
771 770
772 771 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'rev/xyzzy?style=monoblue' | egrep $REVLINKS
773 772 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
774 773 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
775 774 <li><a href="/raw-rev/xyzzy">raw</a></li>
776 775 <li><a href="/archive/xyzzy.zip">zip</a></li>
777 776 <a href="/raw-rev/a7c1559b7bba">
778 777 <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
779 778 <dd><a href="/rev/43c799df6e75?style=monoblue">43c799df6e75</a></dd>
780 779 <dd><a href="/rev/9d8c40cba617?style=monoblue">9d8c40cba617</a></dd>
781 780 <td><a href="/diff/a7c1559b7bba/foo?style=monoblue">foo</a></td>
782 781 <a href="/file/a7c1559b7bba/foo?style=monoblue">file</a> |
783 782 <a href="/annotate/a7c1559b7bba/foo?style=monoblue">annotate</a> |
784 783 <a href="/diff/a7c1559b7bba/foo?style=monoblue">diff</a> |
785 784 <a href="/comparison/a7c1559b7bba/foo?style=monoblue">comparison</a> |
786 785 <a href="/log/a7c1559b7bba/foo?style=monoblue">revisions</a>
787 786
788 787 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog/xyzzy?style=monoblue' | egrep $REVLINKS
789 788 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
790 789 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
791 790 <li><a href="/archive/xyzzy.zip">zip</a></li>
792 791 <a href="/rev/a7c1559b7bba?style=monoblue">
793 792 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
794 793 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
795 794 <a href="/rev/43c799df6e75?style=monoblue">
796 795 <a href="/rev/43c799df6e75?style=monoblue">changeset</a> |
797 796 <a href="/file/43c799df6e75?style=monoblue">files</a>
798 797 <a href="/shortlog/43c799df6e75?style=monoblue">(0)</a> <a href="/shortlog/tip?style=monoblue">tip</a>
799 798
800 799 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy?style=monoblue' | egrep $REVLINKS
801 800 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
802 801 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
803 802 <li><a href="/archive/xyzzy.zip">zip</a></li>
804 803 <a class="title" href="/rev/a7c1559b7bba?style=monoblue">
805 804 <a class="title" href="/rev/43c799df6e75?style=monoblue">
806 805 <a href="/log/43c799df6e75?style=monoblue">(0)</a> <a href="/log/tip?style=monoblue">tip</a>
807 806
808 807 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph/xyzzy?style=monoblue' | egrep $REVLINKS
809 808 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
810 809 <a href="/rev/a7c1559b7bba?style=monoblue">second</a>
811 810 <a href="/rev/43c799df6e75?style=monoblue">first</a>
812 811 <a href="/graph/xyzzy?revcount=30&style=monoblue">less</a>
813 812 <a href="/graph/xyzzy?revcount=120&style=monoblue">more</a>
814 813 | <a href="/graph/43c799df6e75?style=monoblue">(0)</a> <a href="/graph/tip?style=monoblue">tip</a>
815 814
816 815 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy?style=monoblue' | egrep $REVLINKS
817 816 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
818 817 <li><a href="/rev/xyzzy?style=monoblue">changeset</a></li>
819 818 <li><a href="/archive/xyzzy.zip">zip</a></li>
820 <td><a href="/file/xyzzy/?style=monoblue">[up]</a></td>
821 819 <a href="/file/xyzzy/dir?style=monoblue">dir</a>
822 820 <a href="/file/xyzzy/dir/?style=monoblue"></a>
823 821 <td><a href="/file/xyzzy/dir?style=monoblue">files</a></td>
824 822 <td><a href="/file/xyzzy/foo?style=monoblue">foo</a></td>
825 823 <a href="/file/xyzzy/foo?style=monoblue">file</a> |
826 824 <a href="/log/xyzzy/foo?style=monoblue">revisions</a> |
827 825 <a href="/annotate/xyzzy/foo?style=monoblue">annotate</a>
828 826
829 827 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy/foo?style=monoblue' | egrep $REVLINKS
830 828 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
831 829 <li><a href="/file/xyzzy/?style=monoblue">files</a></li>
832 830 <li><a href="/file/tip/foo?style=monoblue">latest</a></li>
833 831 <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li>
834 832 <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li>
835 833 <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li>
836 834 <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li>
837 835 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
838 836 <dd><a class="list" href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
839 837 <a href="/file/43c799df6e75/foo?style=monoblue">
840 838 <a href="/file/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a>
841 839
842 840 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy/foo?style=monoblue' | egrep $REVLINKS
843 841 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
844 842 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
845 843 <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li>
846 844 <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li>
847 845 <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li>
848 846 <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li>
849 847 <li><a href="/rss-log/tip/foo">rss</a></li>
850 848 <a href="/rev/a7c1559b7bba?style=monoblue">
851 849 <a href="/file/a7c1559b7bba/foo?style=monoblue">file</a> |
852 850 <a href="/diff/a7c1559b7bba/foo?style=monoblue">diff</a> |
853 851 <a href="/annotate/a7c1559b7bba/foo?style=monoblue">annotate</a>
854 852 <a href="/rev/43c799df6e75?style=monoblue">
855 853 <a href="/file/43c799df6e75/foo?style=monoblue">file</a> |
856 854 <a href="/diff/43c799df6e75/foo?style=monoblue">diff</a> |
857 855 <a href="/annotate/43c799df6e75/foo?style=monoblue">annotate</a>
858 856 <a href="/log/43c799df6e75/foo?style=monoblue">(0)</a> <a href="/log/tip/foo?style=monoblue">tip</a>
859 857
860 858 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'annotate/xyzzy/foo?style=monoblue' | egrep $REVLINKS
861 859 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
862 860 <li><a href="/file/xyzzy/?style=monoblue">files</a></li>
863 861 <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li>
864 862 <li><a href="/file/tip/foo?style=monoblue">latest</a></li>
865 863 <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li>
866 864 <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li>
867 865 <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li>
868 866 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
869 867 <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
870 868 <a href="/annotate/43c799df6e75/foo?style=monoblue">
871 869 <a href="/annotate/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a>
872 870 <a href="/annotate/43c799df6e75/foo?style=monoblue#l1">
873 871 <a href="/annotate/43c799df6e75/foo?style=monoblue#l1">
874 872 <a href="/diff/43c799df6e75/foo?style=monoblue">diff</a>
875 873 <a href="/rev/43c799df6e75?style=monoblue">changeset</a>
876 874 <a href="/annotate/a7c1559b7bba/foo?style=monoblue#l2">
877 875 <a href="/annotate/a7c1559b7bba/foo?style=monoblue#l2">
878 876 <a href="/annotate/43c799df6e75/foo?style=monoblue">0</a></div>
879 877 <a href="/diff/a7c1559b7bba/foo?style=monoblue">diff</a>
880 878 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a>
881 879
882 880 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'diff/xyzzy/foo?style=monoblue' | egrep $REVLINKS
883 881 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
884 882 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
885 883 <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li>
886 884 <li><a href="/file/tip/foo?style=monoblue">latest</a></li>
887 885 <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li>
888 886 <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li>
889 887 <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li>
890 888 <li><a href="/raw-diff/xyzzy/foo">raw</a></li>
891 889 <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
892 890 <dd><a href="/diff/43c799df6e75/foo?style=monoblue">43c799df6e75</a></dd>
893 891 <dd><a href="/diff/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a></dd>
894 892
895 893 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'comparison/xyzzy/foo?style=monoblue' | egrep $REVLINKS
896 894 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
897 895 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
898 896 <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li>
899 897 <li><a href="/file/tip/foo?style=monoblue">latest</a></li>
900 898 <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li>
901 899 <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li>
902 900 <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li>
903 901 <li><a href="/raw-diff/xyzzy/foo">raw</a></li>
904 902 <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
905 903 <dd><a href="/comparison/43c799df6e75/foo?style=monoblue">43c799df6e75</a></dd>
906 904 <dd><a href="/comparison/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a></dd>
907 905
908 906 (De)referencing symbolic revisions (spartan)
909 907
910 908 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=spartan' | egrep $REVLINKS
911 909 <a href="/log/tip?style=spartan">changelog</a>
912 910 <a href="/graph/tip?style=spartan">graph</a>
913 911 <a href="/file/tip/?style=spartan">files</a>
914 912 <a href="/archive/tip.zip">zip</a>
915 913 navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small>
916 914 <td class="node"><a href="/rev/9d8c40cba617?style=spartan">third</a></td>
917 915 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">second</a></td>
918 916 <td class="node"><a href="/rev/43c799df6e75?style=spartan">first</a></td>
919 917 navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small>
920 918
921 919 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log?style=spartan' | egrep $REVLINKS
922 920 <a href="/shortlog/tip?style=spartan">shortlog</a>
923 921 <a href="/graph/tip?style=spartan">graph</a>
924 922 <a href="/file/tip?style=spartan">files</a>
925 923 <a href="/archive/tip.zip">zip</a>
926 924 navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small>
927 925 <td class="node"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
928 926 <th class="files"><a href="/file/9d8c40cba617?style=spartan">files</a>:</th>
929 927 <td class="files"><a href="/diff/9d8c40cba617/foo?style=spartan">foo</a> </td>
930 928 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
931 929 <th class="files"><a href="/file/a7c1559b7bba?style=spartan">files</a>:</th>
932 930 <td class="files"><a href="/diff/a7c1559b7bba/foo?style=spartan">foo</a> </td>
933 931 <td class="node"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
934 932 <th class="files"><a href="/file/43c799df6e75?style=spartan">files</a>:</th>
935 933 <td class="files"><a href="/diff/43c799df6e75/dir/bar?style=spartan">dir/bar</a> <a href="/diff/43c799df6e75/foo?style=spartan">foo</a> </td>
936 934 navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small>
937 935
938 936 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph?style=spartan' | egrep $REVLINKS
939 937 <a href="/log/tip?style=spartan">changelog</a>
940 938 <a href="/shortlog/tip?style=spartan">shortlog</a>
941 939 <a href="/file/tip/?style=spartan">files</a>
942 940 navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small>
943 941 <a href="/rev/9d8c40cba617?style=spartan">third</a>
944 942 <a href="/rev/a7c1559b7bba?style=spartan">second</a>
945 943 <a href="/rev/43c799df6e75?style=spartan">first</a>
946 944 navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small>
947 945
948 946 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'tags?style=spartan' | egrep $REVLINKS
949 947 <a href="/rev/9d8c40cba617?style=spartan">tip</a>
950 948
951 949 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'branches?style=spartan' | egrep $REVLINKS
952 950 <a href="/shortlog/9d8c40cba617?style=spartan" class="open">default</a>
953 951
954 952 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file?style=spartan' | egrep $REVLINKS
955 953 <a href="/log/tip?style=spartan">changelog</a>
956 954 <a href="/shortlog/tip?style=spartan">shortlog</a>
957 955 <a href="/graph/tip?style=spartan">graph</a>
958 956 <a href="/rev/tip?style=spartan">changeset</a>
959 957 <a href="/archive/tip.zip">zip</a>
960 958 <h2><a href="/">Mercurial</a> / files for changeset <a href="/rev/9d8c40cba617">9d8c40cba617</a>: /</h2>
961 959 <td><a href="/file/tip/?style=spartan">[up]</a>
962 960 <a href="/file/tip/dir?style=spartan">dir/</a>
963 961 <a href="/file/tip/dir/?style=spartan">
964 962 <td><a href="/file/tip/foo?style=spartan">foo</a></td>
965 963
966 964 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=spartan&rev=all()' | egrep $REVLINKS
967 965 <a href="/archive/tip.zip">zip</a>
968 966 <td class="node"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
969 967 <a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a>
970 968 <th class="files"><a href="/file/9d8c40cba617?style=spartan">files</a>:</th>
971 969 <td class="files"><a href="/diff/9d8c40cba617/foo?style=spartan">foo</a> </td>
972 970 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
973 971 <a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a>
974 972 <td class="child"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
975 973 <th class="files"><a href="/file/a7c1559b7bba?style=spartan">files</a>:</th>
976 974 <td class="files"><a href="/diff/a7c1559b7bba/foo?style=spartan">foo</a> </td>
977 975 <td class="node"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
978 976 <td class="child"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
979 977 <th class="files"><a href="/file/43c799df6e75?style=spartan">files</a>:</th>
980 978 <td class="files"><a href="/diff/43c799df6e75/dir/bar?style=spartan">dir/bar</a> <a href="/diff/43c799df6e75/foo?style=spartan">foo</a> </td>
981 979
982 980 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'rev/xyzzy?style=spartan' | egrep $REVLINKS
983 981 <a href="/log/xyzzy?style=spartan">changelog</a>
984 982 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
985 983 <a href="/graph/xyzzy?style=spartan">graph</a>
986 984 <a href="/file/xyzzy?style=spartan">files</a>
987 985 <a href="/raw-rev/xyzzy">raw</a>
988 986 <a href="/archive/xyzzy.zip">zip</a>
989 987 <td class="changeset"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
990 988 <td class="parent"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
991 989 <td class="child"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
992 990 <td class="files"><a href="/file/a7c1559b7bba/foo?style=spartan">foo</a> </td>
993 991
994 992 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog/xyzzy?style=spartan' | egrep $REVLINKS
995 993 <a href="/log/xyzzy?style=spartan">changelog</a>
996 994 <a href="/graph/xyzzy?style=spartan">graph</a>
997 995 <a href="/file/xyzzy/?style=spartan">files</a>
998 996 <a href="/archive/xyzzy.zip">zip</a>
999 997 navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small>
1000 998 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">second</a></td>
1001 999 <td class="node"><a href="/rev/43c799df6e75?style=spartan">first</a></td>
1002 1000 navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small>
1003 1001
1004 1002 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy?style=spartan' | egrep $REVLINKS
1005 1003 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1006 1004 <a href="/graph/xyzzy?style=spartan">graph</a>
1007 1005 <a href="/file/xyzzy?style=spartan">files</a>
1008 1006 <a href="/archive/xyzzy.zip">zip</a>
1009 1007 navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small>
1010 1008 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
1011 1009 <th class="files"><a href="/file/a7c1559b7bba?style=spartan">files</a>:</th>
1012 1010 <td class="files"><a href="/diff/a7c1559b7bba/foo?style=spartan">foo</a> </td>
1013 1011 <td class="node"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
1014 1012 <th class="files"><a href="/file/43c799df6e75?style=spartan">files</a>:</th>
1015 1013 <td class="files"><a href="/diff/43c799df6e75/dir/bar?style=spartan">dir/bar</a> <a href="/diff/43c799df6e75/foo?style=spartan">foo</a> </td>
1016 1014 navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small>
1017 1015
1018 1016 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph/xyzzy?style=spartan' | egrep $REVLINKS
1019 1017 <a href="/log/xyzzy?style=spartan">changelog</a>
1020 1018 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1021 1019 <a href="/file/xyzzy/?style=spartan">files</a>
1022 1020 navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small>
1023 1021 <a href="/rev/a7c1559b7bba?style=spartan">second</a>
1024 1022 <a href="/rev/43c799df6e75?style=spartan">first</a>
1025 1023 navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small>
1026 1024
1027 1025 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy?style=spartan' | egrep $REVLINKS
1028 1026 <a href="/log/xyzzy?style=spartan">changelog</a>
1029 1027 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1030 1028 <a href="/graph/xyzzy?style=spartan">graph</a>
1031 1029 <a href="/rev/xyzzy?style=spartan">changeset</a>
1032 1030 <a href="/archive/xyzzy.zip">zip</a>
1033 1031 <h2><a href="/">Mercurial</a> / files for changeset <a href="/rev/a7c1559b7bba">a7c1559b7bba</a>: /</h2>
1034 1032 <td><a href="/file/xyzzy/?style=spartan">[up]</a>
1035 1033 <a href="/file/xyzzy/dir?style=spartan">dir/</a>
1036 1034 <a href="/file/xyzzy/dir/?style=spartan">
1037 1035 <td><a href="/file/xyzzy/foo?style=spartan">foo</a></td>
1038 1036
1039 1037 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy/foo?style=spartan' | egrep $REVLINKS
1040 1038 <a href="/log/xyzzy?style=spartan">changelog</a>
1041 1039 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1042 1040 <a href="/graph/xyzzy?style=spartan">graph</a>
1043 1041 <a href="/rev/xyzzy?style=spartan">changeset</a>
1044 1042 <a href="/file/xyzzy/?style=spartan">files</a>
1045 1043 <a href="/log/xyzzy/foo?style=spartan">revisions</a>
1046 1044 <a href="/annotate/xyzzy/foo?style=spartan">annotate</a>
1047 1045 <a href="/raw-file/xyzzy/foo">raw</a>
1048 1046 <td><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
1049 1047 <a href="/file/43c799df6e75/foo?style=spartan">
1050 1048 <td><a href="/file/9d8c40cba617/foo?style=spartan">9d8c40cba617</a></td>
1051 1049
1052 1050 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy/foo?style=spartan' | egrep $REVLINKS
1053 1051 href="/atom-log/tip/foo" title="Atom feed for test:foo">
1054 1052 href="/rss-log/tip/foo" title="RSS feed for test:foo">
1055 1053 <a href="/file/xyzzy/foo?style=spartan">file</a>
1056 1054 <a href="/annotate/xyzzy/foo?style=spartan">annotate</a>
1057 1055 <a type="application/rss+xml" href="/rss-log/tip/foo">rss</a>
1058 1056 <a type="application/atom+xml" href="/atom-log/tip/foo" title="Atom feed for test:foo">atom</a>
1059 1057 <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>
1060 1058 <th class="firstline"><a href="/rev/a7c1559b7bba?style=spartan">second</a></th>
1061 1059 <a href="/file/a7c1559b7bba/foo?style=spartan">a7c1559b7bba</a>
1062 1060 <a href="/diff/a7c1559b7bba/foo?style=spartan">(diff)</a>
1063 1061 <a href="/annotate/a7c1559b7bba/foo?style=spartan">(annotate)</a>
1064 1062 <th class="firstline"><a href="/rev/43c799df6e75?style=spartan">first</a></th>
1065 1063 <a href="/file/43c799df6e75/foo?style=spartan">43c799df6e75</a>
1066 1064 <a href="/diff/43c799df6e75/foo?style=spartan">(diff)</a>
1067 1065 <a href="/annotate/43c799df6e75/foo?style=spartan">(annotate)</a>
1068 1066
1069 1067 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'annotate/xyzzy/foo?style=spartan' | egrep $REVLINKS
1070 1068 <a href="/log/xyzzy?style=spartan">changelog</a>
1071 1069 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1072 1070 <a href="/graph/xyzzy?style=spartan">graph</a>
1073 1071 <a href="/rev/xyzzy?style=spartan">changeset</a>
1074 1072 <a href="/file/xyzzy/?style=spartan">files</a>
1075 1073 <a href="/file/xyzzy/foo?style=spartan">file</a>
1076 1074 <a href="/log/xyzzy/foo?style=spartan">revisions</a>
1077 1075 <a href="/raw-file/xyzzy/foo">raw</a>
1078 1076 <td><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
1079 1077 <a href="/annotate/43c799df6e75/foo?style=spartan">
1080 1078 <td><a href="/annotate/9d8c40cba617/foo?style=spartan">9d8c40cba617</a></td>
1081 1079 <a href="/annotate/43c799df6e75/foo?style=spartan#l1">
1082 1080 <a href="/annotate/43c799df6e75/foo?style=spartan#l1">
1083 1081 <a href="/diff/43c799df6e75/foo?style=spartan">diff</a>
1084 1082 <a href="/rev/43c799df6e75?style=spartan">changeset</a>
1085 1083 <a href="/annotate/a7c1559b7bba/foo?style=spartan#l2">
1086 1084 <a href="/annotate/a7c1559b7bba/foo?style=spartan#l2">
1087 1085 <a href="/annotate/43c799df6e75/foo?style=spartan">0</a></div>
1088 1086 <a href="/diff/a7c1559b7bba/foo?style=spartan">diff</a>
1089 1087 <a href="/rev/a7c1559b7bba?style=spartan">changeset</a>
1090 1088
1091 1089 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'diff/xyzzy/foo?style=spartan' | egrep $REVLINKS
1092 1090 <a href="/log/xyzzy?style=spartan">changelog</a>
1093 1091 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1094 1092 <a href="/graph/xyzzy?style=spartan">graph</a>
1095 1093 <a href="/rev/xyzzy?style=spartan">changeset</a>
1096 1094 <a href="/file/xyzzy/foo?style=spartan">file</a>
1097 1095 <a href="/log/xyzzy/foo?style=spartan">revisions</a>
1098 1096 <a href="/annotate/xyzzy/foo?style=spartan">annotate</a>
1099 1097 <a href="/raw-diff/xyzzy/foo">raw</a>
1100 1098 <td class="revision"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
1101 1099 <td class="parent"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
1102 1100 <td class="child"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
1103 1101
1104 1102 Done
1105 1103
1106 1104 $ cat errors.log
1107 1105 $ "$TESTDIR/killdaemons.py" $DAEMON_PIDS
1108 1106 $ cd ..
@@ -1,908 +1,912 b''
1 1 #require serve
2 2
3 3 Some tests for hgweb. Tests static files, plain files and different 404's.
4 4
5 5 $ hg init test
6 6 $ cd test
7 7 $ mkdir da
8 8 $ echo foo > da/foo
9 9 $ echo foo > foo
10 10 $ hg ci -Ambase
11 11 adding da/foo
12 12 adding foo
13 13 $ hg bookmark -r0 '@'
14 14 $ hg bookmark -r0 'a b c'
15 15 $ hg bookmark -r0 'd/e/f'
16 16 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
17 17 $ cat hg.pid >> $DAEMON_PIDS
18 18
19 19 manifest
20 20
21 21 $ (get-with-headers.py localhost:$HGPORT 'file/tip/?style=raw')
22 22 200 Script output follows
23 23
24 24
25 25 drwxr-xr-x da
26 26 -rw-r--r-- 4 foo
27 27
28 28
29 29 $ (get-with-headers.py localhost:$HGPORT 'file/tip/da?style=raw')
30 30 200 Script output follows
31 31
32 32
33 33 -rw-r--r-- 4 foo
34 34
35 35
36 36
37 37 plain file
38 38
39 39 $ get-with-headers.py localhost:$HGPORT 'file/tip/foo?style=raw'
40 40 200 Script output follows
41 41
42 42 foo
43 43
44 44 should give a 404 - static file that does not exist
45 45
46 46 $ get-with-headers.py localhost:$HGPORT 'static/bogus'
47 47 404 Not Found
48 48
49 49 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
50 50 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
51 51 <head>
52 52 <link rel="icon" href="/static/hgicon.png" type="image/png" />
53 53 <meta name="robots" content="index, nofollow" />
54 54 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
55 55 <script type="text/javascript" src="/static/mercurial.js"></script>
56 56
57 57 <title>test: error</title>
58 58 </head>
59 59 <body>
60 60
61 61 <div class="container">
62 62 <div class="menu">
63 63 <div class="logo">
64 64 <a href="https://mercurial-scm.org/">
65 65 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
66 66 </div>
67 67 <ul>
68 68 <li><a href="/shortlog">log</a></li>
69 69 <li><a href="/graph">graph</a></li>
70 70 <li><a href="/tags">tags</a></li>
71 71 <li><a href="/bookmarks">bookmarks</a></li>
72 72 <li><a href="/branches">branches</a></li>
73 73 </ul>
74 74 <ul>
75 75 <li><a href="/help">help</a></li>
76 76 </ul>
77 77 </div>
78 78
79 79 <div class="main">
80 80
81 81 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
82 82 <h3>error</h3>
83 83
84 84
85 85 <form class="search" action="/log">
86 86
87 87 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
88 88 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
89 89 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
90 90 </form>
91 91
92 92 <div class="description">
93 93 <p>
94 94 An error occurred while processing your request:
95 95 </p>
96 96 <p>
97 97 Not Found
98 98 </p>
99 99 </div>
100 100 </div>
101 101 </div>
102 102
103 103
104 104
105 105 </body>
106 106 </html>
107 107
108 108 [1]
109 109
110 110 should give a 404 - bad revision
111 111
112 112 $ get-with-headers.py localhost:$HGPORT 'file/spam/foo?style=raw'
113 113 404 Not Found
114 114
115 115
116 116 error: revision not found: spam
117 117 [1]
118 118
119 119 should give a 400 - bad command
120 120
121 121 $ get-with-headers.py localhost:$HGPORT 'file/tip/foo?cmd=spam&style=raw'
122 122 400* (glob)
123 123
124 124
125 125 error: no such method: spam
126 126 [1]
127 127
128 128 $ get-with-headers.py --headeronly localhost:$HGPORT '?cmd=spam'
129 129 400 no such method: spam
130 130 [1]
131 131
132 132 should give a 400 - bad command as a part of url path (issue4071)
133 133
134 134 $ get-with-headers.py --headeronly localhost:$HGPORT 'spam'
135 135 400 no such method: spam
136 136 [1]
137 137
138 138 $ get-with-headers.py --headeronly localhost:$HGPORT 'raw-spam'
139 139 400 no such method: spam
140 140 [1]
141 141
142 142 $ get-with-headers.py --headeronly localhost:$HGPORT 'spam/tip/foo'
143 143 400 no such method: spam
144 144 [1]
145 145
146 146 should give a 404 - file does not exist
147 147
148 148 $ get-with-headers.py localhost:$HGPORT 'file/tip/bork?style=raw'
149 149 404 Not Found
150 150
151 151
152 152 error: bork@2ef0ac749a14: not found in manifest
153 153 [1]
154 154 $ get-with-headers.py localhost:$HGPORT 'file/tip/bork'
155 155 404 Not Found
156 156
157 157 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
158 158 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
159 159 <head>
160 160 <link rel="icon" href="/static/hgicon.png" type="image/png" />
161 161 <meta name="robots" content="index, nofollow" />
162 162 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
163 163 <script type="text/javascript" src="/static/mercurial.js"></script>
164 164
165 165 <title>test: error</title>
166 166 </head>
167 167 <body>
168 168
169 169 <div class="container">
170 170 <div class="menu">
171 171 <div class="logo">
172 172 <a href="https://mercurial-scm.org/">
173 173 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
174 174 </div>
175 175 <ul>
176 176 <li><a href="/shortlog">log</a></li>
177 177 <li><a href="/graph">graph</a></li>
178 178 <li><a href="/tags">tags</a></li>
179 179 <li><a href="/bookmarks">bookmarks</a></li>
180 180 <li><a href="/branches">branches</a></li>
181 181 </ul>
182 182 <ul>
183 183 <li><a href="/help">help</a></li>
184 184 </ul>
185 185 </div>
186 186
187 187 <div class="main">
188 188
189 189 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
190 190 <h3>error</h3>
191 191
192 192
193 193 <form class="search" action="/log">
194 194
195 195 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
196 196 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
197 197 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
198 198 </form>
199 199
200 200 <div class="description">
201 201 <p>
202 202 An error occurred while processing your request:
203 203 </p>
204 204 <p>
205 205 bork@2ef0ac749a14: not found in manifest
206 206 </p>
207 207 </div>
208 208 </div>
209 209 </div>
210 210
211 211
212 212
213 213 </body>
214 214 </html>
215 215
216 216 [1]
217 217 $ get-with-headers.py localhost:$HGPORT 'diff/tip/bork?style=raw'
218 218 404 Not Found
219 219
220 220
221 221 error: bork@2ef0ac749a14: not found in manifest
222 222 [1]
223 223
224 224 try bad style
225 225
226 226 $ (get-with-headers.py localhost:$HGPORT 'file/tip/?style=foobar')
227 227 200 Script output follows
228 228
229 229 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
230 230 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
231 231 <head>
232 232 <link rel="icon" href="/static/hgicon.png" type="image/png" />
233 233 <meta name="robots" content="index, nofollow" />
234 234 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
235 235 <script type="text/javascript" src="/static/mercurial.js"></script>
236 236
237 237 <title>test: 2ef0ac749a14 /</title>
238 238 </head>
239 239 <body>
240 240
241 241 <div class="container">
242 242 <div class="menu">
243 243 <div class="logo">
244 244 <a href="https://mercurial-scm.org/">
245 245 <img src="/static/hglogo.png" alt="mercurial" /></a>
246 246 </div>
247 247 <ul>
248 248 <li><a href="/shortlog/tip">log</a></li>
249 249 <li><a href="/graph/tip">graph</a></li>
250 250 <li><a href="/tags">tags</a></li>
251 251 <li><a href="/bookmarks">bookmarks</a></li>
252 252 <li><a href="/branches">branches</a></li>
253 253 </ul>
254 254 <ul>
255 255 <li><a href="/rev/tip">changeset</a></li>
256 256 <li class="active">browse</li>
257 257 </ul>
258 258 <ul>
259 259
260 260 </ul>
261 261 <ul>
262 262 <li><a href="/help">help</a></li>
263 263 </ul>
264 264 </div>
265 265
266 266 <div class="main">
267 267 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
268 268 <h3>
269 269 directory / @ 0:<a href="/rev/2ef0ac749a14">2ef0ac749a14</a>
270 270 <span class="phase">draft</span> <span class="branchhead">default</span> <span class="tag">tip</span> <span class="tag">@</span> <span class="tag">a b c</span> <span class="tag">d/e/f</span>
271 271 </h3>
272 272
273 273
274 274 <form class="search" action="/log">
275 275
276 276 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
277 277 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
278 278 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
279 279 </form>
280 280
281 281 <table class="bigtable">
282 282 <thead>
283 283 <tr>
284 284 <th class="name">name</th>
285 285 <th class="size">size</th>
286 286 <th class="permissions">permissions</th>
287 287 </tr>
288 288 </thead>
289 289 <tbody class="stripes2">
290 290
291 291
292 292 <tr class="fileline">
293 293 <td class="name">
294 294 <a href="/file/tip/da">
295 295 <img src="/static/coal-folder.png" alt="dir."/> da/
296 296 </a>
297 297 <a href="/file/tip/da/">
298 298
299 299 </a>
300 300 </td>
301 301 <td class="size"></td>
302 302 <td class="permissions">drwxr-xr-x</td>
303 303 </tr>
304 304
305 305 <tr class="fileline">
306 306 <td class="filename">
307 307 <a href="/file/tip/foo">
308 308 <img src="/static/coal-file.png" alt="file"/> foo
309 309 </a>
310 310 </td>
311 311 <td class="size">4</td>
312 312 <td class="permissions">-rw-r--r--</td>
313 313 </tr>
314 314 </tbody>
315 315 </table>
316 316 </div>
317 317 </div>
318 318
319 319
320 320 </body>
321 321 </html>
322 322
323 323
324 324 stop and restart
325 325
326 326 $ killdaemons.py
327 327 $ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log
328 328 $ cat hg.pid >> $DAEMON_PIDS
329 329
330 330 Test the access/error files are opened in append mode
331 331
332 332 $ $PYTHON -c "print len(open('access.log', 'rb').readlines()), 'log lines written'"
333 333 14 log lines written
334 334
335 335 static file
336 336
337 337 $ get-with-headers.py --twice localhost:$HGPORT 'static/style-gitweb.css' - date etag server
338 338 200 Script output follows
339 339 content-length: 9059
340 340 content-type: text/css
341 341
342 342 body { font-family: sans-serif; font-size: 12px; border:solid #d9d8d1; border-width:1px; margin:10px; background: white; color: black; }
343 343 a { color:#0000cc; }
344 344 a:hover, a:visited, a:active { color:#880000; }
345 345 div.page_header { height:25px; padding:8px; font-size:18px; font-weight:bold; background-color:#d9d8d1; }
346 346 div.page_header a:visited { color:#0000cc; }
347 347 div.page_header a:hover { color:#880000; }
348 348 div.page_nav {
349 349 padding:8px;
350 350 display: flex;
351 351 justify-content: space-between;
352 352 align-items: center;
353 353 }
354 354 div.page_nav a:visited { color:#0000cc; }
355 355 div.extra_nav {
356 356 padding: 8px;
357 357 }
358 358 div.extra_nav a:visited {
359 359 color: #0000cc;
360 360 }
361 361 div.page_path { padding:8px; border:solid #d9d8d1; border-width:0px 0px 1px}
362 362 div.page_footer { padding:4px 8px; background-color: #d9d8d1; }
363 363 div.page_footer_text { float:left; color:#555555; font-style:italic; }
364 364 div.page_body { padding:8px; }
365 365 div.title, a.title {
366 366 display:block; padding:6px 8px;
367 367 font-weight:bold; background-color:#edece6; text-decoration:none; color:#000000;
368 368 }
369 369 a.title:hover { background-color: #d9d8d1; }
370 370 div.title_text { padding:6px 0px; border: solid #d9d8d1; border-width:0px 0px 1px; }
371 371 div.log_body { padding:8px 8px 8px 150px; }
372 372 .age { white-space:nowrap; }
373 373 a.title span.age { position:relative; float:left; width:142px; font-style:italic; }
374 374 div.log_link {
375 375 padding:0px 8px;
376 376 font-size:10px; font-family:sans-serif; font-style:normal;
377 377 position:relative; float:left; width:136px;
378 378 }
379 379 div.list_head { padding:6px 8px 4px; border:solid #d9d8d1; border-width:1px 0px 0px; font-style:italic; }
380 380 a.list { text-decoration:none; color:#000000; }
381 381 a.list:hover { text-decoration:underline; color:#880000; }
382 382 table { padding:8px 4px; }
383 383 th { padding:2px 5px; font-size:12px; text-align:left; }
384 384 .parity0 { background-color:#ffffff; }
385 385 tr.dark, .parity1, pre.sourcelines.stripes > :nth-child(4n+4) { background-color:#f6f6f0; }
386 386 tr.light:hover, .parity0:hover, tr.dark:hover, .parity1:hover,
387 387 pre.sourcelines.stripes > :nth-child(4n+2):hover,
388 388 pre.sourcelines.stripes > :nth-child(4n+4):hover,
389 389 pre.sourcelines.stripes > :nth-child(4n+1):hover + :nth-child(4n+2),
390 390 pre.sourcelines.stripes > :nth-child(4n+3):hover + :nth-child(4n+4) { background-color:#edece6; }
391 391 td { padding:2px 5px; font-size:12px; vertical-align:top; }
392 392 td.closed { background-color: #99f; }
393 393 td.link { padding:2px 5px; font-family:sans-serif; font-size:10px; }
394 394 td.indexlinks { white-space: nowrap; }
395 395 td.indexlinks a {
396 396 padding: 2px 5px; line-height: 10px;
397 397 border: 1px solid;
398 398 color: #ffffff; background-color: #7777bb;
399 399 border-color: #aaaadd #333366 #333366 #aaaadd;
400 400 font-weight: bold; text-align: center; text-decoration: none;
401 401 font-size: 10px;
402 402 }
403 403 td.indexlinks a:hover { background-color: #6666aa; }
404 404 div.pre { font-family:monospace; font-size:12px; white-space:pre; }
405 405
406 406 .search {
407 407 margin-right: 8px;
408 408 }
409 409
410 410 div#hint {
411 411 position: absolute;
412 412 display: none;
413 413 width: 250px;
414 414 padding: 5px;
415 415 background: #ffc;
416 416 border: 1px solid yellow;
417 417 border-radius: 5px;
418 418 }
419 419
420 420 #searchform:hover div#hint { display: block; }
421 421
422 422 tr.thisrev a { color:#999999; text-decoration: none; }
423 423 tr.thisrev pre { color:#009900; }
424 424 td.annotate {
425 425 white-space: nowrap;
426 426 }
427 427 div.annotate-info {
428 428 z-index: 5;
429 429 display: none;
430 430 position: absolute;
431 431 background-color: #FFFFFF;
432 432 border: 1px solid #d9d8d1;
433 433 text-align: left;
434 434 color: #000000;
435 435 padding: 5px;
436 436 }
437 437 div.annotate-info a { color: #0000FF; text-decoration: underline; }
438 438 td.annotate:hover div.annotate-info { display: inline; }
439 439
440 440 #diffopts-form {
441 441 padding-left: 8px;
442 442 display: none;
443 443 }
444 444
445 445 .linenr { color:#999999; text-decoration:none }
446 446 div.rss_logo { float: right; white-space: nowrap; }
447 447 div.rss_logo a {
448 448 padding:3px 6px; line-height:10px;
449 449 border:1px solid; border-color:#fcc7a5 #7d3302 #3e1a01 #ff954e;
450 450 color:#ffffff; background-color:#ff6600;
451 451 font-weight:bold; font-family:sans-serif; font-size:10px;
452 452 text-align:center; text-decoration:none;
453 453 }
454 454 div.rss_logo a:hover { background-color:#ee5500; }
455 455 pre { margin: 0; }
456 456 span.logtags span {
457 457 padding: 0px 4px;
458 458 font-size: 10px;
459 459 font-weight: normal;
460 460 border: 1px solid;
461 461 background-color: #ffaaff;
462 462 border-color: #ffccff #ff00ee #ff00ee #ffccff;
463 463 }
464 464 span.logtags span.phasetag {
465 465 background-color: #dfafff;
466 466 border-color: #e2b8ff #ce48ff #ce48ff #e2b8ff;
467 467 }
468 468 span.logtags span.obsoletetag {
469 469 background-color: #dddddd;
470 470 border-color: #e4e4e4 #a3a3a3 #a3a3a3 #e4e4e4;
471 471 }
472 472 span.logtags span.instabilitytag {
473 473 background-color: #ffb1c0;
474 474 border-color: #ffbbc8 #ff4476 #ff4476 #ffbbc8;
475 475 }
476 476 span.logtags span.tagtag {
477 477 background-color: #ffffaa;
478 478 border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
479 479 }
480 480 span.logtags span.branchtag {
481 481 background-color: #aaffaa;
482 482 border-color: #ccffcc #00cc33 #00cc33 #ccffcc;
483 483 }
484 484 span.logtags span.inbranchtag {
485 485 background-color: #d5dde6;
486 486 border-color: #e3ecf4 #9398f4 #9398f4 #e3ecf4;
487 487 }
488 488 span.logtags span.bookmarktag {
489 489 background-color: #afdffa;
490 490 border-color: #ccecff #46ace6 #46ace6 #ccecff;
491 491 }
492 492 span.difflineplus { color:#008800; }
493 493 span.difflineminus { color:#cc0000; }
494 494 span.difflineat { color:#990099; }
495 495 div.diffblocks { counter-reset: lineno; }
496 496 div.diffblock { counter-increment: lineno; }
497 497 pre.sourcelines { position: relative; counter-reset: lineno; }
498 498 pre.sourcelines > span {
499 499 display: inline-block;
500 500 box-sizing: border-box;
501 501 width: 100%;
502 502 padding: 0 0 0 5em;
503 503 counter-increment: lineno;
504 504 vertical-align: top;
505 505 }
506 506 pre.sourcelines > span:before {
507 507 -moz-user-select: -moz-none;
508 508 -khtml-user-select: none;
509 509 -webkit-user-select: none;
510 510 -ms-user-select: none;
511 511 user-select: none;
512 512 display: inline-block;
513 513 margin-left: -6em;
514 514 width: 4em;
515 515 color: #999;
516 516 text-align: right;
517 517 content: counters(lineno,".");
518 518 float: left;
519 519 }
520 520 pre.sourcelines > a {
521 521 display: inline-block;
522 522 position: absolute;
523 523 left: 0px;
524 524 width: 4em;
525 525 height: 1em;
526 526 }
527 527 tr:target td,
528 528 pre.sourcelines > span:target,
529 529 pre.sourcelines.stripes > span:target {
530 530 background-color: #bfdfff;
531 531 }
532 532
533 533 .description {
534 534 font-family: monospace;
535 535 white-space: pre;
536 536 }
537 537
538 538 /* Followlines */
539 539 tbody.sourcelines > tr.followlines-selected,
540 540 pre.sourcelines > span.followlines-selected {
541 541 background-color: #99C7E9 !important;
542 542 }
543 543
544 544 div#followlines {
545 545 background-color: #FFF;
546 546 border: 1px solid #d9d8d1;
547 547 padding: 5px;
548 548 position: fixed;
549 549 }
550 550
551 551 div.followlines-cancel {
552 552 text-align: right;
553 553 }
554 554
555 555 div.followlines-cancel > button {
556 556 line-height: 80%;
557 557 padding: 0;
558 558 border: 0;
559 559 border-radius: 2px;
560 560 background-color: inherit;
561 561 font-weight: bold;
562 562 }
563 563
564 564 div.followlines-cancel > button:hover {
565 565 color: #FFFFFF;
566 566 background-color: #CF1F1F;
567 567 }
568 568
569 569 div.followlines-link {
570 570 margin: 2px;
571 571 margin-top: 4px;
572 572 font-family: sans-serif;
573 573 }
574 574
575 575 .btn-followlines {
576 576 position: absolute;
577 577 display: none;
578 578 cursor: pointer;
579 579 box-sizing: content-box;
580 580 font-size: 11px;
581 581 width: 13px;
582 582 height: 13px;
583 583 border-radius: 3px;
584 584 margin: 0px;
585 585 margin-top: -2px;
586 586 padding: 0px;
587 587 background-color: #E5FDE5;
588 588 border: 1px solid #9BC19B;
589 589 font-family: monospace;
590 590 text-align: center;
591 591 line-height: 5px;
592 592 }
593 593
594 594 span.followlines-select .btn-followlines {
595 595 margin-left: -1.6em;
596 596 }
597 597
598 598 .btn-followlines:hover {
599 599 transform: scale(1.1, 1.1);
600 600 }
601 601
602 602 .btn-followlines .followlines-plus {
603 603 color: green;
604 604 }
605 605
606 606 .btn-followlines .followlines-minus {
607 607 color: red;
608 608 }
609 609
610 610 .btn-followlines-end {
611 611 background-color: #ffdcdc;
612 612 }
613 613
614 614 .sourcelines tr:hover .btn-followlines,
615 615 .sourcelines span.followlines-select:hover > .btn-followlines {
616 616 display: inline;
617 617 }
618 618
619 619 .btn-followlines-hidden,
620 620 .sourcelines tr:hover .btn-followlines-hidden {
621 621 display: none;
622 622 }
623 623
624 624 /* Graph */
625 625 div#wrapper {
626 626 position: relative;
627 627 margin: 0;
628 628 padding: 0;
629 629 margin-top: 3px;
630 630 }
631 631
632 632 canvas {
633 633 position: absolute;
634 634 z-index: 5;
635 635 top: -0.9em;
636 636 margin: 0;
637 637 }
638 638
639 639 ul#graphnodes {
640 640 list-style: none inside none;
641 641 padding: 0;
642 642 margin: 0;
643 643 }
644 644
645 645 ul#graphnodes li {
646 646 position: relative;
647 647 height: 37px;
648 648 overflow: visible;
649 649 padding-top: 2px;
650 650 }
651 651
652 652 ul#graphnodes li .fg {
653 653 position: absolute;
654 654 z-index: 10;
655 655 }
656 656
657 657 ul#graphnodes li .info {
658 658 font-size: 100%;
659 659 font-style: italic;
660 660 }
661 661
662 662 /* Comparison */
663 663 .legend {
664 664 padding: 1.5% 0 1.5% 0;
665 665 }
666 666
667 667 .legendinfo {
668 668 border: 1px solid #d9d8d1;
669 669 font-size: 80%;
670 670 text-align: center;
671 671 padding: 0.5%;
672 672 }
673 673
674 674 .equal {
675 675 background-color: #ffffff;
676 676 }
677 677
678 678 .delete {
679 679 background-color: #faa;
680 680 color: #333;
681 681 }
682 682
683 683 .insert {
684 684 background-color: #ffa;
685 685 }
686 686
687 687 .replace {
688 688 background-color: #e8e8e8;
689 689 }
690 690
691 691 .comparison {
692 692 overflow-x: auto;
693 693 }
694 694
695 695 .header th {
696 696 text-align: center;
697 697 }
698 698
699 699 .block {
700 700 border-top: 1px solid #d9d8d1;
701 701 }
702 702
703 703 .scroll-loading {
704 704 -webkit-animation: change_color 1s linear 0s infinite alternate;
705 705 -moz-animation: change_color 1s linear 0s infinite alternate;
706 706 -o-animation: change_color 1s linear 0s infinite alternate;
707 707 animation: change_color 1s linear 0s infinite alternate;
708 708 }
709 709
710 710 @-webkit-keyframes change_color {
711 711 from { background-color: #A0CEFF; } to { }
712 712 }
713 713 @-moz-keyframes change_color {
714 714 from { background-color: #A0CEFF; } to { }
715 715 }
716 716 @-o-keyframes change_color {
717 717 from { background-color: #A0CEFF; } to { }
718 718 }
719 719 @keyframes change_color {
720 720 from { background-color: #A0CEFF; } to { }
721 721 }
722 722
723 723 .scroll-loading-error {
724 724 background-color: #FFCCCC !important;
725 725 }
726 726
727 727 #doc {
728 728 margin: 0 8px;
729 729 }
730 730 304 Not Modified
731 731
732 732
733 733 phase changes are refreshed (issue4061)
734 734
735 735 $ echo bar >> foo
736 736 $ hg ci -msecret --secret
737 737 $ get-with-headers.py localhost:$HGPORT 'log?style=raw'
738 738 200 Script output follows
739 739
740 740
741 741 # HG changelog
742 742 # Node ID 2ef0ac749a14e4f57a5a822464a0902c6f7f448f
743 743
744 744 changeset: 2ef0ac749a14e4f57a5a822464a0902c6f7f448f
745 745 revision: 0
746 746 user: test
747 747 date: Thu, 01 Jan 1970 00:00:00 +0000
748 748 summary: base
749 749 branch: default
750 750 tag: tip
751 751 bookmark: @
752 752 bookmark: a b c
753 753 bookmark: d/e/f
754 754
755 755
756 756 $ hg phase --draft tip
757 757 $ get-with-headers.py localhost:$HGPORT 'log?style=raw'
758 758 200 Script output follows
759 759
760 760
761 761 # HG changelog
762 762 # Node ID a084749e708a9c4c0a5b652a2a446322ce290e04
763 763
764 764 changeset: a084749e708a9c4c0a5b652a2a446322ce290e04
765 765 revision: 1
766 766 user: test
767 767 date: Thu, 01 Jan 1970 00:00:00 +0000
768 768 summary: secret
769 769 branch: default
770 770 tag: tip
771 771
772 772 changeset: 2ef0ac749a14e4f57a5a822464a0902c6f7f448f
773 773 revision: 0
774 774 user: test
775 775 date: Thu, 01 Jan 1970 00:00:00 +0000
776 776 summary: base
777 777 bookmark: @
778 778 bookmark: a b c
779 779 bookmark: d/e/f
780 780
781 781
782 782
783 783 access bookmarks
784 784
785 785 $ get-with-headers.py localhost:$HGPORT 'rev/@?style=paper' | egrep '^200|changeset 0:'
786 786 200 Script output follows
787 787 changeset 0:<a href="/rev/2ef0ac749a14?style=paper">2ef0ac749a14</a>
788 788
789 789 $ get-with-headers.py localhost:$HGPORT 'rev/%40?style=paper' | egrep '^200|changeset 0:'
790 790 200 Script output follows
791 791 changeset 0:<a href="/rev/2ef0ac749a14?style=paper">2ef0ac749a14</a>
792 792
793 793 $ get-with-headers.py localhost:$HGPORT 'rev/a%20b%20c?style=paper' | egrep '^200|changeset 0:'
794 794 200 Script output follows
795 795 changeset 0:<a href="/rev/2ef0ac749a14?style=paper">2ef0ac749a14</a>
796 796
797 797 $ get-with-headers.py localhost:$HGPORT 'rev/d%252Fe%252Ff?style=paper' | egrep '^200|changeset 0:'
798 798 200 Script output follows
799 799 changeset 0:<a href="/rev/2ef0ac749a14?style=paper">2ef0ac749a14</a>
800 800
801 801 no '[up]' entry in file view when in root directory
802 802
803 803 $ get-with-headers.py localhost:$HGPORT 'file/tip?style=paper' | grep -F '[up]'
804 804 [1]
805 805 $ get-with-headers.py localhost:$HGPORT 'file/tip/da?style=paper' | grep -F '[up]'
806 806 <a href="/file/tip/?style=paper">[up]</a>
807 807 $ get-with-headers.py localhost:$HGPORT 'file/tip?style=coal' | grep -F '[up]'
808 808 [1]
809 809 $ get-with-headers.py localhost:$HGPORT 'file/tip/da?style=coal' | grep -F '[up]'
810 810 <a href="/file/tip/?style=coal">[up]</a>
811 811 $ get-with-headers.py localhost:$HGPORT 'file/tip?style=gitweb' | grep -F '[up]'
812 812 [1]
813 813 $ get-with-headers.py localhost:$HGPORT 'file/tip/da?style=gitweb' | grep -F '[up]'
814 814 <a href="/file/tip/?style=gitweb">[up]</a>
815 $ get-with-headers.py localhost:$HGPORT 'file/tip?style=monoblue' | grep -F '[up]'
816 [1]
817 $ get-with-headers.py localhost:$HGPORT 'file/tip/da?style=monoblue' | grep -F '[up]'
818 <a href="/file/tip/?style=monoblue">[up]</a>
815 819
816 820 no style can be loaded from directories other than the specified paths
817 821
818 822 $ mkdir -p x/templates/fallback
819 823 $ cat <<EOF > x/templates/fallback/map
820 824 > default = 'shortlog'
821 825 > shortlog = 'fall back to default\n'
822 826 > mimetype = 'text/plain'
823 827 > EOF
824 828 $ cat <<EOF > x/map
825 829 > default = 'shortlog'
826 830 > shortlog = 'access to outside of templates directory\n'
827 831 > mimetype = 'text/plain'
828 832 > EOF
829 833
830 834 $ killdaemons.py
831 835 $ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log \
832 836 > --config web.style=fallback --config web.templates=x/templates
833 837 $ cat hg.pid >> $DAEMON_PIDS
834 838
835 839 $ get-with-headers.py localhost:$HGPORT "?style=`pwd`/x"
836 840 200 Script output follows
837 841
838 842 fall back to default
839 843
840 844 $ get-with-headers.py localhost:$HGPORT '?style=..'
841 845 200 Script output follows
842 846
843 847 fall back to default
844 848
845 849 $ get-with-headers.py localhost:$HGPORT '?style=./..'
846 850 200 Script output follows
847 851
848 852 fall back to default
849 853
850 854 $ get-with-headers.py localhost:$HGPORT '?style=.../.../'
851 855 200 Script output follows
852 856
853 857 fall back to default
854 858
855 859 errors
856 860
857 861 $ cat errors.log
858 862
859 863 Uncaught exceptions result in a logged error and canned HTTP response
860 864
861 865 $ killdaemons.py
862 866 $ hg serve --config extensions.hgweberror=$TESTDIR/hgweberror.py -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
863 867 $ cat hg.pid >> $DAEMON_PIDS
864 868
865 869 $ get-with-headers.py localhost:$HGPORT 'raiseerror' transfer-encoding content-type
866 870 500 Internal Server Error
867 871 transfer-encoding: chunked
868 872
869 873 Internal Server Error (no-eol)
870 874 [1]
871 875
872 876 $ killdaemons.py
873 877 $ head -1 errors.log
874 878 .* Exception happened during processing request '/raiseerror': (re)
875 879
876 880 Uncaught exception after partial content sent
877 881
878 882 $ hg serve --config extensions.hgweberror=$TESTDIR/hgweberror.py -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
879 883 $ cat hg.pid >> $DAEMON_PIDS
880 884 $ get-with-headers.py localhost:$HGPORT 'raiseerror?partialresponse=1' transfer-encoding content-type
881 885 200 Script output follows
882 886 transfer-encoding: chunked
883 887 content-type: text/plain
884 888
885 889 partial content
886 890 Internal Server Error (no-eol)
887 891
888 892 $ killdaemons.py
889 893
890 894 HTTP 304 works with hgwebdir (issue5844)
891 895
892 896 $ cat > hgweb.conf << EOF
893 897 > [paths]
894 898 > /repo = $TESTTMP/test
895 899 > EOF
896 900
897 901 $ hg serve --web-conf hgweb.conf -p $HGPORT -d --pid-file hg.pid -E error.log
898 902 $ cat hg.pid >> $DAEMON_PIDS
899 903
900 904 $ get-with-headers.py --twice --headeronly localhost:$HGPORT 'repo/static/style.css' - date etag server
901 905 200 Script output follows
902 906 content-length: 2677
903 907 content-type: text/css
904 908 304 Not Modified
905 909
906 910 $ killdaemons.py
907 911
908 912 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now