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