##// END OF EJS Templates
hgweb: make stripes in directory view with CSS
Alexander Plavin -
r19447:182942b3 default
parent child Browse files
Show More
@@ -1,58 +1,60
1 1 {header}
2 2 <title>{repo|escape}: {node|short} {path|escape}</title>
3 3 </head>
4 4 <body>
5 5
6 6 <div class="container">
7 7 <div class="menu">
8 8 <div class="logo">
9 9 <a href="{logourl}">
10 10 <img src="{staticurl|urlescape}{logoimg}" alt="mercurial" /></a>
11 11 </div>
12 12 <ul>
13 13 <li><a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
14 14 <li><a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
15 15 <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
16 16 <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
17 17 <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
18 18 </ul>
19 19 <ul>
20 20 <li><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
21 21 <li class="active">browse</li>
22 22 </ul>
23 23 <ul>
24 24 {archives%archiveentry}
25 25 </ul>
26 26 <ul>
27 27 <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
28 28 </ul>
29 29 </div>
30 30
31 31 <div class="main">
32 32 <h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
33 33 <h3>directory {path|escape} @ {rev}:{node|short} {tags%changelogtag}</h3>
34 34
35 35 <form class="search" action="{url|urlescape}log">
36 36 {sessionvars%hiddenformentry}
37 37 <p><input name="rev" id="search1" type="text" size="30" /></p>
38 38 <div id="hint">find changesets by author, revision,
39 39 files, or words in the commit message</div>
40 40 </form>
41 41
42 42 <table class="bigtable">
43 43 <tr>
44 44 <th class="name">name</th>
45 45 <th class="size">size</th>
46 46 <th class="permissions">permissions</th>
47 47 </tr>
48 <tr class="fileline parity{upparity}">
48 <tbody class="stripes2">
49 <tr class="fileline">
49 50 <td class="name"><a href="{url|urlescape}file/{node|short}{up|urlescape}{sessionvars%urlparameter}">[up]</a></td>
50 51 <td class="size"></td>
51 52 <td class="permissions">drwxr-xr-x</td>
52 53 </tr>
53 54 {dentries%direntry}
54 55 {fentries%fileentry}
56 </tbody>
55 57 </table>
56 58 </div>
57 59 </div>
58 60 {footer}
@@ -1,245 +1,245
1 1 default = 'shortlog'
2 2
3 3 mimetype = 'text/html; charset={encoding}'
4 4 header = header.tmpl
5 5 footer = footer.tmpl
6 6 search = search.tmpl
7 7
8 8 changelog = shortlog.tmpl
9 9 shortlog = shortlog.tmpl
10 10 shortlogentry = shortlogentry.tmpl
11 11 graph = graph.tmpl
12 12 help = help.tmpl
13 13 helptopics = helptopics.tmpl
14 14
15 15 helpentry = '
16 16 <tr><td>
17 17 <a href="{url|urlescape}help/{topic|escape}{sessionvars%urlparameter}">
18 18 {topic|escape}
19 19 </a>
20 20 </td><td>
21 21 {summary|escape}
22 22 </td></tr>'
23 23
24 24 naventry = '<a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
25 25 navshortentry = '<a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
26 26 navgraphentry = '<a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
27 27 filenaventry = '<a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
28 28 filedifflink = '<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
29 29 filenodelink = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
30 30 filenolink = '{file|escape} '
31 31 fileellipses = '...'
32 32 diffstatlink = diffstat.tmpl
33 33 diffstatnolink = diffstat.tmpl
34 34 changelogentry = shortlogentry.tmpl
35 35 searchentry = shortlogentry.tmpl
36 36 changeset = changeset.tmpl
37 37 manifest = manifest.tmpl
38 38
39 39 nav = '{before%naventry} {after%naventry}'
40 40 navshort = '{before%navshortentry}{after%navshortentry}'
41 41 navgraph = '{before%navgraphentry}{after%navgraphentry}'
42 42 filenav = '{before%filenaventry}{after%filenaventry}'
43 43
44 44 direntry = '
45 <tr class="fileline parity{parity}">
45 <tr class="fileline">
46 46 <td class="name">
47 47 <a href="{url|urlescape}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">
48 48 <img src="{staticurl|urlescape}coal-folder.png" alt="dir."/> {basename|escape}/
49 49 </a>
50 50 <a href="{url|urlescape}file/{node|short}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">
51 51 {emptydirs|escape}
52 52 </a>
53 53 </td>
54 54 <td class="size"></td>
55 55 <td class="permissions">drwxr-xr-x</td>
56 56 </tr>'
57 57
58 58 fileentry = '
59 <tr class="fileline parity{parity}">
59 <tr class="fileline">
60 60 <td class="filename">
61 61 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
62 62 <img src="{staticurl|urlescape}coal-file.png" alt="file"/> {basename|escape}
63 63 </a>
64 64 </td>
65 65 <td class="size">{size}</td>
66 66 <td class="permissions">{permissions|permissions}</td>
67 67 </tr>'
68 68
69 69 filerevision = filerevision.tmpl
70 70 fileannotate = fileannotate.tmpl
71 71 filediff = filediff.tmpl
72 72 filecomparison = filecomparison.tmpl
73 73 filelog = filelog.tmpl
74 74 fileline = '
75 75 <span id="{lineid}">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>'
76 76 filelogentry = filelogentry.tmpl
77 77
78 78 annotateline = '
79 79 <tr class="parity{parity}">
80 80 <td class="annotate">
81 81 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"
82 82 title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
83 83 </td>
84 84 <td class="source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</td>
85 85 </tr>'
86 86
87 87 diffblock = '<div class="bottomline inc-lineno"><pre class="sourcelines wrap">{lines}</pre></div>'
88 88 difflineplus = '
89 89 <span id="{lineid}" class="plusline">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>'
90 90 difflineminus = '
91 91 <span id="{lineid}" class="minusline">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>'
92 92 difflineat = '
93 93 <span id="{lineid}" class="atline">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>'
94 94 diffline = '
95 95 <span id="{lineid}">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>'
96 96
97 97 comparisonblock ='
98 98 <tbody class="block">
99 99 {lines}
100 100 </tbody>'
101 101 comparisonline = '
102 102 <tr>
103 103 <td class="source {type}"><a href="#{lineid}" id="{lineid}">{leftlinenumber}</a> {leftline|escape}</td>
104 104 <td class="source {type}"><a href="#{lineid}" id="{lineid}">{rightlinenumber}</a> {rightline|escape}</td>
105 105 </tr>'
106 106
107 107 changelogparent = '
108 108 <tr>
109 109 <th class="parent">parent {rev}:</th>
110 110 <td class="parent"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
111 111 </tr>'
112 112
113 113 changesetparent = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> '
114 114
115 115 difffrom = '<a href="{url|urlescape}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">{node|short}</a> '
116 116
117 117 filerevparent = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rename%filerename}{node|short}</a> '
118 118 filerevchild = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> '
119 119
120 120 filerename = '{file|escape}@'
121 121 filelogrename = '
122 122 <span class="base">
123 123 base
124 124 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
125 125 {file|escape}@{node|short}
126 126 </a>
127 127 </span>'
128 128 fileannotateparent = '
129 129 <tr>
130 130 <td class="metatag">parent:</td>
131 131 <td>
132 132 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
133 133 {rename%filerename}{node|short}
134 134 </a>
135 135 </td>
136 136 </tr>'
137 137 changesetchild = ' <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
138 138 changelogchild = '
139 139 <tr>
140 140 <th class="child">child</th>
141 141 <td class="child">
142 142 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
143 143 {node|short}
144 144 </a>
145 145 </td>
146 146 </tr>'
147 147 fileannotatechild = '
148 148 <tr>
149 149 <td class="metatag">child:</td>
150 150 <td>
151 151 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
152 152 {node|short}
153 153 </a>
154 154 </td>
155 155 </tr>'
156 156 tags = tags.tmpl
157 157 tagentry = '
158 158 <tr class="tagEntry parity{parity}">
159 159 <td>
160 160 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
161 161 {tag|escape}
162 162 </a>
163 163 </td>
164 164 <td class="node">
165 165 {node|short}
166 166 </td>
167 167 </tr>'
168 168 bookmarks = bookmarks.tmpl
169 169 bookmarkentry = '
170 170 <tr class="tagEntry">
171 171 <td>
172 172 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
173 173 {bookmark|escape}
174 174 </a>
175 175 </td>
176 176 <td class="node">
177 177 {node|short}
178 178 </td>
179 179 </tr>'
180 180 branches = branches.tmpl
181 181 branchentry = '
182 182 <tr class="tagEntry parity{parity}">
183 183 <td>
184 184 <a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">
185 185 {branch|escape}
186 186 </a>
187 187 </td>
188 188 <td class="node">
189 189 {node|short}
190 190 </td>
191 191 </tr>'
192 192 changelogtag = '<span class="tag">{name|escape}</span> '
193 193 changesettag = '<span class="tag">{tag|escape}</span> '
194 194 changesetbookmark = '<span class="tag">{bookmark|escape}</span> '
195 195 changelogbranchhead = '<span class="branchhead">{name|escape}</span> '
196 196 changelogbranchname = '<span class="branchname">{name|escape}</span> '
197 197
198 198 filediffparent = '
199 199 <tr>
200 200 <th class="parent">parent {rev}:</th>
201 201 <td class="parent"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
202 202 </tr>'
203 203 filelogparent = '
204 204 <tr>
205 205 <th>parent {rev}:</th>
206 206 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
207 207 </tr>'
208 208 filediffchild = '
209 209 <tr>
210 210 <th class="child">child {rev}:</th>
211 211 <td class="child"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
212 212 </td>
213 213 </tr>'
214 214 filelogchild = '
215 215 <tr>
216 216 <th>child {rev}:</th>
217 217 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
218 218 </tr>'
219 219
220 220 indexentry = '
221 221 <tr class="parity{parity}">
222 222 <td><a href="{url|urlescape}{sessionvars%urlparameter}">{name|escape}</a></td>
223 223 <td>{description}</td>
224 224 <td>{contact|obfuscate}</td>
225 225 <td class="age">{lastchange|rfc822date}</td>
226 226 <td class="indexlinks">{archives%indexarchiveentry}</td>
227 227 <td>
228 228 {if(isdirectory, '',
229 229 '<a href="{url|urlescape}atom-log" title="subscribe to repository atom feed">
230 230 <img class="atom-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="subscribe to repository atom feed">
231 231 </a>'
232 232 )}
233 233 </td>
234 234 </tr>\n'
235 235 indexarchiveentry = '<a href="{url|urlescape}archive/{node|short}{extension|urlescape}">&nbsp;&darr;{type|escape}</a>'
236 236 index = index.tmpl
237 237 archiveentry = '
238 238 <li>
239 239 <a href="{url|urlescape}archive/{node|short}{extension|urlescape}{ifeq(path,'/','',path|urlescape)}">{type|escape}</a>
240 240 </li>'
241 241 notfound = notfound.tmpl
242 242 error = error.tmpl
243 243 urlparameter = '{separator}{name}={value|urlescape}'
244 244 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
245 245 breadcrumb = '&gt; <a href="{url|urlescape}">{name|escape}</a> '
@@ -1,144 +1,146
1 1 $ "$TESTDIR/hghave" serve || exit 80
2 2
3 3 Test chains of near empty directories, terminating 3 different ways:
4 4 - a1: file at level 4 (deepest)
5 5 - b1: two dirs at level 3
6 6 - e1: file at level 2
7 7
8 8 Set up the repo
9 9
10 10 $ hg init test
11 11 $ cd test
12 12 $ mkdir -p a1/a2/a3/a4
13 13 $ mkdir -p b1/b2/b3/b4
14 14 $ mkdir -p b1/b2/c3/c4
15 15 $ mkdir -p d1/d2/d3/d4
16 16 $ echo foo > a1/a2/a3/a4/foo
17 17 $ echo foo > b1/b2/b3/b4/foo
18 18 $ echo foo > b1/b2/c3/c4/foo
19 19 $ echo foo > d1/d2/d3/d4/foo
20 20 $ echo foo > d1/d2/foo
21 21 $ hg ci -Ama
22 22 adding a1/a2/a3/a4/foo
23 23 adding b1/b2/b3/b4/foo
24 24 adding b1/b2/c3/c4/foo
25 25 adding d1/d2/d3/d4/foo
26 26 adding d1/d2/foo
27 27 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -E errors.log
28 28 $ cat hg.pid >> $DAEMON_PIDS
29 29
30 30 manifest with descending
31 31
32 32 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file'
33 33 200 Script output follows
34 34
35 35 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
36 36 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
37 37 <head>
38 38 <link rel="icon" href="/static/hgicon.png" type="image/png" />
39 39 <meta name="robots" content="index, nofollow" />
40 40 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
41 41 <script type="text/javascript" src="/static/mercurial.js"></script>
42 42
43 43 <title>test: 9087c84a0f5d /</title>
44 44 </head>
45 45 <body>
46 46
47 47 <div class="container">
48 48 <div class="menu">
49 49 <div class="logo">
50 50 <a href="http://mercurial.selenic.com/">
51 51 <img src="/static/hglogo.png" alt="mercurial" /></a>
52 52 </div>
53 53 <ul>
54 54 <li><a href="/shortlog/9087c84a0f5d">log</a></li>
55 55 <li><a href="/graph/9087c84a0f5d">graph</a></li>
56 56 <li><a href="/tags">tags</a></li>
57 57 <li><a href="/bookmarks">bookmarks</a></li>
58 58 <li><a href="/branches">branches</a></li>
59 59 </ul>
60 60 <ul>
61 61 <li><a href="/rev/9087c84a0f5d">changeset</a></li>
62 62 <li class="active">browse</li>
63 63 </ul>
64 64 <ul>
65 65
66 66 </ul>
67 67 <ul>
68 68 <li><a href="/help">help</a></li>
69 69 </ul>
70 70 </div>
71 71
72 72 <div class="main">
73 73 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
74 74 <h3>directory / @ 0:9087c84a0f5d <span class="tag">tip</span> </h3>
75 75
76 76 <form class="search" action="/log">
77 77
78 78 <p><input name="rev" id="search1" type="text" size="30" /></p>
79 79 <div id="hint">find changesets by author, revision,
80 80 files, or words in the commit message</div>
81 81 </form>
82 82
83 83 <table class="bigtable">
84 84 <tr>
85 85 <th class="name">name</th>
86 86 <th class="size">size</th>
87 87 <th class="permissions">permissions</th>
88 88 </tr>
89 <tr class="fileline parity0">
89 <tbody class="stripes2">
90 <tr class="fileline">
90 91 <td class="name"><a href="/file/9087c84a0f5d/">[up]</a></td>
91 92 <td class="size"></td>
92 93 <td class="permissions">drwxr-xr-x</td>
93 94 </tr>
94 95
95 <tr class="fileline parity1">
96 <tr class="fileline">
96 97 <td class="name">
97 98 <a href="/file/9087c84a0f5d/a1">
98 99 <img src="/static/coal-folder.png" alt="dir."/> a1/
99 100 </a>
100 101 <a href="/file/9087c84a0f5d/a1/a2/a3/a4">
101 102 a2/a3/a4
102 103 </a>
103 104 </td>
104 105 <td class="size"></td>
105 106 <td class="permissions">drwxr-xr-x</td>
106 107 </tr>
107 <tr class="fileline parity0">
108 <tr class="fileline">
108 109 <td class="name">
109 110 <a href="/file/9087c84a0f5d/b1">
110 111 <img src="/static/coal-folder.png" alt="dir."/> b1/
111 112 </a>
112 113 <a href="/file/9087c84a0f5d/b1/b2">
113 114 b2
114 115 </a>
115 116 </td>
116 117 <td class="size"></td>
117 118 <td class="permissions">drwxr-xr-x</td>
118 119 </tr>
119 <tr class="fileline parity1">
120 <tr class="fileline">
120 121 <td class="name">
121 122 <a href="/file/9087c84a0f5d/d1">
122 123 <img src="/static/coal-folder.png" alt="dir."/> d1/
123 124 </a>
124 125 <a href="/file/9087c84a0f5d/d1/d2">
125 126 d2
126 127 </a>
127 128 </td>
128 129 <td class="size"></td>
129 130 <td class="permissions">drwxr-xr-x</td>
130 131 </tr>
131 132
133 </tbody>
132 134 </table>
133 135 </div>
134 136 </div>
135 137 <script type="text/javascript">process_dates()</script>
136 138
137 139
138 140 </body>
139 141 </html>
140 142
141 143
142 144 $ cat errors.log
143 145
144 146 $ cd ..
@@ -1,411 +1,413
1 1 $ "$TESTDIR/hghave" serve || exit 80
2 2
3 3 Some tests for hgweb in an empty repository
4 4
5 5 $ hg init test
6 6 $ cd test
7 7 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
8 8 $ cat hg.pid >> $DAEMON_PIDS
9 9 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'shortlog')
10 10 200 Script output follows
11 11
12 12 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
13 13 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
14 14 <head>
15 15 <link rel="icon" href="/static/hgicon.png" type="image/png" />
16 16 <meta name="robots" content="index, nofollow" />
17 17 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
18 18 <script type="text/javascript" src="/static/mercurial.js"></script>
19 19
20 20 <title>test: log</title>
21 21 <link rel="alternate" type="application/atom+xml"
22 22 href="/atom-log" title="Atom feed for test" />
23 23 <link rel="alternate" type="application/rss+xml"
24 24 href="/rss-log" title="RSS feed for test" />
25 25 </head>
26 26 <body>
27 27
28 28 <div class="container">
29 29 <div class="menu">
30 30 <div class="logo">
31 31 <a href="http://mercurial.selenic.com/">
32 32 <img src="/static/hglogo.png" alt="mercurial" /></a>
33 33 </div>
34 34 <ul>
35 35 <li class="active">log</li>
36 36 <li><a href="/graph/000000000000">graph</a></li>
37 37 <li><a href="/tags">tags</a></li>
38 38 <li><a href="/bookmarks">bookmarks</a></li>
39 39 <li><a href="/branches">branches</a></li>
40 40 </ul>
41 41 <ul>
42 42 <li><a href="/rev/000000000000">changeset</a></li>
43 43 <li><a href="/file/000000000000">browse</a></li>
44 44 </ul>
45 45 <ul>
46 46
47 47 </ul>
48 48 <ul>
49 49 <li><a href="/help">help</a></li>
50 50 </ul>
51 51 <p>
52 52 <div class="atom-logo">
53 53 <a href="/atom-log" title="subscribe to atom feed">
54 54 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="atom feed">
55 55 </a>
56 56 </div>
57 57 </div>
58 58
59 59 <div class="main">
60 60 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
61 61 <h3>log</h3>
62 62
63 63 <form class="search" action="/log">
64 64
65 65 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
66 66 <div id="hint">find changesets by author, revision,
67 67 files, or words in the commit message</div>
68 68 </form>
69 69
70 70 <div class="navigate">
71 71 <a href="/shortlog/-1?revcount=30">less</a>
72 72 <a href="/shortlog/-1?revcount=120">more</a>
73 73 | rev -1:
74 74 </div>
75 75
76 76 <table class="bigtable">
77 77 <tr>
78 78 <th class="age">age</th>
79 79 <th class="author">author</th>
80 80 <th class="description">description</th>
81 81 </tr>
82 82
83 83 </table>
84 84
85 85 <div class="navigate">
86 86 <a href="/shortlog/-1?revcount=30">less</a>
87 87 <a href="/shortlog/-1?revcount=120">more</a>
88 88 | rev -1:
89 89 </div>
90 90
91 91 </div>
92 92 </div>
93 93
94 94 <script type="text/javascript">process_dates()</script>
95 95
96 96
97 97 </body>
98 98 </html>
99 99
100 100 $ echo babar
101 101 babar
102 102 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log')
103 103 200 Script output follows
104 104
105 105 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
106 106 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
107 107 <head>
108 108 <link rel="icon" href="/static/hgicon.png" type="image/png" />
109 109 <meta name="robots" content="index, nofollow" />
110 110 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
111 111 <script type="text/javascript" src="/static/mercurial.js"></script>
112 112
113 113 <title>test: log</title>
114 114 <link rel="alternate" type="application/atom+xml"
115 115 href="/atom-log" title="Atom feed for test" />
116 116 <link rel="alternate" type="application/rss+xml"
117 117 href="/rss-log" title="RSS feed for test" />
118 118 </head>
119 119 <body>
120 120
121 121 <div class="container">
122 122 <div class="menu">
123 123 <div class="logo">
124 124 <a href="http://mercurial.selenic.com/">
125 125 <img src="/static/hglogo.png" alt="mercurial" /></a>
126 126 </div>
127 127 <ul>
128 128 <li class="active">log</li>
129 129 <li><a href="/graph/000000000000">graph</a></li>
130 130 <li><a href="/tags">tags</a></li>
131 131 <li><a href="/bookmarks">bookmarks</a></li>
132 132 <li><a href="/branches">branches</a></li>
133 133 </ul>
134 134 <ul>
135 135 <li><a href="/rev/000000000000">changeset</a></li>
136 136 <li><a href="/file/000000000000">browse</a></li>
137 137 </ul>
138 138 <ul>
139 139
140 140 </ul>
141 141 <ul>
142 142 <li><a href="/help">help</a></li>
143 143 </ul>
144 144 <p>
145 145 <div class="atom-logo">
146 146 <a href="/atom-log" title="subscribe to atom feed">
147 147 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="atom feed">
148 148 </a>
149 149 </div>
150 150 </div>
151 151
152 152 <div class="main">
153 153 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
154 154 <h3>log</h3>
155 155
156 156 <form class="search" action="/log">
157 157
158 158 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
159 159 <div id="hint">find changesets by author, revision,
160 160 files, or words in the commit message</div>
161 161 </form>
162 162
163 163 <div class="navigate">
164 164 <a href="/shortlog/-1?revcount=5">less</a>
165 165 <a href="/shortlog/-1?revcount=20">more</a>
166 166 | rev -1:
167 167 </div>
168 168
169 169 <table class="bigtable">
170 170 <tr>
171 171 <th class="age">age</th>
172 172 <th class="author">author</th>
173 173 <th class="description">description</th>
174 174 </tr>
175 175
176 176 </table>
177 177
178 178 <div class="navigate">
179 179 <a href="/shortlog/-1?revcount=5">less</a>
180 180 <a href="/shortlog/-1?revcount=20">more</a>
181 181 | rev -1:
182 182 </div>
183 183
184 184 </div>
185 185 </div>
186 186
187 187 <script type="text/javascript">process_dates()</script>
188 188
189 189
190 190 </body>
191 191 </html>
192 192
193 193 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'graph')
194 194 200 Script output follows
195 195
196 196 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
197 197 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
198 198 <head>
199 199 <link rel="icon" href="/static/hgicon.png" type="image/png" />
200 200 <meta name="robots" content="index, nofollow" />
201 201 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
202 202 <script type="text/javascript" src="/static/mercurial.js"></script>
203 203
204 204 <title>test: revision graph</title>
205 205 <link rel="alternate" type="application/atom+xml"
206 206 href="/atom-log" title="Atom feed for test: log" />
207 207 <link rel="alternate" type="application/rss+xml"
208 208 href="/rss-log" title="RSS feed for test: log" />
209 209 <!--[if IE]><script type="text/javascript" src="/static/excanvas.js"></script><![endif]-->
210 210 </head>
211 211 <body>
212 212
213 213 <div class="container">
214 214 <div class="menu">
215 215 <div class="logo">
216 216 <a href="http://mercurial.selenic.com/">
217 217 <img src="/static/hglogo.png" alt="mercurial" /></a>
218 218 </div>
219 219 <ul>
220 220 <li><a href="/shortlog/000000000000">log</a></li>
221 221 <li class="active">graph</li>
222 222 <li><a href="/tags">tags</a></li>
223 223 <li><a href="/bookmarks">bookmarks</a></li>
224 224 <li><a href="/branches">branches</a></li>
225 225 </ul>
226 226 <ul>
227 227 <li><a href="/rev/000000000000">changeset</a></li>
228 228 <li><a href="/file/000000000000">browse</a></li>
229 229 </ul>
230 230 <ul>
231 231 <li><a href="/help">help</a></li>
232 232 </ul>
233 233 <p>
234 234 <div class="atom-logo">
235 235 <a href="/atom-log" title="subscribe to atom feed">
236 236 <img class="atom-logo" src="/static/feed-icon-14x14.png" alt="atom feed">
237 237 </a>
238 238 </div>
239 239 </div>
240 240
241 241 <div class="main">
242 242 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
243 243 <h3>graph</h3>
244 244
245 245 <form class="search" action="/log">
246 246
247 247 <p><input name="rev" id="search1" type="text" size="30" /></p>
248 248 <div id="hint">find changesets by author, revision,
249 249 files, or words in the commit message</div>
250 250 </form>
251 251
252 252 <div class="navigate">
253 253 <a href="/graph/-1?revcount=30">less</a>
254 254 <a href="/graph/-1?revcount=120">more</a>
255 255 | rev -1:
256 256 </div>
257 257
258 258 <noscript><p>The revision graph only works with JavaScript-enabled browsers.</p></noscript>
259 259
260 260 <div id="wrapper">
261 261 <ul id="nodebgs"></ul>
262 262 <canvas id="graph" width="480" height="12"></canvas>
263 263 <ul id="graphnodes"></ul>
264 264 </div>
265 265
266 266 <script type="text/javascript">
267 267 <!-- hide script content
268 268
269 269 var data = [];
270 270 var graph = new Graph();
271 271 graph.scale(39);
272 272
273 273 graph.vertex = function(x, y, color, parity, cur) {
274 274
275 275 this.ctx.beginPath();
276 276 color = this.setColor(color, 0.25, 0.75);
277 277 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
278 278 this.ctx.fill();
279 279
280 280 var bg = '<li class="bg parity' + parity + '"></li>';
281 281 var left = (this.bg_height - this.box_size) + (this.columns + 1) * this.box_size;
282 282 var nstyle = 'padding-left: ' + left + 'px;';
283 283
284 284 var tagspan = '';
285 285 if (cur[7].length || cur[8].length || (cur[6][0] != 'default' || cur[6][1])) {
286 286 tagspan = '<span class="logtags">';
287 287 if (cur[6][1]) {
288 288 tagspan += '<span class="branchhead" title="' + cur[6][0] + '">';
289 289 tagspan += cur[6][0] + '</span> ';
290 290 } else if (!cur[6][1] && cur[6][0] != 'default') {
291 291 tagspan += '<span class="branchname" title="' + cur[6][0] + '">';
292 292 tagspan += cur[6][0] + '</span> ';
293 293 }
294 294 if (cur[7].length) {
295 295 for (var t in cur[7]) {
296 296 var tag = cur[7][t];
297 297 tagspan += '<span class="tag">' + tag + '</span> ';
298 298 }
299 299 }
300 300 if (cur[8].length) {
301 301 for (var b in cur[8]) {
302 302 var bookmark = cur[8][b];
303 303 tagspan += '<span class="tag">' + bookmark + '</span> ';
304 304 }
305 305 }
306 306 tagspan += '</span>';
307 307 }
308 308
309 309 var item = '<li style="' + nstyle + '"><span class="desc">';
310 310 item += '<a href="/rev/' + cur[0] + '" title="' + cur[0] + '">' + cur[3] + '</a>';
311 311 item += '</span>' + tagspan + '<span class="info">' + cur[5] + ', by ' + cur[4] + '</span></li>';
312 312
313 313 return [bg, item];
314 314
315 315 }
316 316
317 317 graph.render(data);
318 318
319 319 // stop hiding script -->
320 320 </script>
321 321
322 322 <div class="navigate">
323 323 <a href="/graph/-1?revcount=30">less</a>
324 324 <a href="/graph/-1?revcount=120">more</a>
325 325 | rev -1:
326 326 </div>
327 327
328 328 </div>
329 329 </div>
330 330
331 331 <script type="text/javascript">process_dates()</script>
332 332
333 333
334 334 </body>
335 335 </html>
336 336
337 337 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file')
338 338 200 Script output follows
339 339
340 340 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
341 341 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
342 342 <head>
343 343 <link rel="icon" href="/static/hgicon.png" type="image/png" />
344 344 <meta name="robots" content="index, nofollow" />
345 345 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
346 346 <script type="text/javascript" src="/static/mercurial.js"></script>
347 347
348 348 <title>test: 000000000000 /</title>
349 349 </head>
350 350 <body>
351 351
352 352 <div class="container">
353 353 <div class="menu">
354 354 <div class="logo">
355 355 <a href="http://mercurial.selenic.com/">
356 356 <img src="/static/hglogo.png" alt="mercurial" /></a>
357 357 </div>
358 358 <ul>
359 359 <li><a href="/shortlog/000000000000">log</a></li>
360 360 <li><a href="/graph/000000000000">graph</a></li>
361 361 <li><a href="/tags">tags</a></li>
362 362 <li><a href="/bookmarks">bookmarks</a></li>
363 363 <li><a href="/branches">branches</a></li>
364 364 </ul>
365 365 <ul>
366 366 <li><a href="/rev/000000000000">changeset</a></li>
367 367 <li class="active">browse</li>
368 368 </ul>
369 369 <ul>
370 370
371 371 </ul>
372 372 <ul>
373 373 <li><a href="/help">help</a></li>
374 374 </ul>
375 375 </div>
376 376
377 377 <div class="main">
378 378 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
379 379 <h3>directory / @ -1:000000000000 <span class="tag">tip</span> </h3>
380 380
381 381 <form class="search" action="/log">
382 382
383 383 <p><input name="rev" id="search1" type="text" size="30" /></p>
384 384 <div id="hint">find changesets by author, revision,
385 385 files, or words in the commit message</div>
386 386 </form>
387 387
388 388 <table class="bigtable">
389 389 <tr>
390 390 <th class="name">name</th>
391 391 <th class="size">size</th>
392 392 <th class="permissions">permissions</th>
393 393 </tr>
394 <tr class="fileline parity0">
394 <tbody class="stripes2">
395 <tr class="fileline">
395 396 <td class="name"><a href="/file/000000000000/">[up]</a></td>
396 397 <td class="size"></td>
397 398 <td class="permissions">drwxr-xr-x</td>
398 399 </tr>
399 400
400 401
402 </tbody>
401 403 </table>
402 404 </div>
403 405 </div>
404 406 <script type="text/javascript">process_dates()</script>
405 407
406 408
407 409 </body>
408 410 </html>
409 411
410 412
411 413 $ cd ..
@@ -1,494 +1,496
1 1 $ "$TESTDIR/hghave" serve || exit 80
2 2
3 3 Some tests for hgweb. Tests static files, plain files and different 404's.
4 4
5 5 $ hg init test
6 6 $ cd test
7 7 $ mkdir da
8 8 $ echo foo > da/foo
9 9 $ echo foo > foo
10 10 $ hg ci -Ambase
11 11 adding da/foo
12 12 adding foo
13 13 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
14 14 $ cat hg.pid >> $DAEMON_PIDS
15 15
16 16 manifest
17 17
18 18 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/?style=raw')
19 19 200 Script output follows
20 20
21 21
22 22 drwxr-xr-x da
23 23 -rw-r--r-- 4 foo
24 24
25 25
26 26 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/da?style=raw')
27 27 200 Script output follows
28 28
29 29
30 30 -rw-r--r-- 4 foo
31 31
32 32
33 33
34 34 plain file
35 35
36 36 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/foo?style=raw'
37 37 200 Script output follows
38 38
39 39 foo
40 40
41 41 should give a 404 - static file that does not exist
42 42
43 43 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'static/bogus'
44 44 404 Not Found
45 45
46 46 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
47 47 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
48 48 <head>
49 49 <link rel="icon" href="/static/hgicon.png" type="image/png" />
50 50 <meta name="robots" content="index, nofollow" />
51 51 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
52 52 <script type="text/javascript" src="/static/mercurial.js"></script>
53 53
54 54 <title>test: error</title>
55 55 </head>
56 56 <body>
57 57
58 58 <div class="container">
59 59 <div class="menu">
60 60 <div class="logo">
61 61 <a href="http://mercurial.selenic.com/">
62 62 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
63 63 </div>
64 64 <ul>
65 65 <li><a href="/shortlog">log</a></li>
66 66 <li><a href="/graph">graph</a></li>
67 67 <li><a href="/tags">tags</a></li>
68 68 <li><a href="/bookmarks">bookmarks</a></li>
69 69 <li><a href="/branches">branches</a></li>
70 70 </ul>
71 71 <ul>
72 72 <li><a href="/help">help</a></li>
73 73 </ul>
74 74 </div>
75 75
76 76 <div class="main">
77 77
78 78 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
79 79 <h3>error</h3>
80 80
81 81 <form class="search" action="/log">
82 82
83 83 <p><input name="rev" id="search1" type="text" size="30"></p>
84 84 <div id="hint">find changesets by author, revision,
85 85 files, or words in the commit message</div>
86 86 </form>
87 87
88 88 <div class="description">
89 89 <p>
90 90 An error occurred while processing your request:
91 91 </p>
92 92 <p>
93 93 Not Found
94 94 </p>
95 95 </div>
96 96 </div>
97 97 </div>
98 98
99 99 <script type="text/javascript">process_dates()</script>
100 100
101 101
102 102 </body>
103 103 </html>
104 104
105 105 [1]
106 106
107 107 should give a 404 - bad revision
108 108
109 109 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/spam/foo?style=raw'
110 110 404 Not Found
111 111
112 112
113 113 error: revision not found: spam
114 114 [1]
115 115
116 116 should give a 400 - bad command
117 117
118 118 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/foo?cmd=spam&style=raw'
119 119 400* (glob)
120 120
121 121
122 122 error: no such method: spam
123 123 [1]
124 124
125 125 should give a 404 - file does not exist
126 126
127 127 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/bork?style=raw'
128 128 404 Not Found
129 129
130 130
131 131 error: bork@2ef0ac749a14: not found in manifest
132 132 [1]
133 133 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/bork'
134 134 404 Not Found
135 135
136 136 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
137 137 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
138 138 <head>
139 139 <link rel="icon" href="/static/hgicon.png" type="image/png" />
140 140 <meta name="robots" content="index, nofollow" />
141 141 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
142 142 <script type="text/javascript" src="/static/mercurial.js"></script>
143 143
144 144 <title>test: error</title>
145 145 </head>
146 146 <body>
147 147
148 148 <div class="container">
149 149 <div class="menu">
150 150 <div class="logo">
151 151 <a href="http://mercurial.selenic.com/">
152 152 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
153 153 </div>
154 154 <ul>
155 155 <li><a href="/shortlog">log</a></li>
156 156 <li><a href="/graph">graph</a></li>
157 157 <li><a href="/tags">tags</a></li>
158 158 <li><a href="/bookmarks">bookmarks</a></li>
159 159 <li><a href="/branches">branches</a></li>
160 160 </ul>
161 161 <ul>
162 162 <li><a href="/help">help</a></li>
163 163 </ul>
164 164 </div>
165 165
166 166 <div class="main">
167 167
168 168 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
169 169 <h3>error</h3>
170 170
171 171 <form class="search" action="/log">
172 172
173 173 <p><input name="rev" id="search1" type="text" size="30"></p>
174 174 <div id="hint">find changesets by author, revision,
175 175 files, or words in the commit message</div>
176 176 </form>
177 177
178 178 <div class="description">
179 179 <p>
180 180 An error occurred while processing your request:
181 181 </p>
182 182 <p>
183 183 bork@2ef0ac749a14: not found in manifest
184 184 </p>
185 185 </div>
186 186 </div>
187 187 </div>
188 188
189 189 <script type="text/javascript">process_dates()</script>
190 190
191 191
192 192 </body>
193 193 </html>
194 194
195 195 [1]
196 196 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'diff/tip/bork?style=raw'
197 197 404 Not Found
198 198
199 199
200 200 error: bork@2ef0ac749a14: not found in manifest
201 201 [1]
202 202
203 203 try bad style
204 204
205 205 $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/?style=foobar')
206 206 200 Script output follows
207 207
208 208 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
209 209 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
210 210 <head>
211 211 <link rel="icon" href="/static/hgicon.png" type="image/png" />
212 212 <meta name="robots" content="index, nofollow" />
213 213 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
214 214 <script type="text/javascript" src="/static/mercurial.js"></script>
215 215
216 216 <title>test: 2ef0ac749a14 /</title>
217 217 </head>
218 218 <body>
219 219
220 220 <div class="container">
221 221 <div class="menu">
222 222 <div class="logo">
223 223 <a href="http://mercurial.selenic.com/">
224 224 <img src="/static/hglogo.png" alt="mercurial" /></a>
225 225 </div>
226 226 <ul>
227 227 <li><a href="/shortlog/2ef0ac749a14">log</a></li>
228 228 <li><a href="/graph/2ef0ac749a14">graph</a></li>
229 229 <li><a href="/tags">tags</a></li>
230 230 <li><a href="/bookmarks">bookmarks</a></li>
231 231 <li><a href="/branches">branches</a></li>
232 232 </ul>
233 233 <ul>
234 234 <li><a href="/rev/2ef0ac749a14">changeset</a></li>
235 235 <li class="active">browse</li>
236 236 </ul>
237 237 <ul>
238 238
239 239 </ul>
240 240 <ul>
241 241 <li><a href="/help">help</a></li>
242 242 </ul>
243 243 </div>
244 244
245 245 <div class="main">
246 246 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
247 247 <h3>directory / @ 0:2ef0ac749a14 <span class="tag">tip</span> </h3>
248 248
249 249 <form class="search" action="/log">
250 250
251 251 <p><input name="rev" id="search1" type="text" size="30" /></p>
252 252 <div id="hint">find changesets by author, revision,
253 253 files, or words in the commit message</div>
254 254 </form>
255 255
256 256 <table class="bigtable">
257 257 <tr>
258 258 <th class="name">name</th>
259 259 <th class="size">size</th>
260 260 <th class="permissions">permissions</th>
261 261 </tr>
262 <tr class="fileline parity0">
262 <tbody class="stripes2">
263 <tr class="fileline">
263 264 <td class="name"><a href="/file/2ef0ac749a14/">[up]</a></td>
264 265 <td class="size"></td>
265 266 <td class="permissions">drwxr-xr-x</td>
266 267 </tr>
267 268
268 <tr class="fileline parity1">
269 <tr class="fileline">
269 270 <td class="name">
270 271 <a href="/file/2ef0ac749a14/da">
271 272 <img src="/static/coal-folder.png" alt="dir."/> da/
272 273 </a>
273 274 <a href="/file/2ef0ac749a14/da/">
274 275
275 276 </a>
276 277 </td>
277 278 <td class="size"></td>
278 279 <td class="permissions">drwxr-xr-x</td>
279 280 </tr>
280 281
281 <tr class="fileline parity0">
282 <tr class="fileline">
282 283 <td class="filename">
283 284 <a href="/file/2ef0ac749a14/foo">
284 285 <img src="/static/coal-file.png" alt="file"/> foo
285 286 </a>
286 287 </td>
287 288 <td class="size">4</td>
288 289 <td class="permissions">-rw-r--r--</td>
289 290 </tr>
291 </tbody>
290 292 </table>
291 293 </div>
292 294 </div>
293 295 <script type="text/javascript">process_dates()</script>
294 296
295 297
296 298 </body>
297 299 </html>
298 300
299 301
300 302 stop and restart
301 303
302 304 $ "$TESTDIR/killdaemons.py" $DAEMON_PIDS
303 305 $ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log
304 306 $ cat hg.pid >> $DAEMON_PIDS
305 307
306 308 Test the access/error files are opened in append mode
307 309
308 310 $ python -c "print len(file('access.log').readlines()), 'log lines written'"
309 311 10 log lines written
310 312
311 313 static file
312 314
313 315 $ "$TESTDIR/get-with-headers.py" --twice localhost:$HGPORT 'static/style-gitweb.css' - date etag server
314 316 200 Script output follows
315 317 content-length: 4607
316 318 content-type: text/css
317 319
318 320 body { font-family: sans-serif; font-size: 12px; border:solid #d9d8d1; border-width:1px; margin:10px; }
319 321 a { color:#0000cc; }
320 322 a:hover, a:visited, a:active { color:#880000; }
321 323 div.page_header { height:25px; padding:8px; font-size:18px; font-weight:bold; background-color:#d9d8d1; }
322 324 div.page_header a:visited { color:#0000cc; }
323 325 div.page_header a:hover { color:#880000; }
324 326 div.page_nav { padding:8px; }
325 327 div.page_nav a:visited { color:#0000cc; }
326 328 div.page_path { padding:8px; border:solid #d9d8d1; border-width:0px 0px 1px}
327 329 div.page_footer { padding:4px 8px; background-color: #d9d8d1; }
328 330 div.page_footer_text { float:left; color:#555555; font-style:italic; }
329 331 div.page_body { padding:8px; }
330 332 div.title, a.title {
331 333 display:block; padding:6px 8px;
332 334 font-weight:bold; background-color:#edece6; text-decoration:none; color:#000000;
333 335 }
334 336 a.title:hover { background-color: #d9d8d1; }
335 337 div.title_text { padding:6px 0px; border: solid #d9d8d1; border-width:0px 0px 1px; }
336 338 div.log_body { padding:8px 8px 8px 150px; }
337 339 .age { white-space:nowrap; }
338 340 span.age { position:relative; float:left; width:142px; font-style:italic; }
339 341 div.log_link {
340 342 padding:0px 8px;
341 343 font-size:10px; font-family:sans-serif; font-style:normal;
342 344 position:relative; float:left; width:136px;
343 345 }
344 346 div.list_head { padding:6px 8px 4px; border:solid #d9d8d1; border-width:1px 0px 0px; font-style:italic; }
345 347 a.list { text-decoration:none; color:#000000; }
346 348 a.list:hover { text-decoration:underline; color:#880000; }
347 349 table { padding:8px 4px; }
348 350 th { padding:2px 5px; font-size:12px; text-align:left; }
349 351 tr.light:hover, .parity0:hover { background-color:#edece6; }
350 352 tr.dark, .parity1 { background-color:#f6f6f0; }
351 353 tr.dark:hover, .parity1:hover { background-color:#edece6; }
352 354 td { padding:2px 5px; font-size:12px; vertical-align:top; }
353 355 td.closed { background-color: #99f; }
354 356 td.link { padding:2px 5px; font-family:sans-serif; font-size:10px; }
355 357 td.indexlinks { white-space: nowrap; }
356 358 td.indexlinks a {
357 359 padding: 2px 5px; line-height: 10px;
358 360 border: 1px solid;
359 361 color: #ffffff; background-color: #7777bb;
360 362 border-color: #aaaadd #333366 #333366 #aaaadd;
361 363 font-weight: bold; text-align: center; text-decoration: none;
362 364 font-size: 10px;
363 365 }
364 366 td.indexlinks a:hover { background-color: #6666aa; }
365 367 div.pre { font-family:monospace; font-size:12px; white-space:pre; }
366 368 div.diff_info { font-family:monospace; color:#000099; background-color:#edece6; font-style:italic; }
367 369 div.index_include { border:solid #d9d8d1; border-width:0px 0px 1px; padding:12px 8px; }
368 370 div.search { margin:4px 8px; position:absolute; top:56px; right:12px }
369 371 .linenr { color:#999999; text-decoration:none }
370 372 div.rss_logo { float: right; white-space: nowrap; }
371 373 div.rss_logo a {
372 374 padding:3px 6px; line-height:10px;
373 375 border:1px solid; border-color:#fcc7a5 #7d3302 #3e1a01 #ff954e;
374 376 color:#ffffff; background-color:#ff6600;
375 377 font-weight:bold; font-family:sans-serif; font-size:10px;
376 378 text-align:center; text-decoration:none;
377 379 }
378 380 div.rss_logo a:hover { background-color:#ee5500; }
379 381 pre { margin: 0; }
380 382 span.logtags span {
381 383 padding: 0px 4px;
382 384 font-size: 10px;
383 385 font-weight: normal;
384 386 border: 1px solid;
385 387 background-color: #ffaaff;
386 388 border-color: #ffccff #ff00ee #ff00ee #ffccff;
387 389 }
388 390 span.logtags span.tagtag {
389 391 background-color: #ffffaa;
390 392 border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
391 393 }
392 394 span.logtags span.branchtag {
393 395 background-color: #aaffaa;
394 396 border-color: #ccffcc #00cc33 #00cc33 #ccffcc;
395 397 }
396 398 span.logtags span.inbranchtag {
397 399 background-color: #d5dde6;
398 400 border-color: #e3ecf4 #9398f4 #9398f4 #e3ecf4;
399 401 }
400 402 span.logtags span.bookmarktag {
401 403 background-color: #afdffa;
402 404 border-color: #ccecff #46ace6 #46ace6 #ccecff;
403 405 }
404 406
405 407 /* Graph */
406 408 div#wrapper {
407 409 position: relative;
408 410 margin: 0;
409 411 padding: 0;
410 412 margin-top: 3px;
411 413 }
412 414
413 415 canvas {
414 416 position: absolute;
415 417 z-index: 5;
416 418 top: -0.9em;
417 419 margin: 0;
418 420 }
419 421
420 422 ul#nodebgs {
421 423 list-style: none inside none;
422 424 padding: 0;
423 425 margin: 0;
424 426 top: -0.7em;
425 427 }
426 428
427 429 ul#graphnodes li, ul#nodebgs li {
428 430 height: 39px;
429 431 }
430 432
431 433 ul#graphnodes {
432 434 position: absolute;
433 435 z-index: 10;
434 436 top: -0.8em;
435 437 list-style: none inside none;
436 438 padding: 0;
437 439 }
438 440
439 441 ul#graphnodes li .info {
440 442 display: block;
441 443 font-size: 100%;
442 444 position: relative;
443 445 top: -3px;
444 446 font-style: italic;
445 447 }
446 448
447 449 /* Comparison */
448 450 .legend {
449 451 padding: 1.5% 0 1.5% 0;
450 452 }
451 453
452 454 .legendinfo {
453 455 border: 1px solid #d9d8d1;
454 456 font-size: 80%;
455 457 text-align: center;
456 458 padding: 0.5%;
457 459 }
458 460
459 461 .equal {
460 462 background-color: #ffffff;
461 463 }
462 464
463 465 .delete {
464 466 background-color: #faa;
465 467 color: #333;
466 468 }
467 469
468 470 .insert {
469 471 background-color: #ffa;
470 472 }
471 473
472 474 .replace {
473 475 background-color: #e8e8e8;
474 476 }
475 477
476 478 .comparison {
477 479 overflow-x: auto;
478 480 }
479 481
480 482 .header th {
481 483 text-align: center;
482 484 }
483 485
484 486 .block {
485 487 border-top: 1px solid #d9d8d1;
486 488 }
487 489 304 Not Modified
488 490
489 491
490 492 errors
491 493
492 494 $ cat errors.log
493 495
494 496 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now