##// END OF EJS Templates
templates: fix inconsistency in 'help' link
Pradeepkumar Gayam -
r12846:4b334f8c stable
parent child Browse files
Show More
@@ -1,45 +1,48
1 1 {header}
2 2 <title>{repo|escape}: branches</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url}atom-tags" title="Atom feed for {repo|escape}: branches" />
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url}rss-tags" title="RSS feed for {repo|escape}: branches" />
7 7 </head>
8 8 <body>
9 9
10 10 <div class="container">
11 11 <div class="menu">
12 12 <div class="logo">
13 13 <a href="http://mercurial.selenic.com/">
14 14 <img src="{staticurl}hglogo.png" alt="mercurial" /></a>
15 15 </div>
16 16 <ul>
17 17 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
18 18 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
19 19 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
20 20 <li class="active">branches</li>
21 21 </ul>
22 <ul>
23 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
24 </ul>
22 25 </div>
23 26
24 27 <div class="main">
25 28 <h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
26 29 <h3>branches</h3>
27 30
28 31 <form class="search" action="{url}log">
29 32 {sessionvars%hiddenformentry}
30 33 <p><input name="rev" id="search1" type="text" size="30" /></p>
31 34 <div id="hint">find changesets by author, revision,
32 35 files, or words in the commit message</div>
33 36 </form>
34 37
35 38 <table class="bigtable">
36 39 <tr>
37 40 <th>branch</th>
38 41 <th>node</th>
39 42 </tr>
40 43 {entries%branchentry}
41 44 </table>
42 45 </div>
43 46 </div>
44 47
45 48 {footer}
@@ -1,60 +1,57
1 1 {header}
2 2 <title>{repo|escape}: {node|short} {path|escape}</title>
3 3 </head>
4 4 <body>
5 5
6 6 <div class="container">
7 7 <div class="menu">
8 8 <div class="logo">
9 9 <a href="http://mercurial.selenic.com/">
10 10 <img src="{staticurl}hglogo.png" alt="mercurial" /></a>
11 11 </div>
12 12 <ul>
13 13 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
14 14 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
15 15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
16 16 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
17 17 </ul>
18 18 <ul>
19 19 <li><a href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
20 20 <li class="active">browse</li>
21 21 </ul>
22 22 <ul>
23 23 {archives%archiveentry}
24 24 </ul>
25 25 <ul>
26 26 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
27 27 </ul>
28 <ul>
29 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
30 </ul>
31 28 </div>
32 29
33 30 <div class="main">
34 31 <h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
35 32 <h3>directory {path|escape} @ {rev}:{node|short} {tags%changelogtag}</h3>
36 33
37 34 <form class="search" action="{url}log">
38 35 {sessionvars%hiddenformentry}
39 36 <p><input name="rev" id="search1" type="text" size="30" /></p>
40 37 <div id="hint">find changesets by author, revision,
41 38 files, or words in the commit message</div>
42 39 </form>
43 40
44 41 <table class="bigtable">
45 42 <tr>
46 43 <th class="name">name</th>
47 44 <th class="size">size</th>
48 45 <th class="permissions">permissions</th>
49 46 </tr>
50 47 <tr class="fileline parity{upparity}">
51 48 <td class="name"><a href="{url}file/{node|short}{up|urlescape}{sessionvars%urlparameter}">[up]</a></td>
52 49 <td class="size"></td>
53 50 <td class="permissions">drwxr-xr-x</td>
54 51 </tr>
55 52 {dentries%direntry}
56 53 {fentries%fileentry}
57 54 </table>
58 55 </div>
59 56 </div>
60 57 {footer}
@@ -1,26 +1,27
1 1 {header}
2 2 <title>{repo|escape}: branches</title>
3 3 <link rel="alternate" type="application/atom+xml"
4 4 href="{url}atom-branches" title="Atom feed for {repo|escape}: branches">
5 5 <link rel="alternate" type="application/rss+xml"
6 6 href="{url}rss-branches" title="RSS feed for {repo|escape}: branches">
7 7 </head>
8 8 <body>
9 9
10 10 <div class="buttons">
11 11 <a href="{url}log{sessionvars%urlparameter}">changelog</a>
12 12 <a href="{url}shortlog{sessionvars%urlparameter}">shortlog</a>
13 13 <a href="{url}graph{sessionvars%urlparameter}">graph</a>
14 14 <a href="{url}tags{sessionvars%urlparameter}">tags</a>
15 15 <a href="{url}file/{node|short}/{sessionvars%urlparameter}">files</a>
16 <a href="{url}help{sessionvars%urlparameter}">help</a>
16 17 <a type="application/rss+xml" href="{url}rss-branches">rss</a>
17 18 <a type="application/atom+xml" href="{url}atom-branches">atom</a>
18 19 </div>
19 20
20 21 <h2>branches:</h2>
21 22
22 23 <ul id="tagEntries">
23 24 {entries%branchentry}
24 25 </ul>
25 26
26 27 {footer}
@@ -1,140 +1,137
1 1 Test chains of near empty directories, terminating 3 different ways:
2 2 - a1: file at level 4 (deepest)
3 3 - b1: two dirs at level 3
4 4 - e1: file at level 2
5 5
6 6 Set up the repo
7 7
8 8 $ hg init test
9 9 $ cd test
10 10 $ mkdir -p a1/a2/a3/a4
11 11 $ mkdir -p b1/b2/b3/b4
12 12 $ mkdir -p b1/b2/c3/c4
13 13 $ mkdir -p d1/d2/d3/d4
14 14 $ echo foo > a1/a2/a3/a4/foo
15 15 $ echo foo > b1/b2/b3/b4/foo
16 16 $ echo foo > b1/b2/c3/c4/foo
17 17 $ echo foo > d1/d2/d3/d4/foo
18 18 $ echo foo > d1/d2/foo
19 19 $ hg ci -Ama
20 20 adding a1/a2/a3/a4/foo
21 21 adding b1/b2/b3/b4/foo
22 22 adding b1/b2/c3/c4/foo
23 23 adding d1/d2/d3/d4/foo
24 24 adding d1/d2/foo
25 25 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -E errors.log
26 26 $ cat hg.pid >> $DAEMON_PIDS
27 27
28 28 manifest with descending
29 29
30 30 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file'
31 31 200 Script output follows
32 32
33 33 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
34 34 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
35 35 <head>
36 36 <link rel="icon" href="/static/hgicon.png" type="image/png" />
37 37 <meta name="robots" content="index, nofollow" />
38 38 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
39 39
40 40 <title>test: 9087c84a0f5d /</title>
41 41 </head>
42 42 <body>
43 43
44 44 <div class="container">
45 45 <div class="menu">
46 46 <div class="logo">
47 47 <a href="http://mercurial.selenic.com/">
48 48 <img src="/static/hglogo.png" alt="mercurial" /></a>
49 49 </div>
50 50 <ul>
51 51 <li><a href="/shortlog/9087c84a0f5d">log</a></li>
52 52 <li><a href="/graph/9087c84a0f5d">graph</a></li>
53 53 <li><a href="/tags">tags</a></li>
54 54 <li><a href="/branches">branches</a></li>
55 55 </ul>
56 56 <ul>
57 57 <li><a href="/rev/9087c84a0f5d">changeset</a></li>
58 58 <li class="active">browse</li>
59 59 </ul>
60 60 <ul>
61 61
62 62 </ul>
63 63 <ul>
64 64 <li><a href="/help">help</a></li>
65 65 </ul>
66 <ul>
67 <li><a href="/help">help</a></li>
68 </ul>
69 66 </div>
70 67
71 68 <div class="main">
72 69 <h2><a href="/">test</a></h2>
73 70 <h3>directory / @ 0:9087c84a0f5d <span class="tag">tip</span> </h3>
74 71
75 72 <form class="search" action="/log">
76 73
77 74 <p><input name="rev" id="search1" type="text" size="30" /></p>
78 75 <div id="hint">find changesets by author, revision,
79 76 files, or words in the commit message</div>
80 77 </form>
81 78
82 79 <table class="bigtable">
83 80 <tr>
84 81 <th class="name">name</th>
85 82 <th class="size">size</th>
86 83 <th class="permissions">permissions</th>
87 84 </tr>
88 85 <tr class="fileline parity0">
89 86 <td class="name"><a href="/file/9087c84a0f5d/">[up]</a></td>
90 87 <td class="size"></td>
91 88 <td class="permissions">drwxr-xr-x</td>
92 89 </tr>
93 90
94 91 <tr class="fileline parity1">
95 92 <td class="name">
96 93 <a href="/file/9087c84a0f5d/a1">
97 94 <img src="/static/coal-folder.png" alt="dir."/> a1/
98 95 </a>
99 96 <a href="/file/9087c84a0f5d/a1/a2/a3/a4">
100 97 a2/a3/a4
101 98 </a>
102 99 </td>
103 100 <td class="size"></td>
104 101 <td class="permissions">drwxr-xr-x</td>
105 102 </tr>
106 103 <tr class="fileline parity0">
107 104 <td class="name">
108 105 <a href="/file/9087c84a0f5d/b1">
109 106 <img src="/static/coal-folder.png" alt="dir."/> b1/
110 107 </a>
111 108 <a href="/file/9087c84a0f5d/b1/b2">
112 109 b2
113 110 </a>
114 111 </td>
115 112 <td class="size"></td>
116 113 <td class="permissions">drwxr-xr-x</td>
117 114 </tr>
118 115 <tr class="fileline parity1">
119 116 <td class="name">
120 117 <a href="/file/9087c84a0f5d/d1">
121 118 <img src="/static/coal-folder.png" alt="dir."/> d1/
122 119 </a>
123 120 <a href="/file/9087c84a0f5d/d1/d2">
124 121 d2
125 122 </a>
126 123 </td>
127 124 <td class="size"></td>
128 125 <td class="permissions">drwxr-xr-x</td>
129 126 </tr>
130 127
131 128 </table>
132 129 </div>
133 130 </div>
134 131
135 132
136 133 </body>
137 134 </html>
138 135
139 136
140 137 $ cat errors.log
@@ -1,391 +1,388
1 1 Some tests for hgweb in an empty repository
2 2
3 3 $ hg init test
4 4 $ cd test
5 5 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
6 6 $ cat hg.pid >> $DAEMON_PIDS
7 7 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/shortlog')
8 8 200 Script output follows
9 9
10 10 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
11 11 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
12 12 <head>
13 13 <link rel="icon" href="/static/hgicon.png" type="image/png" />
14 14 <meta name="robots" content="index, nofollow" />
15 15 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
16 16
17 17 <title>test: log</title>
18 18 <link rel="alternate" type="application/atom+xml"
19 19 href="/atom-log" title="Atom feed for test" />
20 20 <link rel="alternate" type="application/rss+xml"
21 21 href="/rss-log" title="RSS feed for test" />
22 22 </head>
23 23 <body>
24 24
25 25 <div class="container">
26 26 <div class="menu">
27 27 <div class="logo">
28 28 <a href="http://mercurial.selenic.com/">
29 29 <img src="/static/hglogo.png" alt="mercurial" /></a>
30 30 </div>
31 31 <ul>
32 32 <li class="active">log</li>
33 33 <li><a href="/graph/000000000000">graph</a></li>
34 34 <li><a href="/tags">tags</a></li>
35 35 <li><a href="/branches">branches</a></li>
36 36 </ul>
37 37 <ul>
38 38 <li><a href="/rev/000000000000">changeset</a></li>
39 39 <li><a href="/file/000000000000">browse</a></li>
40 40 </ul>
41 41 <ul>
42 42
43 43 </ul>
44 44 <ul>
45 45 <li><a href="/help">help</a></li>
46 46 </ul>
47 47 </div>
48 48
49 49 <div class="main">
50 50 <h2><a href="/">test</a></h2>
51 51 <h3>log</h3>
52 52
53 53 <form class="search" action="/log">
54 54
55 55 <p><input name="rev" id="search1" type="text" size="30" /></p>
56 56 <div id="hint">find changesets by author, revision,
57 57 files, or words in the commit message</div>
58 58 </form>
59 59
60 60 <div class="navigate">
61 61 <a href="/shortlog/-1?revcount=30">less</a>
62 62 <a href="/shortlog/-1?revcount=120">more</a>
63 63 | rev -1: <a href="/shortlog/000000000000">(0)</a> <a href="/shortlog/tip">tip</a>
64 64 </div>
65 65
66 66 <table class="bigtable">
67 67 <tr>
68 68 <th class="age">age</th>
69 69 <th class="author">author</th>
70 70 <th class="description">description</th>
71 71 </tr>
72 72
73 73 </table>
74 74
75 75 <div class="navigate">
76 76 <a href="/shortlog/-1?revcount=30">less</a>
77 77 <a href="/shortlog/-1?revcount=120">more</a>
78 78 | rev -1: <a href="/shortlog/000000000000">(0)</a> <a href="/shortlog/tip">tip</a>
79 79 </div>
80 80
81 81 </div>
82 82 </div>
83 83
84 84
85 85
86 86 </body>
87 87 </html>
88 88
89 89 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/log')
90 90 200 Script output follows
91 91
92 92 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
93 93 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
94 94 <head>
95 95 <link rel="icon" href="/static/hgicon.png" type="image/png" />
96 96 <meta name="robots" content="index, nofollow" />
97 97 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
98 98
99 99 <title>test: log</title>
100 100 <link rel="alternate" type="application/atom+xml"
101 101 href="/atom-log" title="Atom feed for test" />
102 102 <link rel="alternate" type="application/rss+xml"
103 103 href="/rss-log" title="RSS feed for test" />
104 104 </head>
105 105 <body>
106 106
107 107 <div class="container">
108 108 <div class="menu">
109 109 <div class="logo">
110 110 <a href="http://mercurial.selenic.com/">
111 111 <img src="/static/hglogo.png" alt="mercurial" /></a>
112 112 </div>
113 113 <ul>
114 114 <li class="active">log</li>
115 115 <li><a href="/graph/000000000000">graph</a></li>
116 116 <li><a href="/tags">tags</a></li>
117 117 <li><a href="/branches">branches</a></li>
118 118 </ul>
119 119 <ul>
120 120 <li><a href="/rev/000000000000">changeset</a></li>
121 121 <li><a href="/file/000000000000">browse</a></li>
122 122 </ul>
123 123 <ul>
124 124
125 125 </ul>
126 126 <ul>
127 127 <li><a href="/help">help</a></li>
128 128 </ul>
129 129 </div>
130 130
131 131 <div class="main">
132 132 <h2><a href="/">test</a></h2>
133 133 <h3>log</h3>
134 134
135 135 <form class="search" action="/log">
136 136
137 137 <p><input name="rev" id="search1" type="text" size="30" /></p>
138 138 <div id="hint">find changesets by author, revision,
139 139 files, or words in the commit message</div>
140 140 </form>
141 141
142 142 <div class="navigate">
143 143 <a href="/shortlog/-1?revcount=5">less</a>
144 144 <a href="/shortlog/-1?revcount=20">more</a>
145 145 | rev -1: <a href="/shortlog/000000000000">(0)</a> <a href="/shortlog/tip">tip</a>
146 146 </div>
147 147
148 148 <table class="bigtable">
149 149 <tr>
150 150 <th class="age">age</th>
151 151 <th class="author">author</th>
152 152 <th class="description">description</th>
153 153 </tr>
154 154
155 155 </table>
156 156
157 157 <div class="navigate">
158 158 <a href="/shortlog/-1?revcount=5">less</a>
159 159 <a href="/shortlog/-1?revcount=20">more</a>
160 160 | rev -1: <a href="/shortlog/000000000000">(0)</a> <a href="/shortlog/tip">tip</a>
161 161 </div>
162 162
163 163 </div>
164 164 </div>
165 165
166 166
167 167
168 168 </body>
169 169 </html>
170 170
171 171 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/graph')
172 172 200 Script output follows
173 173
174 174 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
175 175 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
176 176 <head>
177 177 <link rel="icon" href="/static/hgicon.png" type="image/png" />
178 178 <meta name="robots" content="index, nofollow" />
179 179 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
180 180
181 181 <title>test: revision graph</title>
182 182 <link rel="alternate" type="application/atom+xml"
183 183 href="/atom-log" title="Atom feed for test: log" />
184 184 <link rel="alternate" type="application/rss+xml"
185 185 href="/rss-log" title="RSS feed for test: log" />
186 186 <!--[if IE]><script type="text/javascript" src="/static/excanvas.js"></script><![endif]-->
187 187 </head>
188 188 <body>
189 189
190 190 <div class="container">
191 191 <div class="menu">
192 192 <div class="logo">
193 193 <a href="http://mercurial.selenic.com/">
194 194 <img src="/static/hglogo.png" alt="mercurial" /></a>
195 195 </div>
196 196 <ul>
197 197 <li><a href="/shortlog/000000000000">log</a></li>
198 198 <li class="active">graph</li>
199 199 <li><a href="/tags">tags</a></li>
200 200 <li><a href="/branches">branches</a></li>
201 201 </ul>
202 202 <ul>
203 203 <li><a href="/rev/000000000000">changeset</a></li>
204 204 <li><a href="/file/000000000000">browse</a></li>
205 205 </ul>
206 206 <ul>
207 207 <li><a href="/help">help</a></li>
208 208 </ul>
209 209 </div>
210 210
211 211 <div class="main">
212 212 <h2><a href="/">test</a></h2>
213 213 <h3>graph</h3>
214 214
215 215 <form class="search" action="/log">
216 216
217 217 <p><input name="rev" id="search1" type="text" size="30" /></p>
218 218 <div id="hint">find changesets by author, revision,
219 219 files, or words in the commit message</div>
220 220 </form>
221 221
222 222 <div class="navigate">
223 223 <a href="/graph/-1?revcount=30">less</a>
224 224 <a href="/graph/-1?revcount=120">more</a>
225 225 | rev -1: <a href="/graph/000000000000">(0)</a> <a href="/graph/tip">tip</a>
226 226 </div>
227 227
228 228 <noscript><p>The revision graph only works with JavaScript-enabled browsers.</p></noscript>
229 229
230 230 <div id="wrapper">
231 231 <ul id="nodebgs"></ul>
232 232 <canvas id="graph" width="224" height="12"></canvas>
233 233 <ul id="graphnodes"></ul>
234 234 </div>
235 235
236 236 <script type="text/javascript" src="/static/graph.js"></script>
237 237 <script type="text/javascript">
238 238 <!-- hide script content
239 239
240 240 var data = [];
241 241 var graph = new Graph();
242 242 graph.scale(39);
243 243
244 244 graph.edge = function(x0, y0, x1, y1, color) {
245 245
246 246 this.setColor(color, 0.0, 0.65);
247 247 this.ctx.beginPath();
248 248 this.ctx.moveTo(x0, y0);
249 249 this.ctx.lineTo(x1, y1);
250 250 this.ctx.stroke();
251 251
252 252 }
253 253
254 254 var revlink = '<li style="_STYLE"><span class="desc">';
255 255 revlink += '<a href="/rev/_NODEID" title="_NODEID">_DESC</a>';
256 256 revlink += '</span>_TAGS<span class="info">_DATE, by _USER</span></li>';
257 257
258 258 graph.vertex = function(x, y, color, parity, cur) {
259 259
260 260 this.ctx.beginPath();
261 261 color = this.setColor(color, 0.25, 0.75);
262 262 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
263 263 this.ctx.fill();
264 264
265 265 var bg = '<li class="bg parity' + parity + '"></li>';
266 266 var left = (this.columns + 1) * this.bg_height;
267 267 var nstyle = 'padding-left: ' + left + 'px;';
268 268 var item = revlink.replace(/_STYLE/, nstyle);
269 269 item = item.replace(/_PARITY/, 'parity' + parity);
270 270 item = item.replace(/_NODEID/, cur[0]);
271 271 item = item.replace(/_NODEID/, cur[0]);
272 272 item = item.replace(/_DESC/, cur[3]);
273 273 item = item.replace(/_USER/, cur[4]);
274 274 item = item.replace(/_DATE/, cur[5]);
275 275
276 276 var tagspan = '';
277 277 if (cur[7].length || (cur[6][0] != 'default' || cur[6][1])) {
278 278 tagspan = '<span class="logtags">';
279 279 if (cur[6][1]) {
280 280 tagspan += '<span class="branchhead" title="' + cur[6][0] + '">';
281 281 tagspan += cur[6][0] + '</span> ';
282 282 } else if (!cur[6][1] && cur[6][0] != 'default') {
283 283 tagspan += '<span class="branchname" title="' + cur[6][0] + '">';
284 284 tagspan += cur[6][0] + '</span> ';
285 285 }
286 286 if (cur[7].length) {
287 287 for (var t in cur[7]) {
288 288 var tag = cur[7][t];
289 289 tagspan += '<span class="tag">' + tag + '</span> ';
290 290 }
291 291 }
292 292 tagspan += '</span>';
293 293 }
294 294
295 295 item = item.replace(/_TAGS/, tagspan);
296 296 return [bg, item];
297 297
298 298 }
299 299
300 300 graph.render(data);
301 301
302 302 // stop hiding script -->
303 303 </script>
304 304
305 305 <div class="navigate">
306 306 <a href="/graph/-1?revcount=30">less</a>
307 307 <a href="/graph/-1?revcount=120">more</a>
308 308 | rev -1: <a href="/graph/000000000000">(0)</a> <a href="/graph/tip">tip</a>
309 309 </div>
310 310
311 311 </div>
312 312 </div>
313 313
314 314
315 315
316 316 </body>
317 317 </html>
318 318
319 319 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file')
320 320 200 Script output follows
321 321
322 322 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
323 323 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
324 324 <head>
325 325 <link rel="icon" href="/static/hgicon.png" type="image/png" />
326 326 <meta name="robots" content="index, nofollow" />
327 327 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
328 328
329 329 <title>test: 000000000000 /</title>
330 330 </head>
331 331 <body>
332 332
333 333 <div class="container">
334 334 <div class="menu">
335 335 <div class="logo">
336 336 <a href="http://mercurial.selenic.com/">
337 337 <img src="/static/hglogo.png" alt="mercurial" /></a>
338 338 </div>
339 339 <ul>
340 340 <li><a href="/shortlog/000000000000">log</a></li>
341 341 <li><a href="/graph/000000000000">graph</a></li>
342 342 <li><a href="/tags">tags</a></li>
343 343 <li><a href="/branches">branches</a></li>
344 344 </ul>
345 345 <ul>
346 346 <li><a href="/rev/000000000000">changeset</a></li>
347 347 <li class="active">browse</li>
348 348 </ul>
349 349 <ul>
350 350
351 351 </ul>
352 352 <ul>
353 353 <li><a href="/help">help</a></li>
354 354 </ul>
355 <ul>
356 <li><a href="/help">help</a></li>
357 </ul>
358 355 </div>
359 356
360 357 <div class="main">
361 358 <h2><a href="/">test</a></h2>
362 359 <h3>directory / @ -1:000000000000 <span class="tag">tip</span> </h3>
363 360
364 361 <form class="search" action="/log">
365 362
366 363 <p><input name="rev" id="search1" type="text" size="30" /></p>
367 364 <div id="hint">find changesets by author, revision,
368 365 files, or words in the commit message</div>
369 366 </form>
370 367
371 368 <table class="bigtable">
372 369 <tr>
373 370 <th class="name">name</th>
374 371 <th class="size">size</th>
375 372 <th class="permissions">permissions</th>
376 373 </tr>
377 374 <tr class="fileline parity0">
378 375 <td class="name"><a href="/file/000000000000/">[up]</a></td>
379 376 <td class="size"></td>
380 377 <td class="permissions">drwxr-xr-x</td>
381 378 </tr>
382 379
383 380
384 381 </table>
385 382 </div>
386 383 </div>
387 384
388 385
389 386 </body>
390 387 </html>
391 388
@@ -1,433 +1,430
1 1 Some tests for hgweb. Tests static files, plain files and different 404's.
2 2
3 3 $ hg init test
4 4 $ cd test
5 5 $ mkdir da
6 6 $ echo foo > da/foo
7 7 $ echo foo > foo
8 8 $ hg ci -Ambase
9 9 adding da/foo
10 10 adding foo
11 11 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
12 12 $ cat hg.pid >> $DAEMON_PIDS
13 13
14 14 manifest
15 15
16 16 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/?style=raw')
17 17 200 Script output follows
18 18
19 19
20 20 drwxr-xr-x da
21 21 -rw-r--r-- 4 foo
22 22
23 23
24 24 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/da?style=raw')
25 25 200 Script output follows
26 26
27 27
28 28 -rw-r--r-- 4 foo
29 29
30 30
31 31
32 32 plain file
33 33
34 34 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/foo?style=raw'
35 35 200 Script output follows
36 36
37 37 foo
38 38
39 39 should give a 404 - static file that does not exist
40 40
41 41 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/static/bogus'
42 42 404 Not Found
43 43
44 44 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
45 45 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
46 46 <head>
47 47 <link rel="icon" href="/static/hgicon.png" type="image/png" />
48 48 <meta name="robots" content="index, nofollow" />
49 49 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
50 50
51 51 <title>test: error</title>
52 52 </head>
53 53 <body>
54 54
55 55 <div class="container">
56 56 <div class="menu">
57 57 <div class="logo">
58 58 <a href="http://mercurial.selenic.com/">
59 59 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
60 60 </div>
61 61 <ul>
62 62 <li><a href="/shortlog">log</a></li>
63 63 <li><a href="/graph">graph</a></li>
64 64 <li><a href="/tags">tags</a></li>
65 65 <li><a href="/branches">branches</a></li>
66 66 <li><a href="/help">help</a></li>
67 67 </ul>
68 68 </div>
69 69
70 70 <div class="main">
71 71
72 72 <h2><a href="/">test</a></h2>
73 73 <h3>error</h3>
74 74
75 75 <form class="search" action="/log">
76 76
77 77 <p><input name="rev" id="search1" type="text" size="30"></p>
78 78 <div id="hint">find changesets by author, revision,
79 79 files, or words in the commit message</div>
80 80 </form>
81 81
82 82 <div class="description">
83 83 <p>
84 84 An error occurred while processing your request:
85 85 </p>
86 86 <p>
87 87 Not Found
88 88 </p>
89 89 </div>
90 90 </div>
91 91 </div>
92 92
93 93
94 94
95 95 </body>
96 96 </html>
97 97
98 98 [1]
99 99
100 100 should give a 404 - bad revision
101 101
102 102 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/spam/foo?style=raw'
103 103 404 Not Found
104 104
105 105
106 106 error: revision not found: spam
107 107 [1]
108 108
109 109 should give a 400 - bad command
110 110
111 111 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/foo?cmd=spam&style=raw'
112 112 400* (glob)
113 113
114 114
115 115 error: no such method: spam
116 116 [1]
117 117
118 118 should give a 404 - file does not exist
119 119
120 120 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/bork?style=raw'
121 121 404 Not Found
122 122
123 123
124 124 error: bork@2ef0ac749a14: not found in manifest
125 125 [1]
126 126 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/bork'
127 127 404 Not Found
128 128
129 129 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
130 130 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
131 131 <head>
132 132 <link rel="icon" href="/static/hgicon.png" type="image/png" />
133 133 <meta name="robots" content="index, nofollow" />
134 134 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
135 135
136 136 <title>test: error</title>
137 137 </head>
138 138 <body>
139 139
140 140 <div class="container">
141 141 <div class="menu">
142 142 <div class="logo">
143 143 <a href="http://mercurial.selenic.com/">
144 144 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
145 145 </div>
146 146 <ul>
147 147 <li><a href="/shortlog">log</a></li>
148 148 <li><a href="/graph">graph</a></li>
149 149 <li><a href="/tags">tags</a></li>
150 150 <li><a href="/branches">branches</a></li>
151 151 <li><a href="/help">help</a></li>
152 152 </ul>
153 153 </div>
154 154
155 155 <div class="main">
156 156
157 157 <h2><a href="/">test</a></h2>
158 158 <h3>error</h3>
159 159
160 160 <form class="search" action="/log">
161 161
162 162 <p><input name="rev" id="search1" type="text" size="30"></p>
163 163 <div id="hint">find changesets by author, revision,
164 164 files, or words in the commit message</div>
165 165 </form>
166 166
167 167 <div class="description">
168 168 <p>
169 169 An error occurred while processing your request:
170 170 </p>
171 171 <p>
172 172 bork@2ef0ac749a14: not found in manifest
173 173 </p>
174 174 </div>
175 175 </div>
176 176 </div>
177 177
178 178
179 179
180 180 </body>
181 181 </html>
182 182
183 183 [1]
184 184 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/diff/tip/bork?style=raw'
185 185 404 Not Found
186 186
187 187
188 188 error: bork@2ef0ac749a14: not found in manifest
189 189 [1]
190 190
191 191 try bad style
192 192
193 193 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/?style=foobar')
194 194 200 Script output follows
195 195
196 196 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
197 197 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
198 198 <head>
199 199 <link rel="icon" href="/static/hgicon.png" type="image/png" />
200 200 <meta name="robots" content="index, nofollow" />
201 201 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
202 202
203 203 <title>test: 2ef0ac749a14 /</title>
204 204 </head>
205 205 <body>
206 206
207 207 <div class="container">
208 208 <div class="menu">
209 209 <div class="logo">
210 210 <a href="http://mercurial.selenic.com/">
211 211 <img src="/static/hglogo.png" alt="mercurial" /></a>
212 212 </div>
213 213 <ul>
214 214 <li><a href="/shortlog/2ef0ac749a14">log</a></li>
215 215 <li><a href="/graph/2ef0ac749a14">graph</a></li>
216 216 <li><a href="/tags">tags</a></li>
217 217 <li><a href="/branches">branches</a></li>
218 218 </ul>
219 219 <ul>
220 220 <li><a href="/rev/2ef0ac749a14">changeset</a></li>
221 221 <li class="active">browse</li>
222 222 </ul>
223 223 <ul>
224 224
225 225 </ul>
226 226 <ul>
227 227 <li><a href="/help">help</a></li>
228 228 </ul>
229 <ul>
230 <li><a href="/help">help</a></li>
231 </ul>
232 229 </div>
233 230
234 231 <div class="main">
235 232 <h2><a href="/">test</a></h2>
236 233 <h3>directory / @ 0:2ef0ac749a14 <span class="tag">tip</span> </h3>
237 234
238 235 <form class="search" action="/log">
239 236
240 237 <p><input name="rev" id="search1" type="text" size="30" /></p>
241 238 <div id="hint">find changesets by author, revision,
242 239 files, or words in the commit message</div>
243 240 </form>
244 241
245 242 <table class="bigtable">
246 243 <tr>
247 244 <th class="name">name</th>
248 245 <th class="size">size</th>
249 246 <th class="permissions">permissions</th>
250 247 </tr>
251 248 <tr class="fileline parity0">
252 249 <td class="name"><a href="/file/2ef0ac749a14/">[up]</a></td>
253 250 <td class="size"></td>
254 251 <td class="permissions">drwxr-xr-x</td>
255 252 </tr>
256 253
257 254 <tr class="fileline parity1">
258 255 <td class="name">
259 256 <a href="/file/2ef0ac749a14/da">
260 257 <img src="/static/coal-folder.png" alt="dir."/> da/
261 258 </a>
262 259 <a href="/file/2ef0ac749a14/da/">
263 260
264 261 </a>
265 262 </td>
266 263 <td class="size"></td>
267 264 <td class="permissions">drwxr-xr-x</td>
268 265 </tr>
269 266
270 267 <tr class="fileline parity0">
271 268 <td class="filename">
272 269 <a href="/file/2ef0ac749a14/foo">
273 270 <img src="/static/coal-file.png" alt="file"/> foo
274 271 </a>
275 272 </td>
276 273 <td class="size">4</td>
277 274 <td class="permissions">-rw-r--r--</td>
278 275 </tr>
279 276 </table>
280 277 </div>
281 278 </div>
282 279
283 280
284 281 </body>
285 282 </html>
286 283
287 284
288 285 stop and restart
289 286
290 287 $ "$TESTDIR/killdaemons.py"
291 288 $ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log
292 289 $ cat hg.pid >> $DAEMON_PIDS
293 290
294 291 Test the access/error files are opened in append mode
295 292
296 293 $ python -c "print len(file('access.log').readlines()), 'log lines written'"
297 294 10 log lines written
298 295
299 296 static file
300 297
301 298 $ "$TESTDIR/get-with-headers.py" --twice localhost:$HGPORT '/static/style-gitweb.css'
302 299 200 Script output follows
303 300
304 301 body { font-family: sans-serif; font-size: 12px; margin:0px; border:solid #d9d8d1; border-width:1px; margin:10px; }
305 302 a { color:#0000cc; }
306 303 a:hover, a:visited, a:active { color:#880000; }
307 304 div.page_header { height:25px; padding:8px; font-size:18px; font-weight:bold; background-color:#d9d8d1; }
308 305 div.page_header a:visited { color:#0000cc; }
309 306 div.page_header a:hover { color:#880000; }
310 307 div.page_nav { padding:8px; }
311 308 div.page_nav a:visited { color:#0000cc; }
312 309 div.page_path { padding:8px; border:solid #d9d8d1; border-width:0px 0px 1px}
313 310 div.page_footer { padding:4px 8px; background-color: #d9d8d1; }
314 311 div.page_footer_text { float:left; color:#555555; font-style:italic; }
315 312 div.page_body { padding:8px; }
316 313 div.title, a.title {
317 314 display:block; padding:6px 8px;
318 315 font-weight:bold; background-color:#edece6; text-decoration:none; color:#000000;
319 316 }
320 317 a.title:hover { background-color: #d9d8d1; }
321 318 div.title_text { padding:6px 0px; border: solid #d9d8d1; border-width:0px 0px 1px; }
322 319 div.log_body { padding:8px 8px 8px 150px; }
323 320 .age { white-space:nowrap; }
324 321 span.age { position:relative; float:left; width:142px; font-style:italic; }
325 322 div.log_link {
326 323 padding:0px 8px;
327 324 font-size:10px; font-family:sans-serif; font-style:normal;
328 325 position:relative; float:left; width:136px;
329 326 }
330 327 div.list_head { padding:6px 8px 4px; border:solid #d9d8d1; border-width:1px 0px 0px; font-style:italic; }
331 328 a.list { text-decoration:none; color:#000000; }
332 329 a.list:hover { text-decoration:underline; color:#880000; }
333 330 table { padding:8px 4px; }
334 331 th { padding:2px 5px; font-size:12px; text-align:left; }
335 332 tr.light:hover, .parity0:hover { background-color:#edece6; }
336 333 tr.dark, .parity1 { background-color:#f6f6f0; }
337 334 tr.dark:hover, .parity1:hover { background-color:#edece6; }
338 335 td { padding:2px 5px; font-size:12px; vertical-align:top; }
339 336 td.closed { background-color: #99f; }
340 337 td.link { padding:2px 5px; font-family:sans-serif; font-size:10px; }
341 338 td.indexlinks { white-space: nowrap; }
342 339 td.indexlinks a {
343 340 padding: 2px 5px; line-height: 10px;
344 341 border: 1px solid;
345 342 color: #ffffff; background-color: #7777bb;
346 343 border-color: #aaaadd #333366 #333366 #aaaadd;
347 344 font-weight: bold; text-align: center; text-decoration: none;
348 345 font-size: 10px;
349 346 }
350 347 td.indexlinks a:hover { background-color: #6666aa; }
351 348 div.pre { font-family:monospace; font-size:12px; white-space:pre; }
352 349 div.diff_info { font-family:monospace; color:#000099; background-color:#edece6; font-style:italic; }
353 350 div.index_include { border:solid #d9d8d1; border-width:0px 0px 1px; padding:12px 8px; }
354 351 div.search { margin:4px 8px; position:absolute; top:56px; right:12px }
355 352 .linenr { color:#999999; text-decoration:none }
356 353 div.rss_logo { float: right; white-space: nowrap; }
357 354 div.rss_logo a {
358 355 padding:3px 6px; line-height:10px;
359 356 border:1px solid; border-color:#fcc7a5 #7d3302 #3e1a01 #ff954e;
360 357 color:#ffffff; background-color:#ff6600;
361 358 font-weight:bold; font-family:sans-serif; font-size:10px;
362 359 text-align:center; text-decoration:none;
363 360 }
364 361 div.rss_logo a:hover { background-color:#ee5500; }
365 362 pre { margin: 0; }
366 363 span.logtags span {
367 364 padding: 0px 4px;
368 365 font-size: 10px;
369 366 font-weight: normal;
370 367 border: 1px solid;
371 368 background-color: #ffaaff;
372 369 border-color: #ffccff #ff00ee #ff00ee #ffccff;
373 370 }
374 371 span.logtags span.tagtag {
375 372 background-color: #ffffaa;
376 373 border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
377 374 }
378 375 span.logtags span.branchtag {
379 376 background-color: #aaffaa;
380 377 border-color: #ccffcc #00cc33 #00cc33 #ccffcc;
381 378 }
382 379 span.logtags span.inbranchtag {
383 380 background-color: #d5dde6;
384 381 border-color: #e3ecf4 #9398f4 #9398f4 #e3ecf4;
385 382 }
386 383
387 384 /* Graph */
388 385 div#wrapper {
389 386 position: relative;
390 387 margin: 0;
391 388 padding: 0;
392 389 margin-top: 3px;
393 390 }
394 391
395 392 canvas {
396 393 position: absolute;
397 394 z-index: 5;
398 395 top: -0.9em;
399 396 margin: 0;
400 397 }
401 398
402 399 ul#nodebgs {
403 400 list-style: none inside none;
404 401 padding: 0;
405 402 margin: 0;
406 403 top: -0.7em;
407 404 }
408 405
409 406 ul#graphnodes li, ul#nodebgs li {
410 407 height: 39px;
411 408 }
412 409
413 410 ul#graphnodes {
414 411 position: absolute;
415 412 z-index: 10;
416 413 top: -0.8em;
417 414 list-style: none inside none;
418 415 padding: 0;
419 416 }
420 417
421 418 ul#graphnodes li .info {
422 419 display: block;
423 420 font-size: 100%;
424 421 position: relative;
425 422 top: -3px;
426 423 font-style: italic;
427 424 }
428 425 304 Not Modified
429 426
430 427
431 428 errors
432 429
433 430 $ cat errors.log
General Comments 0
You need to be logged in to leave comments. Login now