##// END OF EJS Templates
hgweb: make paper:error consistent with template...
Ross Lagerwall -
r17290:7a9246ab stable
parent child Browse files
Show More
@@ -1,45 +1,47 b''
1 {header}
1 {header}
2 <title>{repo|escape}: error</title>
2 <title>{repo|escape}: error</title>
3 </head>
3 </head>
4 <body>
4 <body>
5
5
6 <div class="container">
6 <div class="container">
7 <div class="menu">
7 <div class="menu">
8 <div class="logo">
8 <div class="logo">
9 <a href="{logourl}">
9 <a href="{logourl}">
10 <img src="{staticurl}{logoimg}" width=75 height=90 border=0 alt="mercurial" /></a>
10 <img src="{staticurl}{logoimg}" width=75 height=90 border=0 alt="mercurial" /></a>
11 </div>
11 </div>
12 <ul>
12 <ul>
13 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
13 <li><a href="{url}shortlog{sessionvars%urlparameter}">log</a></li>
14 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
14 <li><a href="{url}graph{sessionvars%urlparameter}">graph</a></li>
15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
15 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
16 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
16 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
17 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
17 <li><a href="{url}branches{sessionvars%urlparameter}">branches</a></li>
18 </ul>
19 <ul>
18 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
20 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
19 </ul>
21 </ul>
20 </div>
22 </div>
21
23
22 <div class="main">
24 <div class="main">
23
25
24 <h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
26 <h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
25 <h3>error</h3>
27 <h3>error</h3>
26
28
27 <form class="search" action="{url}log">
29 <form class="search" action="{url}log">
28 {sessionvars%hiddenformentry}
30 {sessionvars%hiddenformentry}
29 <p><input name="rev" id="search1" type="text" size="30"></p>
31 <p><input name="rev" id="search1" type="text" size="30"></p>
30 <div id="hint">find changesets by author, revision,
32 <div id="hint">find changesets by author, revision,
31 files, or words in the commit message</div>
33 files, or words in the commit message</div>
32 </form>
34 </form>
33
35
34 <div class="description">
36 <div class="description">
35 <p>
37 <p>
36 An error occurred while processing your request:
38 An error occurred while processing your request:
37 </p>
39 </p>
38 <p>
40 <p>
39 {error|escape}
41 {error|escape}
40 </p>
42 </p>
41 </div>
43 </div>
42 </div>
44 </div>
43 </div>
45 </div>
44
46
45 {footer}
47 {footer}
@@ -1,763 +1,765 b''
1 $ "$TESTDIR/hghave" serve || exit 80
1 $ "$TESTDIR/hghave" serve || exit 80
2
2
3 $ hg init test
3 $ hg init test
4 $ cd test
4 $ cd test
5 $ echo b > b
5 $ echo b > b
6 $ hg ci -Am "b"
6 $ hg ci -Am "b"
7 adding b
7 adding b
8 $ echo a > a
8 $ echo a > a
9 $ hg ci -Am "first a"
9 $ hg ci -Am "first a"
10 adding a
10 adding a
11 $ hg rm a
11 $ hg rm a
12 $ hg ci -m "del a"
12 $ hg ci -m "del a"
13 $ echo b > a
13 $ echo b > a
14 $ hg ci -Am "second a"
14 $ hg ci -Am "second a"
15 adding a
15 adding a
16 $ hg rm a
16 $ hg rm a
17 $ hg ci -m "del2 a"
17 $ hg ci -m "del2 a"
18 $ hg mv b c
18 $ hg mv b c
19 $ hg ci -m "mv b"
19 $ hg ci -m "mv b"
20 $ echo c >> c
20 $ echo c >> c
21 $ hg ci -m "change c"
21 $ hg ci -m "change c"
22 $ hg log -p
22 $ hg log -p
23 changeset: 6:b7682196df1c
23 changeset: 6:b7682196df1c
24 tag: tip
24 tag: tip
25 user: test
25 user: test
26 date: Thu Jan 01 00:00:00 1970 +0000
26 date: Thu Jan 01 00:00:00 1970 +0000
27 summary: change c
27 summary: change c
28
28
29 diff -r 1a6696706df2 -r b7682196df1c c
29 diff -r 1a6696706df2 -r b7682196df1c c
30 --- a/c Thu Jan 01 00:00:00 1970 +0000
30 --- a/c Thu Jan 01 00:00:00 1970 +0000
31 +++ b/c Thu Jan 01 00:00:00 1970 +0000
31 +++ b/c Thu Jan 01 00:00:00 1970 +0000
32 @@ -1,1 +1,2 @@
32 @@ -1,1 +1,2 @@
33 b
33 b
34 +c
34 +c
35
35
36 changeset: 5:1a6696706df2
36 changeset: 5:1a6696706df2
37 user: test
37 user: test
38 date: Thu Jan 01 00:00:00 1970 +0000
38 date: Thu Jan 01 00:00:00 1970 +0000
39 summary: mv b
39 summary: mv b
40
40
41 diff -r 52e848cdcd88 -r 1a6696706df2 b
41 diff -r 52e848cdcd88 -r 1a6696706df2 b
42 --- a/b Thu Jan 01 00:00:00 1970 +0000
42 --- a/b Thu Jan 01 00:00:00 1970 +0000
43 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
43 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
44 @@ -1,1 +0,0 @@
44 @@ -1,1 +0,0 @@
45 -b
45 -b
46 diff -r 52e848cdcd88 -r 1a6696706df2 c
46 diff -r 52e848cdcd88 -r 1a6696706df2 c
47 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
47 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
48 +++ b/c Thu Jan 01 00:00:00 1970 +0000
48 +++ b/c Thu Jan 01 00:00:00 1970 +0000
49 @@ -0,0 +1,1 @@
49 @@ -0,0 +1,1 @@
50 +b
50 +b
51
51
52 changeset: 4:52e848cdcd88
52 changeset: 4:52e848cdcd88
53 user: test
53 user: test
54 date: Thu Jan 01 00:00:00 1970 +0000
54 date: Thu Jan 01 00:00:00 1970 +0000
55 summary: del2 a
55 summary: del2 a
56
56
57 diff -r 01de2d66a28d -r 52e848cdcd88 a
57 diff -r 01de2d66a28d -r 52e848cdcd88 a
58 --- a/a Thu Jan 01 00:00:00 1970 +0000
58 --- a/a Thu Jan 01 00:00:00 1970 +0000
59 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
59 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
60 @@ -1,1 +0,0 @@
60 @@ -1,1 +0,0 @@
61 -b
61 -b
62
62
63 changeset: 3:01de2d66a28d
63 changeset: 3:01de2d66a28d
64 user: test
64 user: test
65 date: Thu Jan 01 00:00:00 1970 +0000
65 date: Thu Jan 01 00:00:00 1970 +0000
66 summary: second a
66 summary: second a
67
67
68 diff -r be3ebcc91739 -r 01de2d66a28d a
68 diff -r be3ebcc91739 -r 01de2d66a28d a
69 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
69 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
70 +++ b/a Thu Jan 01 00:00:00 1970 +0000
70 +++ b/a Thu Jan 01 00:00:00 1970 +0000
71 @@ -0,0 +1,1 @@
71 @@ -0,0 +1,1 @@
72 +b
72 +b
73
73
74 changeset: 2:be3ebcc91739
74 changeset: 2:be3ebcc91739
75 user: test
75 user: test
76 date: Thu Jan 01 00:00:00 1970 +0000
76 date: Thu Jan 01 00:00:00 1970 +0000
77 summary: del a
77 summary: del a
78
78
79 diff -r 5ed941583260 -r be3ebcc91739 a
79 diff -r 5ed941583260 -r be3ebcc91739 a
80 --- a/a Thu Jan 01 00:00:00 1970 +0000
80 --- a/a Thu Jan 01 00:00:00 1970 +0000
81 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
81 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
82 @@ -1,1 +0,0 @@
82 @@ -1,1 +0,0 @@
83 -a
83 -a
84
84
85 changeset: 1:5ed941583260
85 changeset: 1:5ed941583260
86 user: test
86 user: test
87 date: Thu Jan 01 00:00:00 1970 +0000
87 date: Thu Jan 01 00:00:00 1970 +0000
88 summary: first a
88 summary: first a
89
89
90 diff -r 6563da9dcf87 -r 5ed941583260 a
90 diff -r 6563da9dcf87 -r 5ed941583260 a
91 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
91 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
92 +++ b/a Thu Jan 01 00:00:00 1970 +0000
92 +++ b/a Thu Jan 01 00:00:00 1970 +0000
93 @@ -0,0 +1,1 @@
93 @@ -0,0 +1,1 @@
94 +a
94 +a
95
95
96 changeset: 0:6563da9dcf87
96 changeset: 0:6563da9dcf87
97 user: test
97 user: test
98 date: Thu Jan 01 00:00:00 1970 +0000
98 date: Thu Jan 01 00:00:00 1970 +0000
99 summary: b
99 summary: b
100
100
101 diff -r 000000000000 -r 6563da9dcf87 b
101 diff -r 000000000000 -r 6563da9dcf87 b
102 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
102 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
103 +++ b/b Thu Jan 01 00:00:00 1970 +0000
103 +++ b/b Thu Jan 01 00:00:00 1970 +0000
104 @@ -0,0 +1,1 @@
104 @@ -0,0 +1,1 @@
105 +b
105 +b
106
106
107 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -E errors.log
107 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -E errors.log
108 $ cat hg.pid >> $DAEMON_PIDS
108 $ cat hg.pid >> $DAEMON_PIDS
109
109
110 tip - two revisions
110 tip - two revisions
111
111
112 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log/tip/a')
112 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log/tip/a')
113 200 Script output follows
113 200 Script output follows
114
114
115 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
115 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
116 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
116 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
117 <head>
117 <head>
118 <link rel="icon" href="/static/hgicon.png" type="image/png" />
118 <link rel="icon" href="/static/hgicon.png" type="image/png" />
119 <meta name="robots" content="index, nofollow" />
119 <meta name="robots" content="index, nofollow" />
120 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
120 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
121 <script type="text/javascript" src="/static/mercurial.js"></script>
121 <script type="text/javascript" src="/static/mercurial.js"></script>
122
122
123 <title>test: a history</title>
123 <title>test: a history</title>
124 <link rel="alternate" type="application/atom+xml"
124 <link rel="alternate" type="application/atom+xml"
125 href="/atom-log/tip/a" title="Atom feed for test:a" />
125 href="/atom-log/tip/a" title="Atom feed for test:a" />
126 <link rel="alternate" type="application/rss+xml"
126 <link rel="alternate" type="application/rss+xml"
127 href="/rss-log/tip/a" title="RSS feed for test:a" />
127 href="/rss-log/tip/a" title="RSS feed for test:a" />
128 </head>
128 </head>
129 <body>
129 <body>
130
130
131 <div class="container">
131 <div class="container">
132 <div class="menu">
132 <div class="menu">
133 <div class="logo">
133 <div class="logo">
134 <a href="http://mercurial.selenic.com/">
134 <a href="http://mercurial.selenic.com/">
135 <img src="/static/hglogo.png" alt="mercurial" /></a>
135 <img src="/static/hglogo.png" alt="mercurial" /></a>
136 </div>
136 </div>
137 <ul>
137 <ul>
138 <li><a href="/shortlog/01de2d66a28d">log</a></li>
138 <li><a href="/shortlog/01de2d66a28d">log</a></li>
139 <li><a href="/graph/01de2d66a28d">graph</a></li>
139 <li><a href="/graph/01de2d66a28d">graph</a></li>
140 <li><a href="/tags">tags</a></li>
140 <li><a href="/tags">tags</a></li>
141 <li><a href="/bookmarks">bookmarks</a></li>
141 <li><a href="/bookmarks">bookmarks</a></li>
142 <li><a href="/branches">branches</a></li>
142 <li><a href="/branches">branches</a></li>
143 </ul>
143 </ul>
144 <ul>
144 <ul>
145 <li><a href="/rev/01de2d66a28d">changeset</a></li>
145 <li><a href="/rev/01de2d66a28d">changeset</a></li>
146 <li><a href="/file/01de2d66a28d">browse</a></li>
146 <li><a href="/file/01de2d66a28d">browse</a></li>
147 </ul>
147 </ul>
148 <ul>
148 <ul>
149 <li><a href="/file/01de2d66a28d/a">file</a></li>
149 <li><a href="/file/01de2d66a28d/a">file</a></li>
150 <li><a href="/diff/01de2d66a28d/a">diff</a></li>
150 <li><a href="/diff/01de2d66a28d/a">diff</a></li>
151 <li><a href="/comparison/01de2d66a28d/a">comparison</a></li>
151 <li><a href="/comparison/01de2d66a28d/a">comparison</a></li>
152 <li><a href="/annotate/01de2d66a28d/a">annotate</a></li>
152 <li><a href="/annotate/01de2d66a28d/a">annotate</a></li>
153 <li class="active">file log</li>
153 <li class="active">file log</li>
154 <li><a href="/raw-file/01de2d66a28d/a">raw</a></li>
154 <li><a href="/raw-file/01de2d66a28d/a">raw</a></li>
155 </ul>
155 </ul>
156 <ul>
156 <ul>
157 <li><a href="/help">help</a></li>
157 <li><a href="/help">help</a></li>
158 </ul>
158 </ul>
159 </div>
159 </div>
160
160
161 <div class="main">
161 <div class="main">
162 <h2><a href="/">test</a></h2>
162 <h2><a href="/">test</a></h2>
163 <h3>log a</h3>
163 <h3>log a</h3>
164
164
165 <form class="search" action="/log">
165 <form class="search" action="/log">
166
166
167 <p><input name="rev" id="search1" type="text" size="30" /></p>
167 <p><input name="rev" id="search1" type="text" size="30" /></p>
168 <div id="hint">find changesets by author, revision,
168 <div id="hint">find changesets by author, revision,
169 files, or words in the commit message</div>
169 files, or words in the commit message</div>
170 </form>
170 </form>
171
171
172 <div class="navigate">
172 <div class="navigate">
173 <a href="/log/01de2d66a28d/a?revcount=30">less</a>
173 <a href="/log/01de2d66a28d/a?revcount=30">less</a>
174 <a href="/log/01de2d66a28d/a?revcount=120">more</a>
174 <a href="/log/01de2d66a28d/a?revcount=120">more</a>
175 | <a href="/log/5ed941583260/a">(0)</a> <a href="/log/tip/a">tip</a> </div>
175 | <a href="/log/5ed941583260/a">(0)</a> <a href="/log/tip/a">tip</a> </div>
176
176
177 <table class="bigtable">
177 <table class="bigtable">
178 <tr>
178 <tr>
179 <th class="age">age</th>
179 <th class="age">age</th>
180 <th class="author">author</th>
180 <th class="author">author</th>
181 <th class="description">description</th>
181 <th class="description">description</th>
182 </tr>
182 </tr>
183 <tr class="parity0">
183 <tr class="parity0">
184 <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td>
184 <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td>
185 <td class="author">test</td>
185 <td class="author">test</td>
186 <td class="description"><a href="/rev/01de2d66a28d">second a</a></td>
186 <td class="description"><a href="/rev/01de2d66a28d">second a</a></td>
187 </tr>
187 </tr>
188 <tr class="parity1">
188 <tr class="parity1">
189 <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td>
189 <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td>
190 <td class="author">test</td>
190 <td class="author">test</td>
191 <td class="description"><a href="/rev/5ed941583260">first a</a></td>
191 <td class="description"><a href="/rev/5ed941583260">first a</a></td>
192 </tr>
192 </tr>
193
193
194 </table>
194 </table>
195
195
196 <div class="navigate">
196 <div class="navigate">
197 <a href="/log/01de2d66a28d/a?revcount=30">less</a>
197 <a href="/log/01de2d66a28d/a?revcount=30">less</a>
198 <a href="/log/01de2d66a28d/a?revcount=120">more</a>
198 <a href="/log/01de2d66a28d/a?revcount=120">more</a>
199 | <a href="/log/5ed941583260/a">(0)</a> <a href="/log/tip/a">tip</a>
199 | <a href="/log/5ed941583260/a">(0)</a> <a href="/log/tip/a">tip</a>
200 </div>
200 </div>
201
201
202 </div>
202 </div>
203 </div>
203 </div>
204
204
205 <script type="text/javascript">process_dates()</script>
205 <script type="text/javascript">process_dates()</script>
206
206
207
207
208 </body>
208 </body>
209 </html>
209 </html>
210
210
211
211
212 second version - two revisions
212 second version - two revisions
213
213
214 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log/3/a')
214 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log/3/a')
215 200 Script output follows
215 200 Script output follows
216
216
217 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
217 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
218 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
218 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
219 <head>
219 <head>
220 <link rel="icon" href="/static/hgicon.png" type="image/png" />
220 <link rel="icon" href="/static/hgicon.png" type="image/png" />
221 <meta name="robots" content="index, nofollow" />
221 <meta name="robots" content="index, nofollow" />
222 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
222 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
223 <script type="text/javascript" src="/static/mercurial.js"></script>
223 <script type="text/javascript" src="/static/mercurial.js"></script>
224
224
225 <title>test: a history</title>
225 <title>test: a history</title>
226 <link rel="alternate" type="application/atom+xml"
226 <link rel="alternate" type="application/atom+xml"
227 href="/atom-log/tip/a" title="Atom feed for test:a" />
227 href="/atom-log/tip/a" title="Atom feed for test:a" />
228 <link rel="alternate" type="application/rss+xml"
228 <link rel="alternate" type="application/rss+xml"
229 href="/rss-log/tip/a" title="RSS feed for test:a" />
229 href="/rss-log/tip/a" title="RSS feed for test:a" />
230 </head>
230 </head>
231 <body>
231 <body>
232
232
233 <div class="container">
233 <div class="container">
234 <div class="menu">
234 <div class="menu">
235 <div class="logo">
235 <div class="logo">
236 <a href="http://mercurial.selenic.com/">
236 <a href="http://mercurial.selenic.com/">
237 <img src="/static/hglogo.png" alt="mercurial" /></a>
237 <img src="/static/hglogo.png" alt="mercurial" /></a>
238 </div>
238 </div>
239 <ul>
239 <ul>
240 <li><a href="/shortlog/01de2d66a28d">log</a></li>
240 <li><a href="/shortlog/01de2d66a28d">log</a></li>
241 <li><a href="/graph/01de2d66a28d">graph</a></li>
241 <li><a href="/graph/01de2d66a28d">graph</a></li>
242 <li><a href="/tags">tags</a></li>
242 <li><a href="/tags">tags</a></li>
243 <li><a href="/bookmarks">bookmarks</a></li>
243 <li><a href="/bookmarks">bookmarks</a></li>
244 <li><a href="/branches">branches</a></li>
244 <li><a href="/branches">branches</a></li>
245 </ul>
245 </ul>
246 <ul>
246 <ul>
247 <li><a href="/rev/01de2d66a28d">changeset</a></li>
247 <li><a href="/rev/01de2d66a28d">changeset</a></li>
248 <li><a href="/file/01de2d66a28d">browse</a></li>
248 <li><a href="/file/01de2d66a28d">browse</a></li>
249 </ul>
249 </ul>
250 <ul>
250 <ul>
251 <li><a href="/file/01de2d66a28d/a">file</a></li>
251 <li><a href="/file/01de2d66a28d/a">file</a></li>
252 <li><a href="/diff/01de2d66a28d/a">diff</a></li>
252 <li><a href="/diff/01de2d66a28d/a">diff</a></li>
253 <li><a href="/comparison/01de2d66a28d/a">comparison</a></li>
253 <li><a href="/comparison/01de2d66a28d/a">comparison</a></li>
254 <li><a href="/annotate/01de2d66a28d/a">annotate</a></li>
254 <li><a href="/annotate/01de2d66a28d/a">annotate</a></li>
255 <li class="active">file log</li>
255 <li class="active">file log</li>
256 <li><a href="/raw-file/01de2d66a28d/a">raw</a></li>
256 <li><a href="/raw-file/01de2d66a28d/a">raw</a></li>
257 </ul>
257 </ul>
258 <ul>
258 <ul>
259 <li><a href="/help">help</a></li>
259 <li><a href="/help">help</a></li>
260 </ul>
260 </ul>
261 </div>
261 </div>
262
262
263 <div class="main">
263 <div class="main">
264 <h2><a href="/">test</a></h2>
264 <h2><a href="/">test</a></h2>
265 <h3>log a</h3>
265 <h3>log a</h3>
266
266
267 <form class="search" action="/log">
267 <form class="search" action="/log">
268
268
269 <p><input name="rev" id="search1" type="text" size="30" /></p>
269 <p><input name="rev" id="search1" type="text" size="30" /></p>
270 <div id="hint">find changesets by author, revision,
270 <div id="hint">find changesets by author, revision,
271 files, or words in the commit message</div>
271 files, or words in the commit message</div>
272 </form>
272 </form>
273
273
274 <div class="navigate">
274 <div class="navigate">
275 <a href="/log/01de2d66a28d/a?revcount=30">less</a>
275 <a href="/log/01de2d66a28d/a?revcount=30">less</a>
276 <a href="/log/01de2d66a28d/a?revcount=120">more</a>
276 <a href="/log/01de2d66a28d/a?revcount=120">more</a>
277 | <a href="/log/5ed941583260/a">(0)</a> <a href="/log/tip/a">tip</a> </div>
277 | <a href="/log/5ed941583260/a">(0)</a> <a href="/log/tip/a">tip</a> </div>
278
278
279 <table class="bigtable">
279 <table class="bigtable">
280 <tr>
280 <tr>
281 <th class="age">age</th>
281 <th class="age">age</th>
282 <th class="author">author</th>
282 <th class="author">author</th>
283 <th class="description">description</th>
283 <th class="description">description</th>
284 </tr>
284 </tr>
285 <tr class="parity0">
285 <tr class="parity0">
286 <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td>
286 <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td>
287 <td class="author">test</td>
287 <td class="author">test</td>
288 <td class="description"><a href="/rev/01de2d66a28d">second a</a></td>
288 <td class="description"><a href="/rev/01de2d66a28d">second a</a></td>
289 </tr>
289 </tr>
290 <tr class="parity1">
290 <tr class="parity1">
291 <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td>
291 <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td>
292 <td class="author">test</td>
292 <td class="author">test</td>
293 <td class="description"><a href="/rev/5ed941583260">first a</a></td>
293 <td class="description"><a href="/rev/5ed941583260">first a</a></td>
294 </tr>
294 </tr>
295
295
296 </table>
296 </table>
297
297
298 <div class="navigate">
298 <div class="navigate">
299 <a href="/log/01de2d66a28d/a?revcount=30">less</a>
299 <a href="/log/01de2d66a28d/a?revcount=30">less</a>
300 <a href="/log/01de2d66a28d/a?revcount=120">more</a>
300 <a href="/log/01de2d66a28d/a?revcount=120">more</a>
301 | <a href="/log/5ed941583260/a">(0)</a> <a href="/log/tip/a">tip</a>
301 | <a href="/log/5ed941583260/a">(0)</a> <a href="/log/tip/a">tip</a>
302 </div>
302 </div>
303
303
304 </div>
304 </div>
305 </div>
305 </div>
306
306
307 <script type="text/javascript">process_dates()</script>
307 <script type="text/javascript">process_dates()</script>
308
308
309
309
310 </body>
310 </body>
311 </html>
311 </html>
312
312
313
313
314 first deleted - one revision
314 first deleted - one revision
315
315
316 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log/2/a')
316 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log/2/a')
317 200 Script output follows
317 200 Script output follows
318
318
319 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
319 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
320 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
320 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
321 <head>
321 <head>
322 <link rel="icon" href="/static/hgicon.png" type="image/png" />
322 <link rel="icon" href="/static/hgicon.png" type="image/png" />
323 <meta name="robots" content="index, nofollow" />
323 <meta name="robots" content="index, nofollow" />
324 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
324 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
325 <script type="text/javascript" src="/static/mercurial.js"></script>
325 <script type="text/javascript" src="/static/mercurial.js"></script>
326
326
327 <title>test: a history</title>
327 <title>test: a history</title>
328 <link rel="alternate" type="application/atom+xml"
328 <link rel="alternate" type="application/atom+xml"
329 href="/atom-log/tip/a" title="Atom feed for test:a" />
329 href="/atom-log/tip/a" title="Atom feed for test:a" />
330 <link rel="alternate" type="application/rss+xml"
330 <link rel="alternate" type="application/rss+xml"
331 href="/rss-log/tip/a" title="RSS feed for test:a" />
331 href="/rss-log/tip/a" title="RSS feed for test:a" />
332 </head>
332 </head>
333 <body>
333 <body>
334
334
335 <div class="container">
335 <div class="container">
336 <div class="menu">
336 <div class="menu">
337 <div class="logo">
337 <div class="logo">
338 <a href="http://mercurial.selenic.com/">
338 <a href="http://mercurial.selenic.com/">
339 <img src="/static/hglogo.png" alt="mercurial" /></a>
339 <img src="/static/hglogo.png" alt="mercurial" /></a>
340 </div>
340 </div>
341 <ul>
341 <ul>
342 <li><a href="/shortlog/5ed941583260">log</a></li>
342 <li><a href="/shortlog/5ed941583260">log</a></li>
343 <li><a href="/graph/5ed941583260">graph</a></li>
343 <li><a href="/graph/5ed941583260">graph</a></li>
344 <li><a href="/tags">tags</a></li>
344 <li><a href="/tags">tags</a></li>
345 <li><a href="/bookmarks">bookmarks</a></li>
345 <li><a href="/bookmarks">bookmarks</a></li>
346 <li><a href="/branches">branches</a></li>
346 <li><a href="/branches">branches</a></li>
347 </ul>
347 </ul>
348 <ul>
348 <ul>
349 <li><a href="/rev/5ed941583260">changeset</a></li>
349 <li><a href="/rev/5ed941583260">changeset</a></li>
350 <li><a href="/file/5ed941583260">browse</a></li>
350 <li><a href="/file/5ed941583260">browse</a></li>
351 </ul>
351 </ul>
352 <ul>
352 <ul>
353 <li><a href="/file/5ed941583260/a">file</a></li>
353 <li><a href="/file/5ed941583260/a">file</a></li>
354 <li><a href="/diff/5ed941583260/a">diff</a></li>
354 <li><a href="/diff/5ed941583260/a">diff</a></li>
355 <li><a href="/comparison/5ed941583260/a">comparison</a></li>
355 <li><a href="/comparison/5ed941583260/a">comparison</a></li>
356 <li><a href="/annotate/5ed941583260/a">annotate</a></li>
356 <li><a href="/annotate/5ed941583260/a">annotate</a></li>
357 <li class="active">file log</li>
357 <li class="active">file log</li>
358 <li><a href="/raw-file/5ed941583260/a">raw</a></li>
358 <li><a href="/raw-file/5ed941583260/a">raw</a></li>
359 </ul>
359 </ul>
360 <ul>
360 <ul>
361 <li><a href="/help">help</a></li>
361 <li><a href="/help">help</a></li>
362 </ul>
362 </ul>
363 </div>
363 </div>
364
364
365 <div class="main">
365 <div class="main">
366 <h2><a href="/">test</a></h2>
366 <h2><a href="/">test</a></h2>
367 <h3>log a</h3>
367 <h3>log a</h3>
368
368
369 <form class="search" action="/log">
369 <form class="search" action="/log">
370
370
371 <p><input name="rev" id="search1" type="text" size="30" /></p>
371 <p><input name="rev" id="search1" type="text" size="30" /></p>
372 <div id="hint">find changesets by author, revision,
372 <div id="hint">find changesets by author, revision,
373 files, or words in the commit message</div>
373 files, or words in the commit message</div>
374 </form>
374 </form>
375
375
376 <div class="navigate">
376 <div class="navigate">
377 <a href="/log/5ed941583260/a?revcount=30">less</a>
377 <a href="/log/5ed941583260/a?revcount=30">less</a>
378 <a href="/log/5ed941583260/a?revcount=120">more</a>
378 <a href="/log/5ed941583260/a?revcount=120">more</a>
379 | <a href="/log/5ed941583260/a">(0)</a> <a href="/log/tip/a">tip</a> </div>
379 | <a href="/log/5ed941583260/a">(0)</a> <a href="/log/tip/a">tip</a> </div>
380
380
381 <table class="bigtable">
381 <table class="bigtable">
382 <tr>
382 <tr>
383 <th class="age">age</th>
383 <th class="age">age</th>
384 <th class="author">author</th>
384 <th class="author">author</th>
385 <th class="description">description</th>
385 <th class="description">description</th>
386 </tr>
386 </tr>
387 <tr class="parity0">
387 <tr class="parity0">
388 <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td>
388 <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td>
389 <td class="author">test</td>
389 <td class="author">test</td>
390 <td class="description"><a href="/rev/5ed941583260">first a</a></td>
390 <td class="description"><a href="/rev/5ed941583260">first a</a></td>
391 </tr>
391 </tr>
392
392
393 </table>
393 </table>
394
394
395 <div class="navigate">
395 <div class="navigate">
396 <a href="/log/5ed941583260/a?revcount=30">less</a>
396 <a href="/log/5ed941583260/a?revcount=30">less</a>
397 <a href="/log/5ed941583260/a?revcount=120">more</a>
397 <a href="/log/5ed941583260/a?revcount=120">more</a>
398 | <a href="/log/5ed941583260/a">(0)</a> <a href="/log/tip/a">tip</a>
398 | <a href="/log/5ed941583260/a">(0)</a> <a href="/log/tip/a">tip</a>
399 </div>
399 </div>
400
400
401 </div>
401 </div>
402 </div>
402 </div>
403
403
404 <script type="text/javascript">process_dates()</script>
404 <script type="text/javascript">process_dates()</script>
405
405
406
406
407 </body>
407 </body>
408 </html>
408 </html>
409
409
410
410
411 first version - one revision
411 first version - one revision
412
412
413 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log/1/a')
413 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log/1/a')
414 200 Script output follows
414 200 Script output follows
415
415
416 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
416 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
417 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
417 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
418 <head>
418 <head>
419 <link rel="icon" href="/static/hgicon.png" type="image/png" />
419 <link rel="icon" href="/static/hgicon.png" type="image/png" />
420 <meta name="robots" content="index, nofollow" />
420 <meta name="robots" content="index, nofollow" />
421 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
421 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
422 <script type="text/javascript" src="/static/mercurial.js"></script>
422 <script type="text/javascript" src="/static/mercurial.js"></script>
423
423
424 <title>test: a history</title>
424 <title>test: a history</title>
425 <link rel="alternate" type="application/atom+xml"
425 <link rel="alternate" type="application/atom+xml"
426 href="/atom-log/tip/a" title="Atom feed for test:a" />
426 href="/atom-log/tip/a" title="Atom feed for test:a" />
427 <link rel="alternate" type="application/rss+xml"
427 <link rel="alternate" type="application/rss+xml"
428 href="/rss-log/tip/a" title="RSS feed for test:a" />
428 href="/rss-log/tip/a" title="RSS feed for test:a" />
429 </head>
429 </head>
430 <body>
430 <body>
431
431
432 <div class="container">
432 <div class="container">
433 <div class="menu">
433 <div class="menu">
434 <div class="logo">
434 <div class="logo">
435 <a href="http://mercurial.selenic.com/">
435 <a href="http://mercurial.selenic.com/">
436 <img src="/static/hglogo.png" alt="mercurial" /></a>
436 <img src="/static/hglogo.png" alt="mercurial" /></a>
437 </div>
437 </div>
438 <ul>
438 <ul>
439 <li><a href="/shortlog/5ed941583260">log</a></li>
439 <li><a href="/shortlog/5ed941583260">log</a></li>
440 <li><a href="/graph/5ed941583260">graph</a></li>
440 <li><a href="/graph/5ed941583260">graph</a></li>
441 <li><a href="/tags">tags</a></li>
441 <li><a href="/tags">tags</a></li>
442 <li><a href="/bookmarks">bookmarks</a></li>
442 <li><a href="/bookmarks">bookmarks</a></li>
443 <li><a href="/branches">branches</a></li>
443 <li><a href="/branches">branches</a></li>
444 </ul>
444 </ul>
445 <ul>
445 <ul>
446 <li><a href="/rev/5ed941583260">changeset</a></li>
446 <li><a href="/rev/5ed941583260">changeset</a></li>
447 <li><a href="/file/5ed941583260">browse</a></li>
447 <li><a href="/file/5ed941583260">browse</a></li>
448 </ul>
448 </ul>
449 <ul>
449 <ul>
450 <li><a href="/file/5ed941583260/a">file</a></li>
450 <li><a href="/file/5ed941583260/a">file</a></li>
451 <li><a href="/diff/5ed941583260/a">diff</a></li>
451 <li><a href="/diff/5ed941583260/a">diff</a></li>
452 <li><a href="/comparison/5ed941583260/a">comparison</a></li>
452 <li><a href="/comparison/5ed941583260/a">comparison</a></li>
453 <li><a href="/annotate/5ed941583260/a">annotate</a></li>
453 <li><a href="/annotate/5ed941583260/a">annotate</a></li>
454 <li class="active">file log</li>
454 <li class="active">file log</li>
455 <li><a href="/raw-file/5ed941583260/a">raw</a></li>
455 <li><a href="/raw-file/5ed941583260/a">raw</a></li>
456 </ul>
456 </ul>
457 <ul>
457 <ul>
458 <li><a href="/help">help</a></li>
458 <li><a href="/help">help</a></li>
459 </ul>
459 </ul>
460 </div>
460 </div>
461
461
462 <div class="main">
462 <div class="main">
463 <h2><a href="/">test</a></h2>
463 <h2><a href="/">test</a></h2>
464 <h3>log a</h3>
464 <h3>log a</h3>
465
465
466 <form class="search" action="/log">
466 <form class="search" action="/log">
467
467
468 <p><input name="rev" id="search1" type="text" size="30" /></p>
468 <p><input name="rev" id="search1" type="text" size="30" /></p>
469 <div id="hint">find changesets by author, revision,
469 <div id="hint">find changesets by author, revision,
470 files, or words in the commit message</div>
470 files, or words in the commit message</div>
471 </form>
471 </form>
472
472
473 <div class="navigate">
473 <div class="navigate">
474 <a href="/log/5ed941583260/a?revcount=30">less</a>
474 <a href="/log/5ed941583260/a?revcount=30">less</a>
475 <a href="/log/5ed941583260/a?revcount=120">more</a>
475 <a href="/log/5ed941583260/a?revcount=120">more</a>
476 | <a href="/log/5ed941583260/a">(0)</a> <a href="/log/tip/a">tip</a> </div>
476 | <a href="/log/5ed941583260/a">(0)</a> <a href="/log/tip/a">tip</a> </div>
477
477
478 <table class="bigtable">
478 <table class="bigtable">
479 <tr>
479 <tr>
480 <th class="age">age</th>
480 <th class="age">age</th>
481 <th class="author">author</th>
481 <th class="author">author</th>
482 <th class="description">description</th>
482 <th class="description">description</th>
483 </tr>
483 </tr>
484 <tr class="parity0">
484 <tr class="parity0">
485 <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td>
485 <td class="age">Thu, 01 Jan 1970 00:00:00 +0000</td>
486 <td class="author">test</td>
486 <td class="author">test</td>
487 <td class="description"><a href="/rev/5ed941583260">first a</a></td>
487 <td class="description"><a href="/rev/5ed941583260">first a</a></td>
488 </tr>
488 </tr>
489
489
490 </table>
490 </table>
491
491
492 <div class="navigate">
492 <div class="navigate">
493 <a href="/log/5ed941583260/a?revcount=30">less</a>
493 <a href="/log/5ed941583260/a?revcount=30">less</a>
494 <a href="/log/5ed941583260/a?revcount=120">more</a>
494 <a href="/log/5ed941583260/a?revcount=120">more</a>
495 | <a href="/log/5ed941583260/a">(0)</a> <a href="/log/tip/a">tip</a>
495 | <a href="/log/5ed941583260/a">(0)</a> <a href="/log/tip/a">tip</a>
496 </div>
496 </div>
497
497
498 </div>
498 </div>
499 </div>
499 </div>
500
500
501 <script type="text/javascript">process_dates()</script>
501 <script type="text/javascript">process_dates()</script>
502
502
503
503
504 </body>
504 </body>
505 </html>
505 </html>
506
506
507
507
508 before addition - error
508 before addition - error
509
509
510 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log/0/a')
510 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log/0/a')
511 404 Not Found
511 404 Not Found
512
512
513 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
513 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
514 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
514 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
515 <head>
515 <head>
516 <link rel="icon" href="/static/hgicon.png" type="image/png" />
516 <link rel="icon" href="/static/hgicon.png" type="image/png" />
517 <meta name="robots" content="index, nofollow" />
517 <meta name="robots" content="index, nofollow" />
518 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
518 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
519 <script type="text/javascript" src="/static/mercurial.js"></script>
519 <script type="text/javascript" src="/static/mercurial.js"></script>
520
520
521 <title>test: error</title>
521 <title>test: error</title>
522 </head>
522 </head>
523 <body>
523 <body>
524
524
525 <div class="container">
525 <div class="container">
526 <div class="menu">
526 <div class="menu">
527 <div class="logo">
527 <div class="logo">
528 <a href="http://mercurial.selenic.com/">
528 <a href="http://mercurial.selenic.com/">
529 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
529 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
530 </div>
530 </div>
531 <ul>
531 <ul>
532 <li><a href="/shortlog">log</a></li>
532 <li><a href="/shortlog">log</a></li>
533 <li><a href="/graph">graph</a></li>
533 <li><a href="/graph">graph</a></li>
534 <li><a href="/tags">tags</a></li>
534 <li><a href="/tags">tags</a></li>
535 <li><a href="/bookmarks">bookmarks</a></li>
535 <li><a href="/bookmarks">bookmarks</a></li>
536 <li><a href="/branches">branches</a></li>
536 <li><a href="/branches">branches</a></li>
537 </ul>
538 <ul>
537 <li><a href="/help">help</a></li>
539 <li><a href="/help">help</a></li>
538 </ul>
540 </ul>
539 </div>
541 </div>
540
542
541 <div class="main">
543 <div class="main">
542
544
543 <h2><a href="/">test</a></h2>
545 <h2><a href="/">test</a></h2>
544 <h3>error</h3>
546 <h3>error</h3>
545
547
546 <form class="search" action="/log">
548 <form class="search" action="/log">
547
549
548 <p><input name="rev" id="search1" type="text" size="30"></p>
550 <p><input name="rev" id="search1" type="text" size="30"></p>
549 <div id="hint">find changesets by author, revision,
551 <div id="hint">find changesets by author, revision,
550 files, or words in the commit message</div>
552 files, or words in the commit message</div>
551 </form>
553 </form>
552
554
553 <div class="description">
555 <div class="description">
554 <p>
556 <p>
555 An error occurred while processing your request:
557 An error occurred while processing your request:
556 </p>
558 </p>
557 <p>
559 <p>
558 a@6563da9dcf87: not found in manifest
560 a@6563da9dcf87: not found in manifest
559 </p>
561 </p>
560 </div>
562 </div>
561 </div>
563 </div>
562 </div>
564 </div>
563
565
564 <script type="text/javascript">process_dates()</script>
566 <script type="text/javascript">process_dates()</script>
565
567
566
568
567 </body>
569 </body>
568 </html>
570 </html>
569
571
570 [1]
572 [1]
571
573
572 should show base link, use spartan because it shows it
574 should show base link, use spartan because it shows it
573
575
574 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log/tip/c?style=spartan')
576 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log/tip/c?style=spartan')
575 200 Script output follows
577 200 Script output follows
576
578
577 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
579 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
578 <html>
580 <html>
579 <head>
581 <head>
580 <link rel="icon" href="/static/hgicon.png" type="image/png">
582 <link rel="icon" href="/static/hgicon.png" type="image/png">
581 <meta name="robots" content="index, nofollow" />
583 <meta name="robots" content="index, nofollow" />
582 <link rel="stylesheet" href="/static/style.css" type="text/css" />
584 <link rel="stylesheet" href="/static/style.css" type="text/css" />
583 <script type="text/javascript" src="/static/mercurial.js"></script>
585 <script type="text/javascript" src="/static/mercurial.js"></script>
584
586
585 <title>test: c history</title>
587 <title>test: c history</title>
586 <link rel="alternate" type="application/atom+xml"
588 <link rel="alternate" type="application/atom+xml"
587 href="/atom-log/tip/c" title="Atom feed for test:c">
589 href="/atom-log/tip/c" title="Atom feed for test:c">
588 <link rel="alternate" type="application/rss+xml"
590 <link rel="alternate" type="application/rss+xml"
589 href="/rss-log/tip/c" title="RSS feed for test:c">
591 href="/rss-log/tip/c" title="RSS feed for test:c">
590 </head>
592 </head>
591 <body>
593 <body>
592
594
593 <div class="buttons">
595 <div class="buttons">
594 <a href="/log?style=spartan">changelog</a>
596 <a href="/log?style=spartan">changelog</a>
595 <a href="/shortlog?style=spartan">shortlog</a>
597 <a href="/shortlog?style=spartan">shortlog</a>
596 <a href="/graph?style=spartan">graph</a>
598 <a href="/graph?style=spartan">graph</a>
597 <a href="/tags?style=spartan">tags</a>
599 <a href="/tags?style=spartan">tags</a>
598 <a href="/branches?style=spartan">branches</a>
600 <a href="/branches?style=spartan">branches</a>
599 <a href="/file/b7682196df1c/c?style=spartan">file</a>
601 <a href="/file/b7682196df1c/c?style=spartan">file</a>
600 <a href="/annotate/b7682196df1c/c?style=spartan">annotate</a>
602 <a href="/annotate/b7682196df1c/c?style=spartan">annotate</a>
601 <a href="/help?style=spartan">help</a>
603 <a href="/help?style=spartan">help</a>
602 <a type="application/rss+xml" href="/rss-log/tip/c">rss</a>
604 <a type="application/rss+xml" href="/rss-log/tip/c">rss</a>
603 <a type="application/atom+xml" href="/atom-log/tip/c" title="Atom feed for test:c">atom</a>
605 <a type="application/atom+xml" href="/atom-log/tip/c" title="Atom feed for test:c">atom</a>
604 </div>
606 </div>
605
607
606 <h2>c revision history</h2>
608 <h2>c revision history</h2>
607
609
608 <p>navigate: <small class="navigate"><a href="/log/1a6696706df2/c?style=spartan">(0)</a> <a href="/log/tip/c?style=spartan">tip</a> </small></p>
610 <p>navigate: <small class="navigate"><a href="/log/1a6696706df2/c?style=spartan">(0)</a> <a href="/log/tip/c?style=spartan">tip</a> </small></p>
609
611
610 <table class="logEntry parity0">
612 <table class="logEntry parity0">
611 <tr>
613 <tr>
612 <th><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>:</th>
614 <th><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>:</th>
613 <th class="firstline"><a href="/rev/b7682196df1c?style=spartan">change c</a></th>
615 <th class="firstline"><a href="/rev/b7682196df1c?style=spartan">change c</a></th>
614 </tr>
616 </tr>
615 <tr>
617 <tr>
616 <th class="revision">revision 1:</td>
618 <th class="revision">revision 1:</td>
617 <td class="node">
619 <td class="node">
618 <a href="/file/b7682196df1c/c?style=spartan">b7682196df1c</a>
620 <a href="/file/b7682196df1c/c?style=spartan">b7682196df1c</a>
619 <a href="/diff/b7682196df1c/c?style=spartan">(diff)</a>
621 <a href="/diff/b7682196df1c/c?style=spartan">(diff)</a>
620 <a href="/annotate/b7682196df1c/c?style=spartan">(annotate)</a>
622 <a href="/annotate/b7682196df1c/c?style=spartan">(annotate)</a>
621 </td>
623 </td>
622 </tr>
624 </tr>
623
625
624 <tr>
626 <tr>
625 <th class="author">author:</th>
627 <th class="author">author:</th>
626 <td class="author">&#116;&#101;&#115;&#116;</td>
628 <td class="author">&#116;&#101;&#115;&#116;</td>
627 </tr>
629 </tr>
628 <tr>
630 <tr>
629 <th class="date">date:</th>
631 <th class="date">date:</th>
630 <td class="date">Thu, 01 Jan 1970 00:00:00 +0000</td>
632 <td class="date">Thu, 01 Jan 1970 00:00:00 +0000</td>
631 </tr>
633 </tr>
632 </table>
634 </table>
633
635
634
636
635 <table class="logEntry parity1">
637 <table class="logEntry parity1">
636 <tr>
638 <tr>
637 <th><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>:</th>
639 <th><span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span>:</th>
638 <th class="firstline"><a href="/rev/1a6696706df2?style=spartan">mv b</a></th>
640 <th class="firstline"><a href="/rev/1a6696706df2?style=spartan">mv b</a></th>
639 </tr>
641 </tr>
640 <tr>
642 <tr>
641 <th class="revision">revision 0:</td>
643 <th class="revision">revision 0:</td>
642 <td class="node">
644 <td class="node">
643 <a href="/file/1a6696706df2/c?style=spartan">1a6696706df2</a>
645 <a href="/file/1a6696706df2/c?style=spartan">1a6696706df2</a>
644 <a href="/diff/1a6696706df2/c?style=spartan">(diff)</a>
646 <a href="/diff/1a6696706df2/c?style=spartan">(diff)</a>
645 <a href="/annotate/1a6696706df2/c?style=spartan">(annotate)</a>
647 <a href="/annotate/1a6696706df2/c?style=spartan">(annotate)</a>
646 </td>
648 </td>
647 </tr>
649 </tr>
648
650
649 <tr>
651 <tr>
650 <th>base:</th>
652 <th>base:</th>
651 <td>
653 <td>
652 <a href="/file/1e88685f5dde/b?style=spartan">
654 <a href="/file/1e88685f5dde/b?style=spartan">
653 b@1e88685f5dde
655 b@1e88685f5dde
654 </a>
656 </a>
655 </td>
657 </td>
656 </tr>
658 </tr>
657 <tr>
659 <tr>
658 <th class="author">author:</th>
660 <th class="author">author:</th>
659 <td class="author">&#116;&#101;&#115;&#116;</td>
661 <td class="author">&#116;&#101;&#115;&#116;</td>
660 </tr>
662 </tr>
661 <tr>
663 <tr>
662 <th class="date">date:</th>
664 <th class="date">date:</th>
663 <td class="date">Thu, 01 Jan 1970 00:00:00 +0000</td>
665 <td class="date">Thu, 01 Jan 1970 00:00:00 +0000</td>
664 </tr>
666 </tr>
665 </table>
667 </table>
666
668
667
669
668
670
669
671
670 <script type="text/javascript">process_dates()</script>
672 <script type="text/javascript">process_dates()</script>
671
673
672 <div class="logo">
674 <div class="logo">
673 <a href="http://mercurial.selenic.com/">
675 <a href="http://mercurial.selenic.com/">
674 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial"></a>
676 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial"></a>
675 </div>
677 </div>
676
678
677 </body>
679 </body>
678 </html>
680 </html>
679
681
680
682
681 rss log
683 rss log
682
684
683 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'rss-log/tip/a')
685 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'rss-log/tip/a')
684 200 Script output follows
686 200 Script output follows
685
687
686 <?xml version="1.0" encoding="ascii"?>
688 <?xml version="1.0" encoding="ascii"?>
687 <rss version="2.0">
689 <rss version="2.0">
688 <channel>
690 <channel>
689 <link>http://*:$HGPORT/</link> (glob)
691 <link>http://*:$HGPORT/</link> (glob)
690 <language>en-us</language>
692 <language>en-us</language>
691
693
692 <title>test: a history</title>
694 <title>test: a history</title>
693 <description>a revision history</description>
695 <description>a revision history</description>
694 <item>
696 <item>
695 <title>second a</title>
697 <title>second a</title>
696 <link>http://*:$HGPORT/log01de2d66a28d/a</link> (glob)
698 <link>http://*:$HGPORT/log01de2d66a28d/a</link> (glob)
697 <description><![CDATA[second a]]></description>
699 <description><![CDATA[second a]]></description>
698 <author>&#116;&#101;&#115;&#116;</author>
700 <author>&#116;&#101;&#115;&#116;</author>
699 <pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
701 <pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
700 </item>
702 </item>
701 <item>
703 <item>
702 <title>first a</title>
704 <title>first a</title>
703 <link>http://*:$HGPORT/log5ed941583260/a</link> (glob)
705 <link>http://*:$HGPORT/log5ed941583260/a</link> (glob)
704 <description><![CDATA[first a]]></description>
706 <description><![CDATA[first a]]></description>
705 <author>&#116;&#101;&#115;&#116;</author>
707 <author>&#116;&#101;&#115;&#116;</author>
706 <pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
708 <pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
707 </item>
709 </item>
708
710
709 </channel>
711 </channel>
710 </rss>
712 </rss>
711
713
712 atom log
714 atom log
713
715
714 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'atom-log/tip/a')
716 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'atom-log/tip/a')
715 200 Script output follows
717 200 Script output follows
716
718
717 <?xml version="1.0" encoding="ascii"?>
719 <?xml version="1.0" encoding="ascii"?>
718 <feed xmlns="http://www.w3.org/2005/Atom">
720 <feed xmlns="http://www.w3.org/2005/Atom">
719 <id>http://*:$HGPORT/atom-log/tip/a</id> (glob)
721 <id>http://*:$HGPORT/atom-log/tip/a</id> (glob)
720 <link rel="self" href="http://*:$HGPORT/atom-log/tip/a"/> (glob)
722 <link rel="self" href="http://*:$HGPORT/atom-log/tip/a"/> (glob)
721 <title>test: a history</title>
723 <title>test: a history</title>
722 <updated>1970-01-01T00:00:00+00:00</updated>
724 <updated>1970-01-01T00:00:00+00:00</updated>
723
725
724 <entry>
726 <entry>
725 <title>second a</title>
727 <title>second a</title>
726 <id>http://*:$HGPORT/#changeset-01de2d66a28df5549090991dccda788726948517</id> (glob)
728 <id>http://*:$HGPORT/#changeset-01de2d66a28df5549090991dccda788726948517</id> (glob)
727 <link href="http://*:$HGPORT/rev/01de2d66a28d"/> (glob)
729 <link href="http://*:$HGPORT/rev/01de2d66a28d"/> (glob)
728 <author>
730 <author>
729 <name>test</name>
731 <name>test</name>
730 <email>&#116;&#101;&#115;&#116;</email>
732 <email>&#116;&#101;&#115;&#116;</email>
731 </author>
733 </author>
732 <updated>1970-01-01T00:00:00+00:00</updated>
734 <updated>1970-01-01T00:00:00+00:00</updated>
733 <published>1970-01-01T00:00:00+00:00</published>
735 <published>1970-01-01T00:00:00+00:00</published>
734 <content type="xhtml">
736 <content type="xhtml">
735 <div xmlns="http://www.w3.org/1999/xhtml">
737 <div xmlns="http://www.w3.org/1999/xhtml">
736 <pre xml:space="preserve">second a</pre>
738 <pre xml:space="preserve">second a</pre>
737 </div>
739 </div>
738 </content>
740 </content>
739 </entry>
741 </entry>
740 <entry>
742 <entry>
741 <title>first a</title>
743 <title>first a</title>
742 <id>http://*:$HGPORT/#changeset-5ed941583260248620985524192fdc382ef57c36</id> (glob)
744 <id>http://*:$HGPORT/#changeset-5ed941583260248620985524192fdc382ef57c36</id> (glob)
743 <link href="http://*:$HGPORT/rev/5ed941583260"/> (glob)
745 <link href="http://*:$HGPORT/rev/5ed941583260"/> (glob)
744 <author>
746 <author>
745 <name>test</name>
747 <name>test</name>
746 <email>&#116;&#101;&#115;&#116;</email>
748 <email>&#116;&#101;&#115;&#116;</email>
747 </author>
749 </author>
748 <updated>1970-01-01T00:00:00+00:00</updated>
750 <updated>1970-01-01T00:00:00+00:00</updated>
749 <published>1970-01-01T00:00:00+00:00</published>
751 <published>1970-01-01T00:00:00+00:00</published>
750 <content type="xhtml">
752 <content type="xhtml">
751 <div xmlns="http://www.w3.org/1999/xhtml">
753 <div xmlns="http://www.w3.org/1999/xhtml">
752 <pre xml:space="preserve">first a</pre>
754 <pre xml:space="preserve">first a</pre>
753 </div>
755 </div>
754 </content>
756 </content>
755 </entry>
757 </entry>
756
758
757 </feed>
759 </feed>
758
760
759 errors
761 errors
760
762
761 $ cat errors.log
763 $ cat errors.log
762
764
763 $ cd ..
765 $ cd ..
@@ -1,488 +1,492 b''
1 $ "$TESTDIR/hghave" serve || exit 80
1 $ "$TESTDIR/hghave" serve || exit 80
2
2
3 Some tests for hgweb. Tests static files, plain files and different 404's.
3 Some tests for hgweb. Tests static files, plain files and different 404's.
4
4
5 $ hg init test
5 $ hg init test
6 $ cd test
6 $ cd test
7 $ mkdir da
7 $ mkdir da
8 $ echo foo > da/foo
8 $ echo foo > da/foo
9 $ echo foo > foo
9 $ echo foo > foo
10 $ hg ci -Ambase
10 $ hg ci -Ambase
11 adding da/foo
11 adding da/foo
12 adding foo
12 adding foo
13 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
13 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
14 $ cat hg.pid >> $DAEMON_PIDS
14 $ cat hg.pid >> $DAEMON_PIDS
15
15
16 manifest
16 manifest
17
17
18 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/?style=raw')
18 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/?style=raw')
19 200 Script output follows
19 200 Script output follows
20
20
21
21
22 drwxr-xr-x da
22 drwxr-xr-x da
23 -rw-r--r-- 4 foo
23 -rw-r--r-- 4 foo
24
24
25
25
26 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/da?style=raw')
26 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/da?style=raw')
27 200 Script output follows
27 200 Script output follows
28
28
29
29
30 -rw-r--r-- 4 foo
30 -rw-r--r-- 4 foo
31
31
32
32
33
33
34 plain file
34 plain file
35
35
36 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/foo?style=raw'
36 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/foo?style=raw'
37 200 Script output follows
37 200 Script output follows
38
38
39 foo
39 foo
40
40
41 should give a 404 - static file that does not exist
41 should give a 404 - static file that does not exist
42
42
43 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'static/bogus'
43 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'static/bogus'
44 404 Not Found
44 404 Not Found
45
45
46 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
46 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
47 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
47 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
48 <head>
48 <head>
49 <link rel="icon" href="/static/hgicon.png" type="image/png" />
49 <link rel="icon" href="/static/hgicon.png" type="image/png" />
50 <meta name="robots" content="index, nofollow" />
50 <meta name="robots" content="index, nofollow" />
51 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
51 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
52 <script type="text/javascript" src="/static/mercurial.js"></script>
52 <script type="text/javascript" src="/static/mercurial.js"></script>
53
53
54 <title>test: error</title>
54 <title>test: error</title>
55 </head>
55 </head>
56 <body>
56 <body>
57
57
58 <div class="container">
58 <div class="container">
59 <div class="menu">
59 <div class="menu">
60 <div class="logo">
60 <div class="logo">
61 <a href="http://mercurial.selenic.com/">
61 <a href="http://mercurial.selenic.com/">
62 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
62 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
63 </div>
63 </div>
64 <ul>
64 <ul>
65 <li><a href="/shortlog">log</a></li>
65 <li><a href="/shortlog">log</a></li>
66 <li><a href="/graph">graph</a></li>
66 <li><a href="/graph">graph</a></li>
67 <li><a href="/tags">tags</a></li>
67 <li><a href="/tags">tags</a></li>
68 <li><a href="/bookmarks">bookmarks</a></li>
68 <li><a href="/bookmarks">bookmarks</a></li>
69 <li><a href="/branches">branches</a></li>
69 <li><a href="/branches">branches</a></li>
70 </ul>
71 <ul>
70 <li><a href="/help">help</a></li>
72 <li><a href="/help">help</a></li>
71 </ul>
73 </ul>
72 </div>
74 </div>
73
75
74 <div class="main">
76 <div class="main">
75
77
76 <h2><a href="/">test</a></h2>
78 <h2><a href="/">test</a></h2>
77 <h3>error</h3>
79 <h3>error</h3>
78
80
79 <form class="search" action="/log">
81 <form class="search" action="/log">
80
82
81 <p><input name="rev" id="search1" type="text" size="30"></p>
83 <p><input name="rev" id="search1" type="text" size="30"></p>
82 <div id="hint">find changesets by author, revision,
84 <div id="hint">find changesets by author, revision,
83 files, or words in the commit message</div>
85 files, or words in the commit message</div>
84 </form>
86 </form>
85
87
86 <div class="description">
88 <div class="description">
87 <p>
89 <p>
88 An error occurred while processing your request:
90 An error occurred while processing your request:
89 </p>
91 </p>
90 <p>
92 <p>
91 Not Found
93 Not Found
92 </p>
94 </p>
93 </div>
95 </div>
94 </div>
96 </div>
95 </div>
97 </div>
96
98
97 <script type="text/javascript">process_dates()</script>
99 <script type="text/javascript">process_dates()</script>
98
100
99
101
100 </body>
102 </body>
101 </html>
103 </html>
102
104
103 [1]
105 [1]
104
106
105 should give a 404 - bad revision
107 should give a 404 - bad revision
106
108
107 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/spam/foo?style=raw'
109 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/spam/foo?style=raw'
108 404 Not Found
110 404 Not Found
109
111
110
112
111 error: revision not found: spam
113 error: revision not found: spam
112 [1]
114 [1]
113
115
114 should give a 400 - bad command
116 should give a 400 - bad command
115
117
116 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/foo?cmd=spam&style=raw'
118 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/foo?cmd=spam&style=raw'
117 400* (glob)
119 400* (glob)
118
120
119
121
120 error: no such method: spam
122 error: no such method: spam
121 [1]
123 [1]
122
124
123 should give a 404 - file does not exist
125 should give a 404 - file does not exist
124
126
125 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/bork?style=raw'
127 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/bork?style=raw'
126 404 Not Found
128 404 Not Found
127
129
128
130
129 error: bork@2ef0ac749a14: not found in manifest
131 error: bork@2ef0ac749a14: not found in manifest
130 [1]
132 [1]
131 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/bork'
133 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/bork'
132 404 Not Found
134 404 Not Found
133
135
134 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
136 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
135 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
137 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
136 <head>
138 <head>
137 <link rel="icon" href="/static/hgicon.png" type="image/png" />
139 <link rel="icon" href="/static/hgicon.png" type="image/png" />
138 <meta name="robots" content="index, nofollow" />
140 <meta name="robots" content="index, nofollow" />
139 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
141 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
140 <script type="text/javascript" src="/static/mercurial.js"></script>
142 <script type="text/javascript" src="/static/mercurial.js"></script>
141
143
142 <title>test: error</title>
144 <title>test: error</title>
143 </head>
145 </head>
144 <body>
146 <body>
145
147
146 <div class="container">
148 <div class="container">
147 <div class="menu">
149 <div class="menu">
148 <div class="logo">
150 <div class="logo">
149 <a href="http://mercurial.selenic.com/">
151 <a href="http://mercurial.selenic.com/">
150 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
152 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
151 </div>
153 </div>
152 <ul>
154 <ul>
153 <li><a href="/shortlog">log</a></li>
155 <li><a href="/shortlog">log</a></li>
154 <li><a href="/graph">graph</a></li>
156 <li><a href="/graph">graph</a></li>
155 <li><a href="/tags">tags</a></li>
157 <li><a href="/tags">tags</a></li>
156 <li><a href="/bookmarks">bookmarks</a></li>
158 <li><a href="/bookmarks">bookmarks</a></li>
157 <li><a href="/branches">branches</a></li>
159 <li><a href="/branches">branches</a></li>
160 </ul>
161 <ul>
158 <li><a href="/help">help</a></li>
162 <li><a href="/help">help</a></li>
159 </ul>
163 </ul>
160 </div>
164 </div>
161
165
162 <div class="main">
166 <div class="main">
163
167
164 <h2><a href="/">test</a></h2>
168 <h2><a href="/">test</a></h2>
165 <h3>error</h3>
169 <h3>error</h3>
166
170
167 <form class="search" action="/log">
171 <form class="search" action="/log">
168
172
169 <p><input name="rev" id="search1" type="text" size="30"></p>
173 <p><input name="rev" id="search1" type="text" size="30"></p>
170 <div id="hint">find changesets by author, revision,
174 <div id="hint">find changesets by author, revision,
171 files, or words in the commit message</div>
175 files, or words in the commit message</div>
172 </form>
176 </form>
173
177
174 <div class="description">
178 <div class="description">
175 <p>
179 <p>
176 An error occurred while processing your request:
180 An error occurred while processing your request:
177 </p>
181 </p>
178 <p>
182 <p>
179 bork@2ef0ac749a14: not found in manifest
183 bork@2ef0ac749a14: not found in manifest
180 </p>
184 </p>
181 </div>
185 </div>
182 </div>
186 </div>
183 </div>
187 </div>
184
188
185 <script type="text/javascript">process_dates()</script>
189 <script type="text/javascript">process_dates()</script>
186
190
187
191
188 </body>
192 </body>
189 </html>
193 </html>
190
194
191 [1]
195 [1]
192 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'diff/tip/bork?style=raw'
196 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'diff/tip/bork?style=raw'
193 404 Not Found
197 404 Not Found
194
198
195
199
196 error: bork@2ef0ac749a14: not found in manifest
200 error: bork@2ef0ac749a14: not found in manifest
197 [1]
201 [1]
198
202
199 try bad style
203 try bad style
200
204
201 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/?style=foobar')
205 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/?style=foobar')
202 200 Script output follows
206 200 Script output follows
203
207
204 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
208 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
205 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
209 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
206 <head>
210 <head>
207 <link rel="icon" href="/static/hgicon.png" type="image/png" />
211 <link rel="icon" href="/static/hgicon.png" type="image/png" />
208 <meta name="robots" content="index, nofollow" />
212 <meta name="robots" content="index, nofollow" />
209 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
213 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
210 <script type="text/javascript" src="/static/mercurial.js"></script>
214 <script type="text/javascript" src="/static/mercurial.js"></script>
211
215
212 <title>test: 2ef0ac749a14 /</title>
216 <title>test: 2ef0ac749a14 /</title>
213 </head>
217 </head>
214 <body>
218 <body>
215
219
216 <div class="container">
220 <div class="container">
217 <div class="menu">
221 <div class="menu">
218 <div class="logo">
222 <div class="logo">
219 <a href="http://mercurial.selenic.com/">
223 <a href="http://mercurial.selenic.com/">
220 <img src="/static/hglogo.png" alt="mercurial" /></a>
224 <img src="/static/hglogo.png" alt="mercurial" /></a>
221 </div>
225 </div>
222 <ul>
226 <ul>
223 <li><a href="/shortlog/2ef0ac749a14">log</a></li>
227 <li><a href="/shortlog/2ef0ac749a14">log</a></li>
224 <li><a href="/graph/2ef0ac749a14">graph</a></li>
228 <li><a href="/graph/2ef0ac749a14">graph</a></li>
225 <li><a href="/tags">tags</a></li>
229 <li><a href="/tags">tags</a></li>
226 <li><a href="/bookmarks">bookmarks</a></li>
230 <li><a href="/bookmarks">bookmarks</a></li>
227 <li><a href="/branches">branches</a></li>
231 <li><a href="/branches">branches</a></li>
228 </ul>
232 </ul>
229 <ul>
233 <ul>
230 <li><a href="/rev/2ef0ac749a14">changeset</a></li>
234 <li><a href="/rev/2ef0ac749a14">changeset</a></li>
231 <li class="active">browse</li>
235 <li class="active">browse</li>
232 </ul>
236 </ul>
233 <ul>
237 <ul>
234
238
235 </ul>
239 </ul>
236 <ul>
240 <ul>
237 <li><a href="/help">help</a></li>
241 <li><a href="/help">help</a></li>
238 </ul>
242 </ul>
239 </div>
243 </div>
240
244
241 <div class="main">
245 <div class="main">
242 <h2><a href="/">test</a></h2>
246 <h2><a href="/">test</a></h2>
243 <h3>directory / @ 0:2ef0ac749a14 <span class="tag">tip</span> </h3>
247 <h3>directory / @ 0:2ef0ac749a14 <span class="tag">tip</span> </h3>
244
248
245 <form class="search" action="/log">
249 <form class="search" action="/log">
246
250
247 <p><input name="rev" id="search1" type="text" size="30" /></p>
251 <p><input name="rev" id="search1" type="text" size="30" /></p>
248 <div id="hint">find changesets by author, revision,
252 <div id="hint">find changesets by author, revision,
249 files, or words in the commit message</div>
253 files, or words in the commit message</div>
250 </form>
254 </form>
251
255
252 <table class="bigtable">
256 <table class="bigtable">
253 <tr>
257 <tr>
254 <th class="name">name</th>
258 <th class="name">name</th>
255 <th class="size">size</th>
259 <th class="size">size</th>
256 <th class="permissions">permissions</th>
260 <th class="permissions">permissions</th>
257 </tr>
261 </tr>
258 <tr class="fileline parity0">
262 <tr class="fileline parity0">
259 <td class="name"><a href="/file/2ef0ac749a14/">[up]</a></td>
263 <td class="name"><a href="/file/2ef0ac749a14/">[up]</a></td>
260 <td class="size"></td>
264 <td class="size"></td>
261 <td class="permissions">drwxr-xr-x</td>
265 <td class="permissions">drwxr-xr-x</td>
262 </tr>
266 </tr>
263
267
264 <tr class="fileline parity1">
268 <tr class="fileline parity1">
265 <td class="name">
269 <td class="name">
266 <a href="/file/2ef0ac749a14/da">
270 <a href="/file/2ef0ac749a14/da">
267 <img src="/static/coal-folder.png" alt="dir."/> da/
271 <img src="/static/coal-folder.png" alt="dir."/> da/
268 </a>
272 </a>
269 <a href="/file/2ef0ac749a14/da/">
273 <a href="/file/2ef0ac749a14/da/">
270
274
271 </a>
275 </a>
272 </td>
276 </td>
273 <td class="size"></td>
277 <td class="size"></td>
274 <td class="permissions">drwxr-xr-x</td>
278 <td class="permissions">drwxr-xr-x</td>
275 </tr>
279 </tr>
276
280
277 <tr class="fileline parity0">
281 <tr class="fileline parity0">
278 <td class="filename">
282 <td class="filename">
279 <a href="/file/2ef0ac749a14/foo">
283 <a href="/file/2ef0ac749a14/foo">
280 <img src="/static/coal-file.png" alt="file"/> foo
284 <img src="/static/coal-file.png" alt="file"/> foo
281 </a>
285 </a>
282 </td>
286 </td>
283 <td class="size">4</td>
287 <td class="size">4</td>
284 <td class="permissions">-rw-r--r--</td>
288 <td class="permissions">-rw-r--r--</td>
285 </tr>
289 </tr>
286 </table>
290 </table>
287 </div>
291 </div>
288 </div>
292 </div>
289 <script type="text/javascript">process_dates()</script>
293 <script type="text/javascript">process_dates()</script>
290
294
291
295
292 </body>
296 </body>
293 </html>
297 </html>
294
298
295
299
296 stop and restart
300 stop and restart
297
301
298 $ "$TESTDIR/killdaemons.py"
302 $ "$TESTDIR/killdaemons.py"
299 $ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log
303 $ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log
300 $ cat hg.pid >> $DAEMON_PIDS
304 $ cat hg.pid >> $DAEMON_PIDS
301
305
302 Test the access/error files are opened in append mode
306 Test the access/error files are opened in append mode
303
307
304 $ python -c "print len(file('access.log').readlines()), 'log lines written'"
308 $ python -c "print len(file('access.log').readlines()), 'log lines written'"
305 10 log lines written
309 10 log lines written
306
310
307 static file
311 static file
308
312
309 $ "$TESTDIR/get-with-headers.py" --twice localhost:$HGPORT 'static/style-gitweb.css'
313 $ "$TESTDIR/get-with-headers.py" --twice localhost:$HGPORT 'static/style-gitweb.css'
310 200 Script output follows
314 200 Script output follows
311
315
312 body { font-family: sans-serif; font-size: 12px; margin:0px; border:solid #d9d8d1; border-width:1px; margin:10px; }
316 body { font-family: sans-serif; font-size: 12px; margin:0px; border:solid #d9d8d1; border-width:1px; margin:10px; }
313 a { color:#0000cc; }
317 a { color:#0000cc; }
314 a:hover, a:visited, a:active { color:#880000; }
318 a:hover, a:visited, a:active { color:#880000; }
315 div.page_header { height:25px; padding:8px; font-size:18px; font-weight:bold; background-color:#d9d8d1; }
319 div.page_header { height:25px; padding:8px; font-size:18px; font-weight:bold; background-color:#d9d8d1; }
316 div.page_header a:visited { color:#0000cc; }
320 div.page_header a:visited { color:#0000cc; }
317 div.page_header a:hover { color:#880000; }
321 div.page_header a:hover { color:#880000; }
318 div.page_nav { padding:8px; }
322 div.page_nav { padding:8px; }
319 div.page_nav a:visited { color:#0000cc; }
323 div.page_nav a:visited { color:#0000cc; }
320 div.page_path { padding:8px; border:solid #d9d8d1; border-width:0px 0px 1px}
324 div.page_path { padding:8px; border:solid #d9d8d1; border-width:0px 0px 1px}
321 div.page_footer { padding:4px 8px; background-color: #d9d8d1; }
325 div.page_footer { padding:4px 8px; background-color: #d9d8d1; }
322 div.page_footer_text { float:left; color:#555555; font-style:italic; }
326 div.page_footer_text { float:left; color:#555555; font-style:italic; }
323 div.page_body { padding:8px; }
327 div.page_body { padding:8px; }
324 div.title, a.title {
328 div.title, a.title {
325 display:block; padding:6px 8px;
329 display:block; padding:6px 8px;
326 font-weight:bold; background-color:#edece6; text-decoration:none; color:#000000;
330 font-weight:bold; background-color:#edece6; text-decoration:none; color:#000000;
327 }
331 }
328 a.title:hover { background-color: #d9d8d1; }
332 a.title:hover { background-color: #d9d8d1; }
329 div.title_text { padding:6px 0px; border: solid #d9d8d1; border-width:0px 0px 1px; }
333 div.title_text { padding:6px 0px; border: solid #d9d8d1; border-width:0px 0px 1px; }
330 div.log_body { padding:8px 8px 8px 150px; }
334 div.log_body { padding:8px 8px 8px 150px; }
331 .age { white-space:nowrap; }
335 .age { white-space:nowrap; }
332 span.age { position:relative; float:left; width:142px; font-style:italic; }
336 span.age { position:relative; float:left; width:142px; font-style:italic; }
333 div.log_link {
337 div.log_link {
334 padding:0px 8px;
338 padding:0px 8px;
335 font-size:10px; font-family:sans-serif; font-style:normal;
339 font-size:10px; font-family:sans-serif; font-style:normal;
336 position:relative; float:left; width:136px;
340 position:relative; float:left; width:136px;
337 }
341 }
338 div.list_head { padding:6px 8px 4px; border:solid #d9d8d1; border-width:1px 0px 0px; font-style:italic; }
342 div.list_head { padding:6px 8px 4px; border:solid #d9d8d1; border-width:1px 0px 0px; font-style:italic; }
339 a.list { text-decoration:none; color:#000000; }
343 a.list { text-decoration:none; color:#000000; }
340 a.list:hover { text-decoration:underline; color:#880000; }
344 a.list:hover { text-decoration:underline; color:#880000; }
341 table { padding:8px 4px; }
345 table { padding:8px 4px; }
342 th { padding:2px 5px; font-size:12px; text-align:left; }
346 th { padding:2px 5px; font-size:12px; text-align:left; }
343 tr.light:hover, .parity0:hover { background-color:#edece6; }
347 tr.light:hover, .parity0:hover { background-color:#edece6; }
344 tr.dark, .parity1 { background-color:#f6f6f0; }
348 tr.dark, .parity1 { background-color:#f6f6f0; }
345 tr.dark:hover, .parity1:hover { background-color:#edece6; }
349 tr.dark:hover, .parity1:hover { background-color:#edece6; }
346 td { padding:2px 5px; font-size:12px; vertical-align:top; }
350 td { padding:2px 5px; font-size:12px; vertical-align:top; }
347 td.closed { background-color: #99f; }
351 td.closed { background-color: #99f; }
348 td.link { padding:2px 5px; font-family:sans-serif; font-size:10px; }
352 td.link { padding:2px 5px; font-family:sans-serif; font-size:10px; }
349 td.indexlinks { white-space: nowrap; }
353 td.indexlinks { white-space: nowrap; }
350 td.indexlinks a {
354 td.indexlinks a {
351 padding: 2px 5px; line-height: 10px;
355 padding: 2px 5px; line-height: 10px;
352 border: 1px solid;
356 border: 1px solid;
353 color: #ffffff; background-color: #7777bb;
357 color: #ffffff; background-color: #7777bb;
354 border-color: #aaaadd #333366 #333366 #aaaadd;
358 border-color: #aaaadd #333366 #333366 #aaaadd;
355 font-weight: bold; text-align: center; text-decoration: none;
359 font-weight: bold; text-align: center; text-decoration: none;
356 font-size: 10px;
360 font-size: 10px;
357 }
361 }
358 td.indexlinks a:hover { background-color: #6666aa; }
362 td.indexlinks a:hover { background-color: #6666aa; }
359 div.pre { font-family:monospace; font-size:12px; white-space:pre; }
363 div.pre { font-family:monospace; font-size:12px; white-space:pre; }
360 div.diff_info { font-family:monospace; color:#000099; background-color:#edece6; font-style:italic; }
364 div.diff_info { font-family:monospace; color:#000099; background-color:#edece6; font-style:italic; }
361 div.index_include { border:solid #d9d8d1; border-width:0px 0px 1px; padding:12px 8px; }
365 div.index_include { border:solid #d9d8d1; border-width:0px 0px 1px; padding:12px 8px; }
362 div.search { margin:4px 8px; position:absolute; top:56px; right:12px }
366 div.search { margin:4px 8px; position:absolute; top:56px; right:12px }
363 .linenr { color:#999999; text-decoration:none }
367 .linenr { color:#999999; text-decoration:none }
364 div.rss_logo { float: right; white-space: nowrap; }
368 div.rss_logo { float: right; white-space: nowrap; }
365 div.rss_logo a {
369 div.rss_logo a {
366 padding:3px 6px; line-height:10px;
370 padding:3px 6px; line-height:10px;
367 border:1px solid; border-color:#fcc7a5 #7d3302 #3e1a01 #ff954e;
371 border:1px solid; border-color:#fcc7a5 #7d3302 #3e1a01 #ff954e;
368 color:#ffffff; background-color:#ff6600;
372 color:#ffffff; background-color:#ff6600;
369 font-weight:bold; font-family:sans-serif; font-size:10px;
373 font-weight:bold; font-family:sans-serif; font-size:10px;
370 text-align:center; text-decoration:none;
374 text-align:center; text-decoration:none;
371 }
375 }
372 div.rss_logo a:hover { background-color:#ee5500; }
376 div.rss_logo a:hover { background-color:#ee5500; }
373 pre { margin: 0; }
377 pre { margin: 0; }
374 span.logtags span {
378 span.logtags span {
375 padding: 0px 4px;
379 padding: 0px 4px;
376 font-size: 10px;
380 font-size: 10px;
377 font-weight: normal;
381 font-weight: normal;
378 border: 1px solid;
382 border: 1px solid;
379 background-color: #ffaaff;
383 background-color: #ffaaff;
380 border-color: #ffccff #ff00ee #ff00ee #ffccff;
384 border-color: #ffccff #ff00ee #ff00ee #ffccff;
381 }
385 }
382 span.logtags span.tagtag {
386 span.logtags span.tagtag {
383 background-color: #ffffaa;
387 background-color: #ffffaa;
384 border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
388 border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
385 }
389 }
386 span.logtags span.branchtag {
390 span.logtags span.branchtag {
387 background-color: #aaffaa;
391 background-color: #aaffaa;
388 border-color: #ccffcc #00cc33 #00cc33 #ccffcc;
392 border-color: #ccffcc #00cc33 #00cc33 #ccffcc;
389 }
393 }
390 span.logtags span.inbranchtag {
394 span.logtags span.inbranchtag {
391 background-color: #d5dde6;
395 background-color: #d5dde6;
392 border-color: #e3ecf4 #9398f4 #9398f4 #e3ecf4;
396 border-color: #e3ecf4 #9398f4 #9398f4 #e3ecf4;
393 }
397 }
394 span.logtags span.bookmarktag {
398 span.logtags span.bookmarktag {
395 background-color: #afdffa;
399 background-color: #afdffa;
396 border-color: #ccecff #46ace6 #46ace6 #ccecff;
400 border-color: #ccecff #46ace6 #46ace6 #ccecff;
397 }
401 }
398
402
399 /* Graph */
403 /* Graph */
400 div#wrapper {
404 div#wrapper {
401 position: relative;
405 position: relative;
402 margin: 0;
406 margin: 0;
403 padding: 0;
407 padding: 0;
404 margin-top: 3px;
408 margin-top: 3px;
405 }
409 }
406
410
407 canvas {
411 canvas {
408 position: absolute;
412 position: absolute;
409 z-index: 5;
413 z-index: 5;
410 top: -0.9em;
414 top: -0.9em;
411 margin: 0;
415 margin: 0;
412 }
416 }
413
417
414 ul#nodebgs {
418 ul#nodebgs {
415 list-style: none inside none;
419 list-style: none inside none;
416 padding: 0;
420 padding: 0;
417 margin: 0;
421 margin: 0;
418 top: -0.7em;
422 top: -0.7em;
419 }
423 }
420
424
421 ul#graphnodes li, ul#nodebgs li {
425 ul#graphnodes li, ul#nodebgs li {
422 height: 39px;
426 height: 39px;
423 }
427 }
424
428
425 ul#graphnodes {
429 ul#graphnodes {
426 position: absolute;
430 position: absolute;
427 z-index: 10;
431 z-index: 10;
428 top: -0.8em;
432 top: -0.8em;
429 list-style: none inside none;
433 list-style: none inside none;
430 padding: 0;
434 padding: 0;
431 }
435 }
432
436
433 ul#graphnodes li .info {
437 ul#graphnodes li .info {
434 display: block;
438 display: block;
435 font-size: 100%;
439 font-size: 100%;
436 position: relative;
440 position: relative;
437 top: -3px;
441 top: -3px;
438 font-style: italic;
442 font-style: italic;
439 }
443 }
440
444
441 /* Comparison */
445 /* Comparison */
442 .legend {
446 .legend {
443 padding: 1.5% 0 1.5% 0;
447 padding: 1.5% 0 1.5% 0;
444 }
448 }
445
449
446 .legendinfo {
450 .legendinfo {
447 border: 1px solid #d9d8d1;
451 border: 1px solid #d9d8d1;
448 font-size: 80%;
452 font-size: 80%;
449 text-align: center;
453 text-align: center;
450 padding: 0.5%;
454 padding: 0.5%;
451 }
455 }
452
456
453 .equal {
457 .equal {
454 background-color: #ffffff;
458 background-color: #ffffff;
455 }
459 }
456
460
457 .delete {
461 .delete {
458 background-color: #faa;
462 background-color: #faa;
459 color: #333;
463 color: #333;
460 }
464 }
461
465
462 .insert {
466 .insert {
463 background-color: #ffa;
467 background-color: #ffa;
464 }
468 }
465
469
466 .replace {
470 .replace {
467 background-color: #e8e8e8;
471 background-color: #e8e8e8;
468 }
472 }
469
473
470 .comparison {
474 .comparison {
471 overflow-x: auto;
475 overflow-x: auto;
472 }
476 }
473
477
474 .header th {
478 .header th {
475 text-align: center;
479 text-align: center;
476 }
480 }
477
481
478 .block {
482 .block {
479 border-top: 1px solid #d9d8d1;
483 border-top: 1px solid #d9d8d1;
480 }
484 }
481 304 Not Modified
485 304 Not Modified
482
486
483
487
484 errors
488 errors
485
489
486 $ cat errors.log
490 $ cat errors.log
487
491
488 $ cd ..
492 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now