##// END OF EJS Templates
paper/coal: use fixed width for diffstat +/- link...
Martin Geisler -
r14608:4aef7183 default
parent child Browse files
Show More
@@ -1,87 +1,87 b''
1 {header}
1 {header}
2 <title>{repo|escape}: {node|short}</title>
2 <title>{repo|escape}: {node|short}</title>
3 </head>
3 </head>
4 <body>
4 <body>
5 <div class="container">
5 <div class="container">
6 <div class="menu">
6 <div class="menu">
7 <div class="logo">
7 <div class="logo">
8 <a href="{logourl}">
8 <a href="{logourl}">
9 <img src="{staticurl}hglogo.png" alt="mercurial" /></a>
9 <img src="{staticurl}hglogo.png" alt="mercurial" /></a>
10 </div>
10 </div>
11 <ul>
11 <ul>
12 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
12 <li><a href="{url}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
13 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
13 <li><a href="{url}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
14 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
14 <li><a href="{url}tags{sessionvars%urlparameter}">tags</a></li>
15 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
15 <li><a href="{url}bookmarks{sessionvars%urlparameter}">bookmarks</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 class="active">changeset</li>
19 <li class="active">changeset</li>
20 <li><a href="{url}raw-rev/{node|short}{sessionvars%urlparameter}">raw</a></li>
20 <li><a href="{url}raw-rev/{node|short}{sessionvars%urlparameter}">raw</a></li>
21 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">browse</a></li>
21 <li><a href="{url}file/{node|short}{sessionvars%urlparameter}">browse</a></li>
22 </ul>
22 </ul>
23 <ul>
23 <ul>
24 {archives%archiveentry}
24 {archives%archiveentry}
25 </ul>
25 </ul>
26 <ul>
26 <ul>
27 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
27 <li><a href="{url}help{sessionvars%urlparameter}">help</a></li>
28 </ul>
28 </ul>
29 </div>
29 </div>
30
30
31 <div class="main">
31 <div class="main">
32
32
33 <h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
33 <h2><a href="{url}{sessionvars%urlparameter}">{repo|escape}</a></h2>
34 <h3>changeset {rev}:{node|short} {changesetbranch%changelogbranchname} {changesettag} {changesetbookmark}</h3>
34 <h3>changeset {rev}:{node|short} {changesetbranch%changelogbranchname} {changesettag} {changesetbookmark}</h3>
35
35
36 <form class="search" action="{url}log">
36 <form class="search" action="{url}log">
37 {sessionvars%hiddenformentry}
37 {sessionvars%hiddenformentry}
38 <p><input name="rev" id="search1" type="text" size="30" /></p>
38 <p><input name="rev" id="search1" type="text" size="30" /></p>
39 <div id="hint">find changesets by author, revision,
39 <div id="hint">find changesets by author, revision,
40 files, or words in the commit message</div>
40 files, or words in the commit message</div>
41 </form>
41 </form>
42
42
43 <div class="description">{desc|strip|escape|nonempty}</div>
43 <div class="description">{desc|strip|escape|nonempty}</div>
44
44
45 <table id="changesetEntry">
45 <table id="changesetEntry">
46 <tr>
46 <tr>
47 <th class="author">author</th>
47 <th class="author">author</th>
48 <td class="author">{author|obfuscate}</td>
48 <td class="author">{author|obfuscate}</td>
49 </tr>
49 </tr>
50 <tr>
50 <tr>
51 <th class="date">date</th>
51 <th class="date">date</th>
52 <td class="date age">{date|date}</td></tr>
52 <td class="date age">{date|date}</td></tr>
53 <tr>
53 <tr>
54 <th class="author">parents</th>
54 <th class="author">parents</th>
55 <td class="author">{parent%changesetparent}</td>
55 <td class="author">{parent%changesetparent}</td>
56 </tr>
56 </tr>
57 <tr>
57 <tr>
58 <th class="author">children</th>
58 <th class="author">children</th>
59 <td class="author">{child%changesetchild}</td>
59 <td class="author">{child%changesetchild}</td>
60 </tr>
60 </tr>
61 <tr>
61 <tr>
62 <th class="files">files</th>
62 <th class="files">files</th>
63 <td class="files">{files}</td>
63 <td class="files">{files}</td>
64 </tr>
64 </tr>
65 <tr>
65 <tr>
66 <th class="diffstat">diffstat</th>
66 <th class="diffstat">diffstat</th>
67 <td class="diffstat">
67 <td class="diffstat">
68 {diffsummary}
68 {diffsummary}
69 <a id="diffstatexpand" href="javascript:showDiffstat()"/>[+]</a>
69 <a id="diffstatexpand" href="javascript:showDiffstat()"/>[<tt>+</tt>]</a>
70 <div id="diffstatdetails" style="display:none;">
70 <div id="diffstatdetails" style="display:none;">
71 <a href="javascript:hideDiffstat()"/>[-]</a>
71 <a href="javascript:hideDiffstat()"/>[<tt>-</tt>]</a>
72 <p>
72 <p>
73 <table>{diffstat}</table>
73 <table>{diffstat}</table>
74 </div>
74 </div>
75 </td>
75 </td>
76 </tr>
76 </tr>
77 </table>
77 </table>
78
78
79 <div class="overflow">
79 <div class="overflow">
80 <div class="sourcefirst"> line diff</div>
80 <div class="sourcefirst"> line diff</div>
81
81
82 {diff}
82 {diff}
83 </div>
83 </div>
84
84
85 </div>
85 </div>
86 </div>
86 </div>
87 {footer}
87 {footer}
@@ -1,1157 +1,1157 b''
1 An attempt at more fully testing the hgweb web interface.
1 An attempt at more fully testing the hgweb web interface.
2 The following things are tested elsewhere and are therefore omitted:
2 The following things are tested elsewhere and are therefore omitted:
3 - archive, tested in test-archive
3 - archive, tested in test-archive
4 - unbundle, tested in test-push-http
4 - unbundle, tested in test-push-http
5 - changegroupsubset, tested in test-pull
5 - changegroupsubset, tested in test-pull
6
6
7 Set up the repo
7 Set up the repo
8
8
9 $ hg init test
9 $ hg init test
10 $ cd test
10 $ cd test
11 $ mkdir da
11 $ mkdir da
12 $ echo foo > da/foo
12 $ echo foo > da/foo
13 $ echo foo > foo
13 $ echo foo > foo
14 $ hg ci -Ambase
14 $ hg ci -Ambase
15 adding da/foo
15 adding da/foo
16 adding foo
16 adding foo
17 $ hg tag 1.0
17 $ hg tag 1.0
18 $ hg bookmark something
18 $ hg bookmark something
19 $ hg bookmark -r0 anotherthing
19 $ hg bookmark -r0 anotherthing
20 $ echo another > foo
20 $ echo another > foo
21 $ hg branch stable
21 $ hg branch stable
22 marked working directory as branch stable
22 marked working directory as branch stable
23 $ hg ci -Ambranch
23 $ hg ci -Ambranch
24 $ hg serve --config server.uncompressed=False -n test -p $HGPORT -d --pid-file=hg.pid -E errors.log
24 $ hg serve --config server.uncompressed=False -n test -p $HGPORT -d --pid-file=hg.pid -E errors.log
25 $ cat hg.pid >> $DAEMON_PIDS
25 $ cat hg.pid >> $DAEMON_PIDS
26
26
27 Logs and changes
27 Logs and changes
28
28
29 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/log/?style=atom'
29 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/log/?style=atom'
30 200 Script output follows
30 200 Script output follows
31
31
32 <?xml version="1.0" encoding="ascii"?>
32 <?xml version="1.0" encoding="ascii"?>
33 <feed xmlns="http://www.w3.org/2005/Atom">
33 <feed xmlns="http://www.w3.org/2005/Atom">
34 <!-- Changelog -->
34 <!-- Changelog -->
35 <id>http://*:$HGPORT/</id> (glob)
35 <id>http://*:$HGPORT/</id> (glob)
36 <link rel="self" href="http://*:$HGPORT/atom-log"/> (glob)
36 <link rel="self" href="http://*:$HGPORT/atom-log"/> (glob)
37 <link rel="alternate" href="http://*:$HGPORT/"/> (glob)
37 <link rel="alternate" href="http://*:$HGPORT/"/> (glob)
38 <title>test Changelog</title>
38 <title>test Changelog</title>
39 <updated>1970-01-01T00:00:00+00:00</updated>
39 <updated>1970-01-01T00:00:00+00:00</updated>
40
40
41 <entry>
41 <entry>
42 <title>branch</title>
42 <title>branch</title>
43 <id>http://*:$HGPORT/#changeset-1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe</id> (glob)
43 <id>http://*:$HGPORT/#changeset-1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe</id> (glob)
44 <link href="http://*:$HGPORT/rev/1d22e65f027e"/> (glob)
44 <link href="http://*:$HGPORT/rev/1d22e65f027e"/> (glob)
45 <author>
45 <author>
46 <name>test</name>
46 <name>test</name>
47 <email>&#116;&#101;&#115;&#116;</email>
47 <email>&#116;&#101;&#115;&#116;</email>
48 </author>
48 </author>
49 <updated>1970-01-01T00:00:00+00:00</updated>
49 <updated>1970-01-01T00:00:00+00:00</updated>
50 <published>1970-01-01T00:00:00+00:00</published>
50 <published>1970-01-01T00:00:00+00:00</published>
51 <content type="xhtml">
51 <content type="xhtml">
52 <div xmlns="http://www.w3.org/1999/xhtml">
52 <div xmlns="http://www.w3.org/1999/xhtml">
53 <pre xml:space="preserve">branch</pre>
53 <pre xml:space="preserve">branch</pre>
54 </div>
54 </div>
55 </content>
55 </content>
56 </entry>
56 </entry>
57 <entry>
57 <entry>
58 <title>Added tag 1.0 for changeset 2ef0ac749a14</title>
58 <title>Added tag 1.0 for changeset 2ef0ac749a14</title>
59 <id>http://*:$HGPORT/#changeset-a4f92ed23982be056b9852de5dfe873eaac7f0de</id> (glob)
59 <id>http://*:$HGPORT/#changeset-a4f92ed23982be056b9852de5dfe873eaac7f0de</id> (glob)
60 <link href="http://*:$HGPORT/rev/a4f92ed23982"/> (glob)
60 <link href="http://*:$HGPORT/rev/a4f92ed23982"/> (glob)
61 <author>
61 <author>
62 <name>test</name>
62 <name>test</name>
63 <email>&#116;&#101;&#115;&#116;</email>
63 <email>&#116;&#101;&#115;&#116;</email>
64 </author>
64 </author>
65 <updated>1970-01-01T00:00:00+00:00</updated>
65 <updated>1970-01-01T00:00:00+00:00</updated>
66 <published>1970-01-01T00:00:00+00:00</published>
66 <published>1970-01-01T00:00:00+00:00</published>
67 <content type="xhtml">
67 <content type="xhtml">
68 <div xmlns="http://www.w3.org/1999/xhtml">
68 <div xmlns="http://www.w3.org/1999/xhtml">
69 <pre xml:space="preserve">Added tag 1.0 for changeset 2ef0ac749a14</pre>
69 <pre xml:space="preserve">Added tag 1.0 for changeset 2ef0ac749a14</pre>
70 </div>
70 </div>
71 </content>
71 </content>
72 </entry>
72 </entry>
73 <entry>
73 <entry>
74 <title>base</title>
74 <title>base</title>
75 <id>http://*:$HGPORT/#changeset-2ef0ac749a14e4f57a5a822464a0902c6f7f448f</id> (glob)
75 <id>http://*:$HGPORT/#changeset-2ef0ac749a14e4f57a5a822464a0902c6f7f448f</id> (glob)
76 <link href="http://*:$HGPORT/rev/2ef0ac749a14"/> (glob)
76 <link href="http://*:$HGPORT/rev/2ef0ac749a14"/> (glob)
77 <author>
77 <author>
78 <name>test</name>
78 <name>test</name>
79 <email>&#116;&#101;&#115;&#116;</email>
79 <email>&#116;&#101;&#115;&#116;</email>
80 </author>
80 </author>
81 <updated>1970-01-01T00:00:00+00:00</updated>
81 <updated>1970-01-01T00:00:00+00:00</updated>
82 <published>1970-01-01T00:00:00+00:00</published>
82 <published>1970-01-01T00:00:00+00:00</published>
83 <content type="xhtml">
83 <content type="xhtml">
84 <div xmlns="http://www.w3.org/1999/xhtml">
84 <div xmlns="http://www.w3.org/1999/xhtml">
85 <pre xml:space="preserve">base</pre>
85 <pre xml:space="preserve">base</pre>
86 </div>
86 </div>
87 </content>
87 </content>
88 </entry>
88 </entry>
89
89
90 </feed>
90 </feed>
91 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/log/1/?style=atom'
91 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/log/1/?style=atom'
92 200 Script output follows
92 200 Script output follows
93
93
94 <?xml version="1.0" encoding="ascii"?>
94 <?xml version="1.0" encoding="ascii"?>
95 <feed xmlns="http://www.w3.org/2005/Atom">
95 <feed xmlns="http://www.w3.org/2005/Atom">
96 <!-- Changelog -->
96 <!-- Changelog -->
97 <id>http://*:$HGPORT/</id> (glob)
97 <id>http://*:$HGPORT/</id> (glob)
98 <link rel="self" href="http://*:$HGPORT/atom-log"/> (glob)
98 <link rel="self" href="http://*:$HGPORT/atom-log"/> (glob)
99 <link rel="alternate" href="http://*:$HGPORT/"/> (glob)
99 <link rel="alternate" href="http://*:$HGPORT/"/> (glob)
100 <title>test Changelog</title>
100 <title>test Changelog</title>
101 <updated>1970-01-01T00:00:00+00:00</updated>
101 <updated>1970-01-01T00:00:00+00:00</updated>
102
102
103 <entry>
103 <entry>
104 <title>branch</title>
104 <title>branch</title>
105 <id>http://*:$HGPORT/#changeset-1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe</id> (glob)
105 <id>http://*:$HGPORT/#changeset-1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe</id> (glob)
106 <link href="http://*:$HGPORT/rev/1d22e65f027e"/> (glob)
106 <link href="http://*:$HGPORT/rev/1d22e65f027e"/> (glob)
107 <author>
107 <author>
108 <name>test</name>
108 <name>test</name>
109 <email>&#116;&#101;&#115;&#116;</email>
109 <email>&#116;&#101;&#115;&#116;</email>
110 </author>
110 </author>
111 <updated>1970-01-01T00:00:00+00:00</updated>
111 <updated>1970-01-01T00:00:00+00:00</updated>
112 <published>1970-01-01T00:00:00+00:00</published>
112 <published>1970-01-01T00:00:00+00:00</published>
113 <content type="xhtml">
113 <content type="xhtml">
114 <div xmlns="http://www.w3.org/1999/xhtml">
114 <div xmlns="http://www.w3.org/1999/xhtml">
115 <pre xml:space="preserve">branch</pre>
115 <pre xml:space="preserve">branch</pre>
116 </div>
116 </div>
117 </content>
117 </content>
118 </entry>
118 </entry>
119 <entry>
119 <entry>
120 <title>Added tag 1.0 for changeset 2ef0ac749a14</title>
120 <title>Added tag 1.0 for changeset 2ef0ac749a14</title>
121 <id>http://*:$HGPORT/#changeset-a4f92ed23982be056b9852de5dfe873eaac7f0de</id> (glob)
121 <id>http://*:$HGPORT/#changeset-a4f92ed23982be056b9852de5dfe873eaac7f0de</id> (glob)
122 <link href="http://*:$HGPORT/rev/a4f92ed23982"/> (glob)
122 <link href="http://*:$HGPORT/rev/a4f92ed23982"/> (glob)
123 <author>
123 <author>
124 <name>test</name>
124 <name>test</name>
125 <email>&#116;&#101;&#115;&#116;</email>
125 <email>&#116;&#101;&#115;&#116;</email>
126 </author>
126 </author>
127 <updated>1970-01-01T00:00:00+00:00</updated>
127 <updated>1970-01-01T00:00:00+00:00</updated>
128 <published>1970-01-01T00:00:00+00:00</published>
128 <published>1970-01-01T00:00:00+00:00</published>
129 <content type="xhtml">
129 <content type="xhtml">
130 <div xmlns="http://www.w3.org/1999/xhtml">
130 <div xmlns="http://www.w3.org/1999/xhtml">
131 <pre xml:space="preserve">Added tag 1.0 for changeset 2ef0ac749a14</pre>
131 <pre xml:space="preserve">Added tag 1.0 for changeset 2ef0ac749a14</pre>
132 </div>
132 </div>
133 </content>
133 </content>
134 </entry>
134 </entry>
135 <entry>
135 <entry>
136 <title>base</title>
136 <title>base</title>
137 <id>http://*:$HGPORT/#changeset-2ef0ac749a14e4f57a5a822464a0902c6f7f448f</id> (glob)
137 <id>http://*:$HGPORT/#changeset-2ef0ac749a14e4f57a5a822464a0902c6f7f448f</id> (glob)
138 <link href="http://*:$HGPORT/rev/2ef0ac749a14"/> (glob)
138 <link href="http://*:$HGPORT/rev/2ef0ac749a14"/> (glob)
139 <author>
139 <author>
140 <name>test</name>
140 <name>test</name>
141 <email>&#116;&#101;&#115;&#116;</email>
141 <email>&#116;&#101;&#115;&#116;</email>
142 </author>
142 </author>
143 <updated>1970-01-01T00:00:00+00:00</updated>
143 <updated>1970-01-01T00:00:00+00:00</updated>
144 <published>1970-01-01T00:00:00+00:00</published>
144 <published>1970-01-01T00:00:00+00:00</published>
145 <content type="xhtml">
145 <content type="xhtml">
146 <div xmlns="http://www.w3.org/1999/xhtml">
146 <div xmlns="http://www.w3.org/1999/xhtml">
147 <pre xml:space="preserve">base</pre>
147 <pre xml:space="preserve">base</pre>
148 </div>
148 </div>
149 </content>
149 </content>
150 </entry>
150 </entry>
151
151
152 </feed>
152 </feed>
153 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/log/1/foo/?style=atom'
153 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/log/1/foo/?style=atom'
154 200 Script output follows
154 200 Script output follows
155
155
156 <?xml version="1.0" encoding="ascii"?>
156 <?xml version="1.0" encoding="ascii"?>
157 <feed xmlns="http://www.w3.org/2005/Atom">
157 <feed xmlns="http://www.w3.org/2005/Atom">
158 <id>http://*:$HGPORT/atom-log/tip/foo</id> (glob)
158 <id>http://*:$HGPORT/atom-log/tip/foo</id> (glob)
159 <link rel="self" href="http://*:$HGPORT/atom-log/tip/foo"/> (glob)
159 <link rel="self" href="http://*:$HGPORT/atom-log/tip/foo"/> (glob)
160 <title>test: foo history</title>
160 <title>test: foo history</title>
161 <updated>1970-01-01T00:00:00+00:00</updated>
161 <updated>1970-01-01T00:00:00+00:00</updated>
162
162
163 <entry>
163 <entry>
164 <title>base</title>
164 <title>base</title>
165 <id>http://*:$HGPORT/#changeset-2ef0ac749a14e4f57a5a822464a0902c6f7f448f</id> (glob)
165 <id>http://*:$HGPORT/#changeset-2ef0ac749a14e4f57a5a822464a0902c6f7f448f</id> (glob)
166 <link href="http://*:$HGPORT/rev/2ef0ac749a14"/> (glob)
166 <link href="http://*:$HGPORT/rev/2ef0ac749a14"/> (glob)
167 <author>
167 <author>
168 <name>test</name>
168 <name>test</name>
169 <email>&#116;&#101;&#115;&#116;</email>
169 <email>&#116;&#101;&#115;&#116;</email>
170 </author>
170 </author>
171 <updated>1970-01-01T00:00:00+00:00</updated>
171 <updated>1970-01-01T00:00:00+00:00</updated>
172 <published>1970-01-01T00:00:00+00:00</published>
172 <published>1970-01-01T00:00:00+00:00</published>
173 <content type="xhtml">
173 <content type="xhtml">
174 <div xmlns="http://www.w3.org/1999/xhtml">
174 <div xmlns="http://www.w3.org/1999/xhtml">
175 <pre xml:space="preserve">base</pre>
175 <pre xml:space="preserve">base</pre>
176 </div>
176 </div>
177 </content>
177 </content>
178 </entry>
178 </entry>
179
179
180 </feed>
180 </feed>
181 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/shortlog/'
181 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/shortlog/'
182 200 Script output follows
182 200 Script output follows
183
183
184 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
184 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
185 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
185 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
186 <head>
186 <head>
187 <link rel="icon" href="/static/hgicon.png" type="image/png" />
187 <link rel="icon" href="/static/hgicon.png" type="image/png" />
188 <meta name="robots" content="index, nofollow" />
188 <meta name="robots" content="index, nofollow" />
189 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
189 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
190 <script type="text/javascript" src="/static/mercurial.js"></script>
190 <script type="text/javascript" src="/static/mercurial.js"></script>
191
191
192 <title>test: log</title>
192 <title>test: log</title>
193 <link rel="alternate" type="application/atom+xml"
193 <link rel="alternate" type="application/atom+xml"
194 href="/atom-log" title="Atom feed for test" />
194 href="/atom-log" title="Atom feed for test" />
195 <link rel="alternate" type="application/rss+xml"
195 <link rel="alternate" type="application/rss+xml"
196 href="/rss-log" title="RSS feed for test" />
196 href="/rss-log" title="RSS feed for test" />
197 </head>
197 </head>
198 <body>
198 <body>
199
199
200 <div class="container">
200 <div class="container">
201 <div class="menu">
201 <div class="menu">
202 <div class="logo">
202 <div class="logo">
203 <a href="http://mercurial.selenic.com/">
203 <a href="http://mercurial.selenic.com/">
204 <img src="/static/hglogo.png" alt="mercurial" /></a>
204 <img src="/static/hglogo.png" alt="mercurial" /></a>
205 </div>
205 </div>
206 <ul>
206 <ul>
207 <li class="active">log</li>
207 <li class="active">log</li>
208 <li><a href="/graph/1d22e65f027e">graph</a></li>
208 <li><a href="/graph/1d22e65f027e">graph</a></li>
209 <li><a href="/tags">tags</a></li>
209 <li><a href="/tags">tags</a></li>
210 <li><a href="/bookmarks">bookmarks</a></li>
210 <li><a href="/bookmarks">bookmarks</a></li>
211 <li><a href="/branches">branches</a></li>
211 <li><a href="/branches">branches</a></li>
212 </ul>
212 </ul>
213 <ul>
213 <ul>
214 <li><a href="/rev/1d22e65f027e">changeset</a></li>
214 <li><a href="/rev/1d22e65f027e">changeset</a></li>
215 <li><a href="/file/1d22e65f027e">browse</a></li>
215 <li><a href="/file/1d22e65f027e">browse</a></li>
216 </ul>
216 </ul>
217 <ul>
217 <ul>
218
218
219 </ul>
219 </ul>
220 <ul>
220 <ul>
221 <li><a href="/help">help</a></li>
221 <li><a href="/help">help</a></li>
222 </ul>
222 </ul>
223 </div>
223 </div>
224
224
225 <div class="main">
225 <div class="main">
226 <h2><a href="/">test</a></h2>
226 <h2><a href="/">test</a></h2>
227 <h3>log</h3>
227 <h3>log</h3>
228
228
229 <form class="search" action="/log">
229 <form class="search" action="/log">
230
230
231 <p><input name="rev" id="search1" type="text" size="30" /></p>
231 <p><input name="rev" id="search1" type="text" size="30" /></p>
232 <div id="hint">find changesets by author, revision,
232 <div id="hint">find changesets by author, revision,
233 files, or words in the commit message</div>
233 files, or words in the commit message</div>
234 </form>
234 </form>
235
235
236 <div class="navigate">
236 <div class="navigate">
237 <a href="/shortlog/2?revcount=30">less</a>
237 <a href="/shortlog/2?revcount=30">less</a>
238 <a href="/shortlog/2?revcount=120">more</a>
238 <a href="/shortlog/2?revcount=120">more</a>
239 | rev 2: <a href="/shortlog/2ef0ac749a14">(0)</a> <a href="/shortlog/tip">tip</a>
239 | rev 2: <a href="/shortlog/2ef0ac749a14">(0)</a> <a href="/shortlog/tip">tip</a>
240 </div>
240 </div>
241
241
242 <table class="bigtable">
242 <table class="bigtable">
243 <tr>
243 <tr>
244 <th class="age">age</th>
244 <th class="age">age</th>
245 <th class="author">author</th>
245 <th class="author">author</th>
246 <th class="description">description</th>
246 <th class="description">description</th>
247 </tr>
247 </tr>
248 <tr class="parity0">
248 <tr class="parity0">
249 <td class="age">Thu Jan 01 00:00:00 1970 +0000</td>
249 <td class="age">Thu Jan 01 00:00:00 1970 +0000</td>
250 <td class="author">test</td>
250 <td class="author">test</td>
251 <td class="description"><a href="/rev/1d22e65f027e">branch</a><span class="branchhead">stable</span> <span class="tag">tip</span> <span class="tag">something</span> </td>
251 <td class="description"><a href="/rev/1d22e65f027e">branch</a><span class="branchhead">stable</span> <span class="tag">tip</span> <span class="tag">something</span> </td>
252 </tr>
252 </tr>
253 <tr class="parity1">
253 <tr class="parity1">
254 <td class="age">Thu Jan 01 00:00:00 1970 +0000</td>
254 <td class="age">Thu Jan 01 00:00:00 1970 +0000</td>
255 <td class="author">test</td>
255 <td class="author">test</td>
256 <td class="description"><a href="/rev/a4f92ed23982">Added tag 1.0 for changeset 2ef0ac749a14</a><span class="branchhead">default</span> </td>
256 <td class="description"><a href="/rev/a4f92ed23982">Added tag 1.0 for changeset 2ef0ac749a14</a><span class="branchhead">default</span> </td>
257 </tr>
257 </tr>
258 <tr class="parity0">
258 <tr class="parity0">
259 <td class="age">Thu Jan 01 00:00:00 1970 +0000</td>
259 <td class="age">Thu Jan 01 00:00:00 1970 +0000</td>
260 <td class="author">test</td>
260 <td class="author">test</td>
261 <td class="description"><a href="/rev/2ef0ac749a14">base</a><span class="tag">1.0</span> <span class="tag">anotherthing</span> </td>
261 <td class="description"><a href="/rev/2ef0ac749a14">base</a><span class="tag">1.0</span> <span class="tag">anotherthing</span> </td>
262 </tr>
262 </tr>
263
263
264 </table>
264 </table>
265
265
266 <div class="navigate">
266 <div class="navigate">
267 <a href="/shortlog/2?revcount=30">less</a>
267 <a href="/shortlog/2?revcount=30">less</a>
268 <a href="/shortlog/2?revcount=120">more</a>
268 <a href="/shortlog/2?revcount=120">more</a>
269 | rev 2: <a href="/shortlog/2ef0ac749a14">(0)</a> <a href="/shortlog/tip">tip</a>
269 | rev 2: <a href="/shortlog/2ef0ac749a14">(0)</a> <a href="/shortlog/tip">tip</a>
270 </div>
270 </div>
271
271
272 </div>
272 </div>
273 </div>
273 </div>
274
274
275 <script type="text/javascript">process_dates()</script>
275 <script type="text/javascript">process_dates()</script>
276
276
277
277
278 </body>
278 </body>
279 </html>
279 </html>
280
280
281 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/rev/0/'
281 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/rev/0/'
282 200 Script output follows
282 200 Script output follows
283
283
284 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
284 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
285 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
285 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
286 <head>
286 <head>
287 <link rel="icon" href="/static/hgicon.png" type="image/png" />
287 <link rel="icon" href="/static/hgicon.png" type="image/png" />
288 <meta name="robots" content="index, nofollow" />
288 <meta name="robots" content="index, nofollow" />
289 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
289 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
290 <script type="text/javascript" src="/static/mercurial.js"></script>
290 <script type="text/javascript" src="/static/mercurial.js"></script>
291
291
292 <title>test: 2ef0ac749a14</title>
292 <title>test: 2ef0ac749a14</title>
293 </head>
293 </head>
294 <body>
294 <body>
295 <div class="container">
295 <div class="container">
296 <div class="menu">
296 <div class="menu">
297 <div class="logo">
297 <div class="logo">
298 <a href="http://mercurial.selenic.com/">
298 <a href="http://mercurial.selenic.com/">
299 <img src="/static/hglogo.png" alt="mercurial" /></a>
299 <img src="/static/hglogo.png" alt="mercurial" /></a>
300 </div>
300 </div>
301 <ul>
301 <ul>
302 <li><a href="/shortlog/2ef0ac749a14">log</a></li>
302 <li><a href="/shortlog/2ef0ac749a14">log</a></li>
303 <li><a href="/graph/2ef0ac749a14">graph</a></li>
303 <li><a href="/graph/2ef0ac749a14">graph</a></li>
304 <li><a href="/tags">tags</a></li>
304 <li><a href="/tags">tags</a></li>
305 <li><a href="/bookmarks">bookmarks</a></li>
305 <li><a href="/bookmarks">bookmarks</a></li>
306 <li><a href="/branches">branches</a></li>
306 <li><a href="/branches">branches</a></li>
307 </ul>
307 </ul>
308 <ul>
308 <ul>
309 <li class="active">changeset</li>
309 <li class="active">changeset</li>
310 <li><a href="/raw-rev/2ef0ac749a14">raw</a></li>
310 <li><a href="/raw-rev/2ef0ac749a14">raw</a></li>
311 <li><a href="/file/2ef0ac749a14">browse</a></li>
311 <li><a href="/file/2ef0ac749a14">browse</a></li>
312 </ul>
312 </ul>
313 <ul>
313 <ul>
314
314
315 </ul>
315 </ul>
316 <ul>
316 <ul>
317 <li><a href="/help">help</a></li>
317 <li><a href="/help">help</a></li>
318 </ul>
318 </ul>
319 </div>
319 </div>
320
320
321 <div class="main">
321 <div class="main">
322
322
323 <h2><a href="/">test</a></h2>
323 <h2><a href="/">test</a></h2>
324 <h3>changeset 0:2ef0ac749a14 <span class="tag">1.0</span> <span class="tag">anotherthing</span> </h3>
324 <h3>changeset 0:2ef0ac749a14 <span class="tag">1.0</span> <span class="tag">anotherthing</span> </h3>
325
325
326 <form class="search" action="/log">
326 <form class="search" action="/log">
327
327
328 <p><input name="rev" id="search1" type="text" size="30" /></p>
328 <p><input name="rev" id="search1" type="text" size="30" /></p>
329 <div id="hint">find changesets by author, revision,
329 <div id="hint">find changesets by author, revision,
330 files, or words in the commit message</div>
330 files, or words in the commit message</div>
331 </form>
331 </form>
332
332
333 <div class="description">base</div>
333 <div class="description">base</div>
334
334
335 <table id="changesetEntry">
335 <table id="changesetEntry">
336 <tr>
336 <tr>
337 <th class="author">author</th>
337 <th class="author">author</th>
338 <td class="author">&#116;&#101;&#115;&#116;</td>
338 <td class="author">&#116;&#101;&#115;&#116;</td>
339 </tr>
339 </tr>
340 <tr>
340 <tr>
341 <th class="date">date</th>
341 <th class="date">date</th>
342 <td class="date age">Thu Jan 01 00:00:00 1970 +0000</td></tr>
342 <td class="date age">Thu Jan 01 00:00:00 1970 +0000</td></tr>
343 <tr>
343 <tr>
344 <th class="author">parents</th>
344 <th class="author">parents</th>
345 <td class="author"></td>
345 <td class="author"></td>
346 </tr>
346 </tr>
347 <tr>
347 <tr>
348 <th class="author">children</th>
348 <th class="author">children</th>
349 <td class="author"> <a href="/rev/a4f92ed23982">a4f92ed23982</a></td>
349 <td class="author"> <a href="/rev/a4f92ed23982">a4f92ed23982</a></td>
350 </tr>
350 </tr>
351 <tr>
351 <tr>
352 <th class="files">files</th>
352 <th class="files">files</th>
353 <td class="files"><a href="/file/2ef0ac749a14/da/foo">da/foo</a> <a href="/file/2ef0ac749a14/foo">foo</a> </td>
353 <td class="files"><a href="/file/2ef0ac749a14/da/foo">da/foo</a> <a href="/file/2ef0ac749a14/foo">foo</a> </td>
354 </tr>
354 </tr>
355 <tr>
355 <tr>
356 <th class="diffstat">diffstat</th>
356 <th class="diffstat">diffstat</th>
357 <td class="diffstat">
357 <td class="diffstat">
358 2 files changed, 2 insertions(+), 0 deletions(-)
358 2 files changed, 2 insertions(+), 0 deletions(-)
359
359
360 <a id="diffstatexpand" href="javascript:showDiffstat()"/>[+]</a>
360 <a id="diffstatexpand" href="javascript:showDiffstat()"/>[<tt>+</tt>]</a>
361 <div id="diffstatdetails" style="display:none;">
361 <div id="diffstatdetails" style="display:none;">
362 <a href="javascript:hideDiffstat()"/>[-]</a>
362 <a href="javascript:hideDiffstat()"/>[<tt>-</tt>]</a>
363 <p>
363 <p>
364 <table> <tr class="parity0">
364 <table> <tr class="parity0">
365 <td class="diffstat-file"><a href="#l1.1">da/foo</a></td>
365 <td class="diffstat-file"><a href="#l1.1">da/foo</a></td>
366 <td class="diffstat-total" align="right">1</td>
366 <td class="diffstat-total" align="right">1</td>
367 <td class="diffstat-graph">
367 <td class="diffstat-graph">
368 <span class="diffstat-add" style="width:100.0%;">&nbsp;</span>
368 <span class="diffstat-add" style="width:100.0%;">&nbsp;</span>
369 <span class="diffstat-remove" style="width:0.0%;">&nbsp;</span>
369 <span class="diffstat-remove" style="width:0.0%;">&nbsp;</span>
370 </td>
370 </td>
371 </tr>
371 </tr>
372 <tr class="parity1">
372 <tr class="parity1">
373 <td class="diffstat-file"><a href="#l2.1">foo</a></td>
373 <td class="diffstat-file"><a href="#l2.1">foo</a></td>
374 <td class="diffstat-total" align="right">1</td>
374 <td class="diffstat-total" align="right">1</td>
375 <td class="diffstat-graph">
375 <td class="diffstat-graph">
376 <span class="diffstat-add" style="width:100.0%;">&nbsp;</span>
376 <span class="diffstat-add" style="width:100.0%;">&nbsp;</span>
377 <span class="diffstat-remove" style="width:0.0%;">&nbsp;</span>
377 <span class="diffstat-remove" style="width:0.0%;">&nbsp;</span>
378 </td>
378 </td>
379 </tr>
379 </tr>
380 </table>
380 </table>
381 </div>
381 </div>
382 </td>
382 </td>
383 </tr>
383 </tr>
384 </table>
384 </table>
385
385
386 <div class="overflow">
386 <div class="overflow">
387 <div class="sourcefirst"> line diff</div>
387 <div class="sourcefirst"> line diff</div>
388
388
389 <div class="source bottomline parity0"><pre><a href="#l1.1" id="l1.1"> 1.1</a> <span class="minusline">--- /dev/null Thu Jan 01 00:00:00 1970 +0000
389 <div class="source bottomline parity0"><pre><a href="#l1.1" id="l1.1"> 1.1</a> <span class="minusline">--- /dev/null Thu Jan 01 00:00:00 1970 +0000
390 </span><a href="#l1.2" id="l1.2"> 1.2</a> <span class="plusline">+++ b/da/foo Thu Jan 01 00:00:00 1970 +0000
390 </span><a href="#l1.2" id="l1.2"> 1.2</a> <span class="plusline">+++ b/da/foo Thu Jan 01 00:00:00 1970 +0000
391 </span><a href="#l1.3" id="l1.3"> 1.3</a> <span class="atline">@@ -0,0 +1,1 @@
391 </span><a href="#l1.3" id="l1.3"> 1.3</a> <span class="atline">@@ -0,0 +1,1 @@
392 </span><a href="#l1.4" id="l1.4"> 1.4</a> <span class="plusline">+foo
392 </span><a href="#l1.4" id="l1.4"> 1.4</a> <span class="plusline">+foo
393 </span></pre></div><div class="source bottomline parity1"><pre><a href="#l2.1" id="l2.1"> 2.1</a> <span class="minusline">--- /dev/null Thu Jan 01 00:00:00 1970 +0000
393 </span></pre></div><div class="source bottomline parity1"><pre><a href="#l2.1" id="l2.1"> 2.1</a> <span class="minusline">--- /dev/null Thu Jan 01 00:00:00 1970 +0000
394 </span><a href="#l2.2" id="l2.2"> 2.2</a> <span class="plusline">+++ b/foo Thu Jan 01 00:00:00 1970 +0000
394 </span><a href="#l2.2" id="l2.2"> 2.2</a> <span class="plusline">+++ b/foo Thu Jan 01 00:00:00 1970 +0000
395 </span><a href="#l2.3" id="l2.3"> 2.3</a> <span class="atline">@@ -0,0 +1,1 @@
395 </span><a href="#l2.3" id="l2.3"> 2.3</a> <span class="atline">@@ -0,0 +1,1 @@
396 </span><a href="#l2.4" id="l2.4"> 2.4</a> <span class="plusline">+foo
396 </span><a href="#l2.4" id="l2.4"> 2.4</a> <span class="plusline">+foo
397 </span></pre></div>
397 </span></pre></div>
398 </div>
398 </div>
399
399
400 </div>
400 </div>
401 </div>
401 </div>
402 <script type="text/javascript">process_dates()</script>
402 <script type="text/javascript">process_dates()</script>
403
403
404
404
405 </body>
405 </body>
406 </html>
406 </html>
407
407
408 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/rev/1/?style=raw'
408 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/rev/1/?style=raw'
409 200 Script output follows
409 200 Script output follows
410
410
411
411
412 # HG changeset patch
412 # HG changeset patch
413 # User test
413 # User test
414 # Date 0 0
414 # Date 0 0
415 # Node ID a4f92ed23982be056b9852de5dfe873eaac7f0de
415 # Node ID a4f92ed23982be056b9852de5dfe873eaac7f0de
416 # Parent 2ef0ac749a14e4f57a5a822464a0902c6f7f448f
416 # Parent 2ef0ac749a14e4f57a5a822464a0902c6f7f448f
417 Added tag 1.0 for changeset 2ef0ac749a14
417 Added tag 1.0 for changeset 2ef0ac749a14
418
418
419 diff -r 2ef0ac749a14 -r a4f92ed23982 .hgtags
419 diff -r 2ef0ac749a14 -r a4f92ed23982 .hgtags
420 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
420 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
421 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
421 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
422 @@ -0,0 +1,1 @@
422 @@ -0,0 +1,1 @@
423 +2ef0ac749a14e4f57a5a822464a0902c6f7f448f 1.0
423 +2ef0ac749a14e4f57a5a822464a0902c6f7f448f 1.0
424
424
425 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/log?rev=base'
425 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/log?rev=base'
426 200 Script output follows
426 200 Script output follows
427
427
428 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
428 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
429 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
429 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
430 <head>
430 <head>
431 <link rel="icon" href="/static/hgicon.png" type="image/png" />
431 <link rel="icon" href="/static/hgicon.png" type="image/png" />
432 <meta name="robots" content="index, nofollow" />
432 <meta name="robots" content="index, nofollow" />
433 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
433 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
434 <script type="text/javascript" src="/static/mercurial.js"></script>
434 <script type="text/javascript" src="/static/mercurial.js"></script>
435
435
436 <title>test: searching for base</title>
436 <title>test: searching for base</title>
437 </head>
437 </head>
438 <body>
438 <body>
439
439
440 <div class="container">
440 <div class="container">
441 <div class="menu">
441 <div class="menu">
442 <div class="logo">
442 <div class="logo">
443 <a href="http://mercurial.selenic.com/">
443 <a href="http://mercurial.selenic.com/">
444 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial"></a>
444 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial"></a>
445 </div>
445 </div>
446 <ul>
446 <ul>
447 <li><a href="/shortlog">log</a></li>
447 <li><a href="/shortlog">log</a></li>
448 <li><a href="/graph">graph</a></li>
448 <li><a href="/graph">graph</a></li>
449 <li><a href="/tags">tags</a></li>
449 <li><a href="/tags">tags</a></li>
450 <li><a href="/bookmarks">bookmarks</a></li>
450 <li><a href="/bookmarks">bookmarks</a></li>
451 <li><a href="/branches">branches</a></li>
451 <li><a href="/branches">branches</a></li>
452 <li><a href="/help">help</a></li>
452 <li><a href="/help">help</a></li>
453 </ul>
453 </ul>
454 </div>
454 </div>
455
455
456 <div class="main">
456 <div class="main">
457 <h2><a href="/">test</a></h2>
457 <h2><a href="/">test</a></h2>
458 <h3>searching for 'base'</h3>
458 <h3>searching for 'base'</h3>
459
459
460 <form class="search" action="/log">
460 <form class="search" action="/log">
461
461
462 <p><input name="rev" id="search1" type="text" size="30"></p>
462 <p><input name="rev" id="search1" type="text" size="30"></p>
463 <div id="hint">find changesets by author, revision,
463 <div id="hint">find changesets by author, revision,
464 files, or words in the commit message</div>
464 files, or words in the commit message</div>
465 </form>
465 </form>
466
466
467 <div class="navigate">
467 <div class="navigate">
468 <a href="/search/?rev=base&revcount=5">less</a>
468 <a href="/search/?rev=base&revcount=5">less</a>
469 <a href="/search/?rev=base&revcount=20">more</a>
469 <a href="/search/?rev=base&revcount=20">more</a>
470 </div>
470 </div>
471
471
472 <table class="bigtable">
472 <table class="bigtable">
473 <tr>
473 <tr>
474 <th class="age">age</th>
474 <th class="age">age</th>
475 <th class="author">author</th>
475 <th class="author">author</th>
476 <th class="description">description</th>
476 <th class="description">description</th>
477 </tr>
477 </tr>
478 <tr class="parity0">
478 <tr class="parity0">
479 <td class="age">Thu Jan 01 00:00:00 1970 +0000</td>
479 <td class="age">Thu Jan 01 00:00:00 1970 +0000</td>
480 <td class="author">test</td>
480 <td class="author">test</td>
481 <td class="description"><a href="/rev/2ef0ac749a14">base</a><span class="tag">1.0</span> <span class="tag">anotherthing</span> </td>
481 <td class="description"><a href="/rev/2ef0ac749a14">base</a><span class="tag">1.0</span> <span class="tag">anotherthing</span> </td>
482 </tr>
482 </tr>
483
483
484 </table>
484 </table>
485
485
486 <div class="navigate">
486 <div class="navigate">
487 <a href="/search/?rev=base&revcount=5">less</a>
487 <a href="/search/?rev=base&revcount=5">less</a>
488 <a href="/search/?rev=base&revcount=20">more</a>
488 <a href="/search/?rev=base&revcount=20">more</a>
489 </div>
489 </div>
490
490
491 </div>
491 </div>
492 </div>
492 </div>
493
493
494 <script type="text/javascript">process_dates()</script>
494 <script type="text/javascript">process_dates()</script>
495
495
496
496
497 </body>
497 </body>
498 </html>
498 </html>
499
499
500
500
501 File-related
501 File-related
502
502
503 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file/1/foo/?style=raw'
503 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file/1/foo/?style=raw'
504 200 Script output follows
504 200 Script output follows
505
505
506 foo
506 foo
507 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/annotate/1/foo/?style=raw'
507 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/annotate/1/foo/?style=raw'
508 200 Script output follows
508 200 Script output follows
509
509
510
510
511 test@0: foo
511 test@0: foo
512
512
513
513
514
514
515
515
516 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file/1/?style=raw'
516 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file/1/?style=raw'
517 200 Script output follows
517 200 Script output follows
518
518
519
519
520 drwxr-xr-x da
520 drwxr-xr-x da
521 -rw-r--r-- 45 .hgtags
521 -rw-r--r-- 45 .hgtags
522 -rw-r--r-- 4 foo
522 -rw-r--r-- 4 foo
523
523
524
524
525 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file/1/foo'
525 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file/1/foo'
526 200 Script output follows
526 200 Script output follows
527
527
528 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
528 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
529 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
529 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
530 <head>
530 <head>
531 <link rel="icon" href="/static/hgicon.png" type="image/png" />
531 <link rel="icon" href="/static/hgicon.png" type="image/png" />
532 <meta name="robots" content="index, nofollow" />
532 <meta name="robots" content="index, nofollow" />
533 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
533 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
534 <script type="text/javascript" src="/static/mercurial.js"></script>
534 <script type="text/javascript" src="/static/mercurial.js"></script>
535
535
536 <title>test: a4f92ed23982 foo</title>
536 <title>test: a4f92ed23982 foo</title>
537 </head>
537 </head>
538 <body>
538 <body>
539
539
540 <div class="container">
540 <div class="container">
541 <div class="menu">
541 <div class="menu">
542 <div class="logo">
542 <div class="logo">
543 <a href="http://mercurial.selenic.com/">
543 <a href="http://mercurial.selenic.com/">
544 <img src="/static/hglogo.png" alt="mercurial" /></a>
544 <img src="/static/hglogo.png" alt="mercurial" /></a>
545 </div>
545 </div>
546 <ul>
546 <ul>
547 <li><a href="/shortlog/a4f92ed23982">log</a></li>
547 <li><a href="/shortlog/a4f92ed23982">log</a></li>
548 <li><a href="/graph/a4f92ed23982">graph</a></li>
548 <li><a href="/graph/a4f92ed23982">graph</a></li>
549 <li><a href="/tags">tags</a></li>
549 <li><a href="/tags">tags</a></li>
550 <li><a href="/branches">branches</a></li>
550 <li><a href="/branches">branches</a></li>
551 </ul>
551 </ul>
552 <ul>
552 <ul>
553 <li><a href="/rev/a4f92ed23982">changeset</a></li>
553 <li><a href="/rev/a4f92ed23982">changeset</a></li>
554 <li><a href="/file/a4f92ed23982/">browse</a></li>
554 <li><a href="/file/a4f92ed23982/">browse</a></li>
555 </ul>
555 </ul>
556 <ul>
556 <ul>
557 <li class="active">file</li>
557 <li class="active">file</li>
558 <li><a href="/file/tip/foo">latest</a></li>
558 <li><a href="/file/tip/foo">latest</a></li>
559 <li><a href="/diff/a4f92ed23982/foo">diff</a></li>
559 <li><a href="/diff/a4f92ed23982/foo">diff</a></li>
560 <li><a href="/annotate/a4f92ed23982/foo">annotate</a></li>
560 <li><a href="/annotate/a4f92ed23982/foo">annotate</a></li>
561 <li><a href="/log/a4f92ed23982/foo">file log</a></li>
561 <li><a href="/log/a4f92ed23982/foo">file log</a></li>
562 <li><a href="/raw-file/a4f92ed23982/foo">raw</a></li>
562 <li><a href="/raw-file/a4f92ed23982/foo">raw</a></li>
563 </ul>
563 </ul>
564 <ul>
564 <ul>
565 <li><a href="/help">help</a></li>
565 <li><a href="/help">help</a></li>
566 </ul>
566 </ul>
567 </div>
567 </div>
568
568
569 <div class="main">
569 <div class="main">
570 <h2><a href="/">test</a></h2>
570 <h2><a href="/">test</a></h2>
571 <h3>view foo @ 1:a4f92ed23982</h3>
571 <h3>view foo @ 1:a4f92ed23982</h3>
572
572
573 <form class="search" action="/log">
573 <form class="search" action="/log">
574
574
575 <p><input name="rev" id="search1" type="text" size="30" /></p>
575 <p><input name="rev" id="search1" type="text" size="30" /></p>
576 <div id="hint">find changesets by author, revision,
576 <div id="hint">find changesets by author, revision,
577 files, or words in the commit message</div>
577 files, or words in the commit message</div>
578 </form>
578 </form>
579
579
580 <div class="description">Added tag 1.0 for changeset 2ef0ac749a14</div>
580 <div class="description">Added tag 1.0 for changeset 2ef0ac749a14</div>
581
581
582 <table id="changesetEntry">
582 <table id="changesetEntry">
583 <tr>
583 <tr>
584 <th class="author">author</th>
584 <th class="author">author</th>
585 <td class="author">&#116;&#101;&#115;&#116;</td>
585 <td class="author">&#116;&#101;&#115;&#116;</td>
586 </tr>
586 </tr>
587 <tr>
587 <tr>
588 <th class="date">date</th>
588 <th class="date">date</th>
589 <td class="date age">Thu Jan 01 00:00:00 1970 +0000</td>
589 <td class="date age">Thu Jan 01 00:00:00 1970 +0000</td>
590 </tr>
590 </tr>
591 <tr>
591 <tr>
592 <th class="author">parents</th>
592 <th class="author">parents</th>
593 <td class="author"></td>
593 <td class="author"></td>
594 </tr>
594 </tr>
595 <tr>
595 <tr>
596 <th class="author">children</th>
596 <th class="author">children</th>
597 <td class="author"><a href="/file/1d22e65f027e/foo">1d22e65f027e</a> </td>
597 <td class="author"><a href="/file/1d22e65f027e/foo">1d22e65f027e</a> </td>
598 </tr>
598 </tr>
599
599
600 </table>
600 </table>
601
601
602 <div class="overflow">
602 <div class="overflow">
603 <div class="sourcefirst"> line source</div>
603 <div class="sourcefirst"> line source</div>
604
604
605 <div class="parity0 source"><a href="#l1" id="l1"> 1</a> foo
605 <div class="parity0 source"><a href="#l1" id="l1"> 1</a> foo
606 </div>
606 </div>
607 <div class="sourcelast"></div>
607 <div class="sourcelast"></div>
608 </div>
608 </div>
609 </div>
609 </div>
610 </div>
610 </div>
611
611
612 <script type="text/javascript">process_dates()</script>
612 <script type="text/javascript">process_dates()</script>
613
613
614
614
615 </body>
615 </body>
616 </html>
616 </html>
617
617
618 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/filediff/1/foo/?style=raw'
618 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/filediff/1/foo/?style=raw'
619 200 Script output follows
619 200 Script output follows
620
620
621
621
622 diff -r 000000000000 -r a4f92ed23982 foo
622 diff -r 000000000000 -r a4f92ed23982 foo
623 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
623 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
624 +++ b/foo Thu Jan 01 00:00:00 1970 +0000
624 +++ b/foo Thu Jan 01 00:00:00 1970 +0000
625 @@ -0,0 +1,1 @@
625 @@ -0,0 +1,1 @@
626 +foo
626 +foo
627
627
628
628
629
629
630
630
631
631
632 Overviews
632 Overviews
633
633
634 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/raw-tags'
634 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/raw-tags'
635 200 Script output follows
635 200 Script output follows
636
636
637 tip 1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe
637 tip 1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe
638 1.0 2ef0ac749a14e4f57a5a822464a0902c6f7f448f
638 1.0 2ef0ac749a14e4f57a5a822464a0902c6f7f448f
639 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/raw-branches'
639 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/raw-branches'
640 200 Script output follows
640 200 Script output follows
641
641
642 stable 1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe open
642 stable 1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe open
643 default a4f92ed23982be056b9852de5dfe873eaac7f0de inactive
643 default a4f92ed23982be056b9852de5dfe873eaac7f0de inactive
644 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/raw-bookmarks'
644 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/raw-bookmarks'
645 200 Script output follows
645 200 Script output follows
646
646
647 anotherthing 2ef0ac749a14e4f57a5a822464a0902c6f7f448f
647 anotherthing 2ef0ac749a14e4f57a5a822464a0902c6f7f448f
648 something 1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe
648 something 1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe
649 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/summary/?style=gitweb'
649 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/summary/?style=gitweb'
650 200 Script output follows
650 200 Script output follows
651
651
652 <?xml version="1.0" encoding="ascii"?>
652 <?xml version="1.0" encoding="ascii"?>
653 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
653 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
654 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
654 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
655 <head>
655 <head>
656 <link rel="icon" href="/static/hgicon.png" type="image/png" />
656 <link rel="icon" href="/static/hgicon.png" type="image/png" />
657 <meta name="robots" content="index, nofollow"/>
657 <meta name="robots" content="index, nofollow"/>
658 <link rel="stylesheet" href="/static/style-gitweb.css" type="text/css" />
658 <link rel="stylesheet" href="/static/style-gitweb.css" type="text/css" />
659 <script type="text/javascript" src="/static/mercurial.js"></script>
659 <script type="text/javascript" src="/static/mercurial.js"></script>
660
660
661 <title>test: Summary</title>
661 <title>test: Summary</title>
662 <link rel="alternate" type="application/atom+xml"
662 <link rel="alternate" type="application/atom+xml"
663 href="/atom-log" title="Atom feed for test"/>
663 href="/atom-log" title="Atom feed for test"/>
664 <link rel="alternate" type="application/rss+xml"
664 <link rel="alternate" type="application/rss+xml"
665 href="/rss-log" title="RSS feed for test"/>
665 href="/rss-log" title="RSS feed for test"/>
666 </head>
666 </head>
667 <body>
667 <body>
668
668
669 <div class="page_header">
669 <div class="page_header">
670 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="/summary?style=gitweb">test</a> / summary
670 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="/summary?style=gitweb">test</a> / summary
671
671
672 <form action="/log">
672 <form action="/log">
673 <input type="hidden" name="style" value="gitweb" />
673 <input type="hidden" name="style" value="gitweb" />
674 <div class="search">
674 <div class="search">
675 <input type="text" name="rev" />
675 <input type="text" name="rev" />
676 </div>
676 </div>
677 </form>
677 </form>
678 </div>
678 </div>
679
679
680 <div class="page_nav">
680 <div class="page_nav">
681 summary |
681 summary |
682 <a href="/shortlog?style=gitweb">shortlog</a> |
682 <a href="/shortlog?style=gitweb">shortlog</a> |
683 <a href="/log?style=gitweb">changelog</a> |
683 <a href="/log?style=gitweb">changelog</a> |
684 <a href="/graph?style=gitweb">graph</a> |
684 <a href="/graph?style=gitweb">graph</a> |
685 <a href="/tags?style=gitweb">tags</a> |
685 <a href="/tags?style=gitweb">tags</a> |
686 <a href="/bookmarks?style=gitweb">bookmarks</a> |
686 <a href="/bookmarks?style=gitweb">bookmarks</a> |
687 <a href="/branches?style=gitweb">branches</a> |
687 <a href="/branches?style=gitweb">branches</a> |
688 <a href="/file/1d22e65f027e?style=gitweb">files</a> |
688 <a href="/file/1d22e65f027e?style=gitweb">files</a> |
689 <a href="/help?style=gitweb">help</a>
689 <a href="/help?style=gitweb">help</a>
690 <br/>
690 <br/>
691 </div>
691 </div>
692
692
693 <div class="title">&nbsp;</div>
693 <div class="title">&nbsp;</div>
694 <table cellspacing="0">
694 <table cellspacing="0">
695 <tr><td>description</td><td>unknown</td></tr>
695 <tr><td>description</td><td>unknown</td></tr>
696 <tr><td>owner</td><td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td></tr>
696 <tr><td>owner</td><td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td></tr>
697 <tr><td>last change</td><td>Thu, 01 Jan 1970 00:00:00 +0000</td></tr>
697 <tr><td>last change</td><td>Thu, 01 Jan 1970 00:00:00 +0000</td></tr>
698 </table>
698 </table>
699
699
700 <div><a class="title" href="/shortlog?style=gitweb">changes</a></div>
700 <div><a class="title" href="/shortlog?style=gitweb">changes</a></div>
701 <table cellspacing="0">
701 <table cellspacing="0">
702
702
703 <tr class="parity0">
703 <tr class="parity0">
704 <td class="age"><i class="age">Thu Jan 01 00:00:00 1970 +0000</i></td>
704 <td class="age"><i class="age">Thu Jan 01 00:00:00 1970 +0000</i></td>
705 <td><i>test</i></td>
705 <td><i>test</i></td>
706 <td>
706 <td>
707 <a class="list" href="/rev/1d22e65f027e?style=gitweb">
707 <a class="list" href="/rev/1d22e65f027e?style=gitweb">
708 <b>branch</b>
708 <b>branch</b>
709 <span class="logtags"><span class="branchtag" title="stable">stable</span> <span class="tagtag" title="tip">tip</span> <span class="bookmarktag" title="something">something</span> </span>
709 <span class="logtags"><span class="branchtag" title="stable">stable</span> <span class="tagtag" title="tip">tip</span> <span class="bookmarktag" title="something">something</span> </span>
710 </a>
710 </a>
711 </td>
711 </td>
712 <td class="link" nowrap>
712 <td class="link" nowrap>
713 <a href="/rev/1d22e65f027e?style=gitweb">changeset</a> |
713 <a href="/rev/1d22e65f027e?style=gitweb">changeset</a> |
714 <a href="/file/1d22e65f027e?style=gitweb">files</a>
714 <a href="/file/1d22e65f027e?style=gitweb">files</a>
715 </td>
715 </td>
716 </tr>
716 </tr>
717 <tr class="parity1">
717 <tr class="parity1">
718 <td class="age"><i class="age">Thu Jan 01 00:00:00 1970 +0000</i></td>
718 <td class="age"><i class="age">Thu Jan 01 00:00:00 1970 +0000</i></td>
719 <td><i>test</i></td>
719 <td><i>test</i></td>
720 <td>
720 <td>
721 <a class="list" href="/rev/a4f92ed23982?style=gitweb">
721 <a class="list" href="/rev/a4f92ed23982?style=gitweb">
722 <b>Added tag 1.0 for changeset 2ef0ac749a14</b>
722 <b>Added tag 1.0 for changeset 2ef0ac749a14</b>
723 <span class="logtags"><span class="branchtag" title="default">default</span> </span>
723 <span class="logtags"><span class="branchtag" title="default">default</span> </span>
724 </a>
724 </a>
725 </td>
725 </td>
726 <td class="link" nowrap>
726 <td class="link" nowrap>
727 <a href="/rev/a4f92ed23982?style=gitweb">changeset</a> |
727 <a href="/rev/a4f92ed23982?style=gitweb">changeset</a> |
728 <a href="/file/a4f92ed23982?style=gitweb">files</a>
728 <a href="/file/a4f92ed23982?style=gitweb">files</a>
729 </td>
729 </td>
730 </tr>
730 </tr>
731 <tr class="parity0">
731 <tr class="parity0">
732 <td class="age"><i class="age">Thu Jan 01 00:00:00 1970 +0000</i></td>
732 <td class="age"><i class="age">Thu Jan 01 00:00:00 1970 +0000</i></td>
733 <td><i>test</i></td>
733 <td><i>test</i></td>
734 <td>
734 <td>
735 <a class="list" href="/rev/2ef0ac749a14?style=gitweb">
735 <a class="list" href="/rev/2ef0ac749a14?style=gitweb">
736 <b>base</b>
736 <b>base</b>
737 <span class="logtags"><span class="tagtag" title="1.0">1.0</span> <span class="bookmarktag" title="anotherthing">anotherthing</span> </span>
737 <span class="logtags"><span class="tagtag" title="1.0">1.0</span> <span class="bookmarktag" title="anotherthing">anotherthing</span> </span>
738 </a>
738 </a>
739 </td>
739 </td>
740 <td class="link" nowrap>
740 <td class="link" nowrap>
741 <a href="/rev/2ef0ac749a14?style=gitweb">changeset</a> |
741 <a href="/rev/2ef0ac749a14?style=gitweb">changeset</a> |
742 <a href="/file/2ef0ac749a14?style=gitweb">files</a>
742 <a href="/file/2ef0ac749a14?style=gitweb">files</a>
743 </td>
743 </td>
744 </tr>
744 </tr>
745 <tr class="light"><td colspan="4"><a class="list" href="/shortlog?style=gitweb">...</a></td></tr>
745 <tr class="light"><td colspan="4"><a class="list" href="/shortlog?style=gitweb">...</a></td></tr>
746 </table>
746 </table>
747
747
748 <div><a class="title" href="/tags?style=gitweb">tags</a></div>
748 <div><a class="title" href="/tags?style=gitweb">tags</a></div>
749 <table cellspacing="0">
749 <table cellspacing="0">
750
750
751 <tr class="parity0">
751 <tr class="parity0">
752 <td class="age"><i class="age">Thu Jan 01 00:00:00 1970 +0000</i></td>
752 <td class="age"><i class="age">Thu Jan 01 00:00:00 1970 +0000</i></td>
753 <td><a class="list" href="/rev/2ef0ac749a14?style=gitweb"><b>1.0</b></a></td>
753 <td><a class="list" href="/rev/2ef0ac749a14?style=gitweb"><b>1.0</b></a></td>
754 <td class="link">
754 <td class="link">
755 <a href="/rev/2ef0ac749a14?style=gitweb">changeset</a> |
755 <a href="/rev/2ef0ac749a14?style=gitweb">changeset</a> |
756 <a href="/log/2ef0ac749a14?style=gitweb">changelog</a> |
756 <a href="/log/2ef0ac749a14?style=gitweb">changelog</a> |
757 <a href="/file/2ef0ac749a14?style=gitweb">files</a>
757 <a href="/file/2ef0ac749a14?style=gitweb">files</a>
758 </td>
758 </td>
759 </tr>
759 </tr>
760 <tr class="light"><td colspan="3"><a class="list" href="/tags?style=gitweb">...</a></td></tr>
760 <tr class="light"><td colspan="3"><a class="list" href="/tags?style=gitweb">...</a></td></tr>
761 </table>
761 </table>
762
762
763 <div><a class="title" href="/bookmarks?style=gitweb">bookmarks</a></div>
763 <div><a class="title" href="/bookmarks?style=gitweb">bookmarks</a></div>
764 <table cellspacing="0">
764 <table cellspacing="0">
765
765
766 <tr class="parity0">
766 <tr class="parity0">
767 <td class="age"><i class="age">Thu Jan 01 00:00:00 1970 +0000</i></td>
767 <td class="age"><i class="age">Thu Jan 01 00:00:00 1970 +0000</i></td>
768 <td><a class="list" href="/rev/2ef0ac749a14?style=gitweb"><b>anotherthing</b></a></td>
768 <td><a class="list" href="/rev/2ef0ac749a14?style=gitweb"><b>anotherthing</b></a></td>
769 <td class="link">
769 <td class="link">
770 <a href="/rev/2ef0ac749a14?style=gitweb">changeset</a> |
770 <a href="/rev/2ef0ac749a14?style=gitweb">changeset</a> |
771 <a href="/log/2ef0ac749a14?style=gitweb">changelog</a> |
771 <a href="/log/2ef0ac749a14?style=gitweb">changelog</a> |
772 <a href="/file/2ef0ac749a14?style=gitweb">files</a>
772 <a href="/file/2ef0ac749a14?style=gitweb">files</a>
773 </td>
773 </td>
774 </tr>
774 </tr>
775 <tr class="parity1">
775 <tr class="parity1">
776 <td class="age"><i class="age">Thu Jan 01 00:00:00 1970 +0000</i></td>
776 <td class="age"><i class="age">Thu Jan 01 00:00:00 1970 +0000</i></td>
777 <td><a class="list" href="/rev/1d22e65f027e?style=gitweb"><b>something</b></a></td>
777 <td><a class="list" href="/rev/1d22e65f027e?style=gitweb"><b>something</b></a></td>
778 <td class="link">
778 <td class="link">
779 <a href="/rev/1d22e65f027e?style=gitweb">changeset</a> |
779 <a href="/rev/1d22e65f027e?style=gitweb">changeset</a> |
780 <a href="/log/1d22e65f027e?style=gitweb">changelog</a> |
780 <a href="/log/1d22e65f027e?style=gitweb">changelog</a> |
781 <a href="/file/1d22e65f027e?style=gitweb">files</a>
781 <a href="/file/1d22e65f027e?style=gitweb">files</a>
782 </td>
782 </td>
783 </tr>
783 </tr>
784 <tr class="light"><td colspan="3"><a class="list" href="/bookmarks?style=gitweb">...</a></td></tr>
784 <tr class="light"><td colspan="3"><a class="list" href="/bookmarks?style=gitweb">...</a></td></tr>
785 </table>
785 </table>
786
786
787 <div><a class="title" href="#">branches</a></div>
787 <div><a class="title" href="#">branches</a></div>
788 <table cellspacing="0">
788 <table cellspacing="0">
789
789
790 <tr class="parity0">
790 <tr class="parity0">
791 <td class="age"><i class="age">Thu Jan 01 00:00:00 1970 +0000</i></td>
791 <td class="age"><i class="age">Thu Jan 01 00:00:00 1970 +0000</i></td>
792 <td><a class="list" href="/shortlog/1d22e65f027e?style=gitweb"><b>1d22e65f027e</b></a></td>
792 <td><a class="list" href="/shortlog/1d22e65f027e?style=gitweb"><b>1d22e65f027e</b></a></td>
793 <td class="">stable</td>
793 <td class="">stable</td>
794 <td class="link">
794 <td class="link">
795 <a href="/changeset/1d22e65f027e?style=gitweb">changeset</a> |
795 <a href="/changeset/1d22e65f027e?style=gitweb">changeset</a> |
796 <a href="/log/1d22e65f027e?style=gitweb">changelog</a> |
796 <a href="/log/1d22e65f027e?style=gitweb">changelog</a> |
797 <a href="/file/1d22e65f027e?style=gitweb">files</a>
797 <a href="/file/1d22e65f027e?style=gitweb">files</a>
798 </td>
798 </td>
799 </tr>
799 </tr>
800 <tr class="parity1">
800 <tr class="parity1">
801 <td class="age"><i class="age">Thu Jan 01 00:00:00 1970 +0000</i></td>
801 <td class="age"><i class="age">Thu Jan 01 00:00:00 1970 +0000</i></td>
802 <td><a class="list" href="/shortlog/a4f92ed23982?style=gitweb"><b>a4f92ed23982</b></a></td>
802 <td><a class="list" href="/shortlog/a4f92ed23982?style=gitweb"><b>a4f92ed23982</b></a></td>
803 <td class="">default</td>
803 <td class="">default</td>
804 <td class="link">
804 <td class="link">
805 <a href="/changeset/a4f92ed23982?style=gitweb">changeset</a> |
805 <a href="/changeset/a4f92ed23982?style=gitweb">changeset</a> |
806 <a href="/log/a4f92ed23982?style=gitweb">changelog</a> |
806 <a href="/log/a4f92ed23982?style=gitweb">changelog</a> |
807 <a href="/file/a4f92ed23982?style=gitweb">files</a>
807 <a href="/file/a4f92ed23982?style=gitweb">files</a>
808 </td>
808 </td>
809 </tr>
809 </tr>
810 <tr class="light">
810 <tr class="light">
811 <td colspan="4"><a class="list" href="#">...</a></td>
811 <td colspan="4"><a class="list" href="#">...</a></td>
812 </tr>
812 </tr>
813 </table>
813 </table>
814 <script type="text/javascript">process_dates()</script>
814 <script type="text/javascript">process_dates()</script>
815 <div class="page_footer">
815 <div class="page_footer">
816 <div class="page_footer_text">test</div>
816 <div class="page_footer_text">test</div>
817 <div class="rss_logo">
817 <div class="rss_logo">
818 <a href="/rss-log">RSS</a>
818 <a href="/rss-log">RSS</a>
819 <a href="/atom-log">Atom</a>
819 <a href="/atom-log">Atom</a>
820 </div>
820 </div>
821 <br />
821 <br />
822
822
823 </div>
823 </div>
824 </body>
824 </body>
825 </html>
825 </html>
826
826
827 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/graph/?style=gitweb'
827 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/graph/?style=gitweb'
828 200 Script output follows
828 200 Script output follows
829
829
830 <?xml version="1.0" encoding="ascii"?>
830 <?xml version="1.0" encoding="ascii"?>
831 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
831 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
832 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
832 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
833 <head>
833 <head>
834 <link rel="icon" href="/static/hgicon.png" type="image/png" />
834 <link rel="icon" href="/static/hgicon.png" type="image/png" />
835 <meta name="robots" content="index, nofollow"/>
835 <meta name="robots" content="index, nofollow"/>
836 <link rel="stylesheet" href="/static/style-gitweb.css" type="text/css" />
836 <link rel="stylesheet" href="/static/style-gitweb.css" type="text/css" />
837 <script type="text/javascript" src="/static/mercurial.js"></script>
837 <script type="text/javascript" src="/static/mercurial.js"></script>
838
838
839 <title>test: Graph</title>
839 <title>test: Graph</title>
840 <link rel="alternate" type="application/atom+xml"
840 <link rel="alternate" type="application/atom+xml"
841 href="/atom-log" title="Atom feed for test"/>
841 href="/atom-log" title="Atom feed for test"/>
842 <link rel="alternate" type="application/rss+xml"
842 <link rel="alternate" type="application/rss+xml"
843 href="/rss-log" title="RSS feed for test"/>
843 href="/rss-log" title="RSS feed for test"/>
844 <!--[if IE]><script type="text/javascript" src="/static/excanvas.js"></script><![endif]-->
844 <!--[if IE]><script type="text/javascript" src="/static/excanvas.js"></script><![endif]-->
845 </head>
845 </head>
846 <body>
846 <body>
847
847
848 <div class="page_header">
848 <div class="page_header">
849 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="/summary?style=gitweb">test</a> / graph
849 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="/summary?style=gitweb">test</a> / graph
850 </div>
850 </div>
851
851
852 <form action="/log">
852 <form action="/log">
853 <input type="hidden" name="style" value="gitweb" />
853 <input type="hidden" name="style" value="gitweb" />
854 <div class="search">
854 <div class="search">
855 <input type="text" name="rev" />
855 <input type="text" name="rev" />
856 </div>
856 </div>
857 </form>
857 </form>
858 <div class="page_nav">
858 <div class="page_nav">
859 <a href="/summary?style=gitweb">summary</a> |
859 <a href="/summary?style=gitweb">summary</a> |
860 <a href="/shortlog?style=gitweb">shortlog</a> |
860 <a href="/shortlog?style=gitweb">shortlog</a> |
861 <a href="/log/2?style=gitweb">changelog</a> |
861 <a href="/log/2?style=gitweb">changelog</a> |
862 graph |
862 graph |
863 <a href="/tags?style=gitweb">tags</a> |
863 <a href="/tags?style=gitweb">tags</a> |
864 <a href="/bookmarks?style=gitweb">bookmarks</a> |
864 <a href="/bookmarks?style=gitweb">bookmarks</a> |
865 <a href="/branches?style=gitweb">branches</a> |
865 <a href="/branches?style=gitweb">branches</a> |
866 <a href="/file/1d22e65f027e?style=gitweb">files</a> |
866 <a href="/file/1d22e65f027e?style=gitweb">files</a> |
867 <a href="/help?style=gitweb">help</a>
867 <a href="/help?style=gitweb">help</a>
868 <br/>
868 <br/>
869 <a href="/graph/2?style=gitweb&revcount=30">less</a>
869 <a href="/graph/2?style=gitweb&revcount=30">less</a>
870 <a href="/graph/2?style=gitweb&revcount=120">more</a>
870 <a href="/graph/2?style=gitweb&revcount=120">more</a>
871 | <a href="/graph/2ef0ac749a14?style=gitweb">(0)</a> <a href="/graph/2ef0ac749a14?style=gitweb">-2</a> <a href="/graph/tip?style=gitweb">tip</a> <br/>
871 | <a href="/graph/2ef0ac749a14?style=gitweb">(0)</a> <a href="/graph/2ef0ac749a14?style=gitweb">-2</a> <a href="/graph/tip?style=gitweb">tip</a> <br/>
872 </div>
872 </div>
873
873
874 <div class="title">&nbsp;</div>
874 <div class="title">&nbsp;</div>
875
875
876 <noscript>The revision graph only works with JavaScript-enabled browsers.</noscript>
876 <noscript>The revision graph only works with JavaScript-enabled browsers.</noscript>
877
877
878 <div id="wrapper">
878 <div id="wrapper">
879 <ul id="nodebgs"></ul>
879 <ul id="nodebgs"></ul>
880 <canvas id="graph" width="480" height="129"></canvas>
880 <canvas id="graph" width="480" height="129"></canvas>
881 <ul id="graphnodes"></ul>
881 <ul id="graphnodes"></ul>
882 </div>
882 </div>
883
883
884 <script>
884 <script>
885 <!-- hide script content
885 <!-- hide script content
886
886
887 var data = [["1d22e65f027e", [0, 1], [[0, 0, 1]], "branch", "test", "1970-01-01", ["stable", true], ["tip"], ["something"]], ["a4f92ed23982", [0, 1], [[0, 0, 1]], "Added tag 1.0 for changeset 2ef0ac749a14", "test", "1970-01-01", ["default", true], [], []], ["2ef0ac749a14", [0, 1], [], "base", "test", "1970-01-01", ["default", false], ["1.0"], ["anotherthing"]]];
887 var data = [["1d22e65f027e", [0, 1], [[0, 0, 1]], "branch", "test", "1970-01-01", ["stable", true], ["tip"], ["something"]], ["a4f92ed23982", [0, 1], [[0, 0, 1]], "Added tag 1.0 for changeset 2ef0ac749a14", "test", "1970-01-01", ["default", true], [], []], ["2ef0ac749a14", [0, 1], [], "base", "test", "1970-01-01", ["default", false], ["1.0"], ["anotherthing"]]];
888 var graph = new Graph();
888 var graph = new Graph();
889 graph.scale(39);
889 graph.scale(39);
890
890
891 graph.edge = function(x0, y0, x1, y1, color) {
891 graph.edge = function(x0, y0, x1, y1, color) {
892
892
893 this.setColor(color, 0.0, 0.65);
893 this.setColor(color, 0.0, 0.65);
894 this.ctx.beginPath();
894 this.ctx.beginPath();
895 this.ctx.moveTo(x0, y0);
895 this.ctx.moveTo(x0, y0);
896 this.ctx.lineTo(x1, y1);
896 this.ctx.lineTo(x1, y1);
897 this.ctx.stroke();
897 this.ctx.stroke();
898
898
899 }
899 }
900
900
901 var revlink = '<li style="_STYLE"><span class="desc">';
901 var revlink = '<li style="_STYLE"><span class="desc">';
902 revlink += '<a class="list" href="/rev/_NODEID?style=gitweb" title="_NODEID"><b>_DESC</b></a>';
902 revlink += '<a class="list" href="/rev/_NODEID?style=gitweb" title="_NODEID"><b>_DESC</b></a>';
903 revlink += '</span> _TAGS';
903 revlink += '</span> _TAGS';
904 revlink += '<span class="info">_DATE, by _USER</span></li>';
904 revlink += '<span class="info">_DATE, by _USER</span></li>';
905
905
906 graph.vertex = function(x, y, color, parity, cur) {
906 graph.vertex = function(x, y, color, parity, cur) {
907
907
908 this.ctx.beginPath();
908 this.ctx.beginPath();
909 color = this.setColor(color, 0.25, 0.75);
909 color = this.setColor(color, 0.25, 0.75);
910 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
910 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
911 this.ctx.fill();
911 this.ctx.fill();
912
912
913 var bg = '<li class="bg parity' + parity + '"></li>';
913 var bg = '<li class="bg parity' + parity + '"></li>';
914 var left = (this.columns + 1) * this.bg_height;
914 var left = (this.columns + 1) * this.bg_height;
915 var nstyle = 'padding-left: ' + left + 'px;';
915 var nstyle = 'padding-left: ' + left + 'px;';
916 var item = revlink.replace(/_STYLE/, nstyle);
916 var item = revlink.replace(/_STYLE/, nstyle);
917 item = item.replace(/_PARITY/, 'parity' + parity);
917 item = item.replace(/_PARITY/, 'parity' + parity);
918 item = item.replace(/_NODEID/, cur[0]);
918 item = item.replace(/_NODEID/, cur[0]);
919 item = item.replace(/_NODEID/, cur[0]);
919 item = item.replace(/_NODEID/, cur[0]);
920 item = item.replace(/_DESC/, cur[3]);
920 item = item.replace(/_DESC/, cur[3]);
921 item = item.replace(/_USER/, cur[4]);
921 item = item.replace(/_USER/, cur[4]);
922 item = item.replace(/_DATE/, cur[5]);
922 item = item.replace(/_DATE/, cur[5]);
923
923
924 var tagspan = '';
924 var tagspan = '';
925 if (cur[7].length || cur[8].length || (cur[6][0] != 'default' || cur[6][1])) {
925 if (cur[7].length || cur[8].length || (cur[6][0] != 'default' || cur[6][1])) {
926 tagspan = '<span class="logtags">';
926 tagspan = '<span class="logtags">';
927 if (cur[6][1]) {
927 if (cur[6][1]) {
928 tagspan += '<span class="branchtag" title="' + cur[6][0] + '">';
928 tagspan += '<span class="branchtag" title="' + cur[6][0] + '">';
929 tagspan += cur[6][0] + '</span> ';
929 tagspan += cur[6][0] + '</span> ';
930 } else if (!cur[6][1] && cur[6][0] != 'default') {
930 } else if (!cur[6][1] && cur[6][0] != 'default') {
931 tagspan += '<span class="inbranchtag" title="' + cur[6][0] + '">';
931 tagspan += '<span class="inbranchtag" title="' + cur[6][0] + '">';
932 tagspan += cur[6][0] + '</span> ';
932 tagspan += cur[6][0] + '</span> ';
933 }
933 }
934 if (cur[7].length) {
934 if (cur[7].length) {
935 for (var t in cur[7]) {
935 for (var t in cur[7]) {
936 var tag = cur[7][t];
936 var tag = cur[7][t];
937 tagspan += '<span class="tagtag">' + tag + '</span> ';
937 tagspan += '<span class="tagtag">' + tag + '</span> ';
938 }
938 }
939 }
939 }
940 if (cur[8].length) {
940 if (cur[8].length) {
941 for (var t in cur[8]) {
941 for (var t in cur[8]) {
942 var bookmark = cur[8][t];
942 var bookmark = cur[8][t];
943 tagspan += '<span class="bookmarktag">' + bookmark + '</span> ';
943 tagspan += '<span class="bookmarktag">' + bookmark + '</span> ';
944 }
944 }
945 }
945 }
946 tagspan += '</span>';
946 tagspan += '</span>';
947 }
947 }
948
948
949 item = item.replace(/_TAGS/, tagspan);
949 item = item.replace(/_TAGS/, tagspan);
950 return [bg, item];
950 return [bg, item];
951
951
952 }
952 }
953
953
954 graph.render(data);
954 graph.render(data);
955
955
956 // stop hiding script -->
956 // stop hiding script -->
957 </script>
957 </script>
958
958
959 <div class="page_nav">
959 <div class="page_nav">
960 <a href="/graph/2?style=gitweb&revcount=30">less</a>
960 <a href="/graph/2?style=gitweb&revcount=30">less</a>
961 <a href="/graph/2?style=gitweb&revcount=120">more</a>
961 <a href="/graph/2?style=gitweb&revcount=120">more</a>
962 | <a href="/graph/2ef0ac749a14?style=gitweb">(0)</a> <a href="/graph/2ef0ac749a14?style=gitweb">-2</a> <a href="/graph/tip?style=gitweb">tip</a>
962 | <a href="/graph/2ef0ac749a14?style=gitweb">(0)</a> <a href="/graph/2ef0ac749a14?style=gitweb">-2</a> <a href="/graph/tip?style=gitweb">tip</a>
963 </div>
963 </div>
964
964
965 <script type="text/javascript">process_dates()</script>
965 <script type="text/javascript">process_dates()</script>
966 <div class="page_footer">
966 <div class="page_footer">
967 <div class="page_footer_text">test</div>
967 <div class="page_footer_text">test</div>
968 <div class="rss_logo">
968 <div class="rss_logo">
969 <a href="/rss-log">RSS</a>
969 <a href="/rss-log">RSS</a>
970 <a href="/atom-log">Atom</a>
970 <a href="/atom-log">Atom</a>
971 </div>
971 </div>
972 <br />
972 <br />
973
973
974 </div>
974 </div>
975 </body>
975 </body>
976 </html>
976 </html>
977
977
978
978
979 capabilities
979 capabilities
980
980
981 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=capabilities'; echo
981 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=capabilities'; echo
982 200 Script output follows
982 200 Script output follows
983
983
984 lookup changegroupsubset branchmap pushkey known getbundle unbundlehash unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024
984 lookup changegroupsubset branchmap pushkey known getbundle unbundlehash unbundle=HG10GZ,HG10BZ,HG10UN httpheader=1024
985
985
986 heads
986 heads
987
987
988 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=heads'
988 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=heads'
989 200 Script output follows
989 200 Script output follows
990
990
991 1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe
991 1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe
992
992
993 branches
993 branches
994
994
995 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=branches&nodes=0000000000000000000000000000000000000000'
995 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=branches&nodes=0000000000000000000000000000000000000000'
996 200 Script output follows
996 200 Script output follows
997
997
998 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000
998 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000
999
999
1000 changegroup
1000 changegroup
1001
1001
1002 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=changegroup&roots=0000000000000000000000000000000000000000'
1002 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=changegroup&roots=0000000000000000000000000000000000000000'
1003 200 Script output follows
1003 200 Script output follows
1004
1004
1005 x\x9c\xbdTMHUA\x14\xbe\xa8\xf9\xec\xda&\x10\x11*\xb8\x88\x81\x99\xbef\xe6\xce\xbdw\xc6\xf2a\x16E\x1b\x11[%\x98\xcc\xaf\x8f\x8c\xf7\xc0\xf7\x82 (esc)
1005 x\x9c\xbdTMHUA\x14\xbe\xa8\xf9\xec\xda&\x10\x11*\xb8\x88\x81\x99\xbef\xe6\xce\xbdw\xc6\xf2a\x16E\x1b\x11[%\x98\xcc\xaf\x8f\x8c\xf7\xc0\xf7\x82 (esc)
1006 4\x11KP2m\x95\xad*\xabE\x05AP\xd0\xc22Z\x14\xf9\x03\xb9j\xa3\x9b$\xa4MJ\xb4\x90\xc0\x9a\x9bO0\x10\xdf\x13\xa2\x81\x0f\x869g\xe6|\xe7\x9c\xef\x8ceY\xf7\xa2KO\xd2\xb7K\x16~\\n\xe9\xad\x90w\x86\xab\x93W\x8e\xdf\xb0r\\Y\xee6(\xa2)\xf6\x95\xc6\x01\xe4\x1az\x80R\xe8kN\x98\xe7R\xa4\xa9K@\xe0!A\xb4k\xa7U*m\x03\x07\xd8\x92\x1d\xd2\xc9\xa4\x1d\xc2\xe6,\xa5\xcc+\x1f\xef\xafDgi\xef\xab\x1d\x1d\xb7\x9a\xe7[W\xfbc\x8f\xde-\xcd\xe7\xcaz\xb3\xbb\x19\xd3\x81\x10>c>\x08\x00"X\x11\xc2\x84@\xd2\xe7B*L\x00\x01P\x04R\xc3@\xbaB0\xdb8#\x83:\x83\xa2h\xbc=\xcd\xdaS\xe1Y,L\xd3\xa0\xf2\xa8\x94J:\xe6\xd8\x81Q\xe0\xe8d\xa7#\xe2,\xd1\xaeR*\xed \xa5\x01\x13\x01\xa6\x0cb\xe3;\xbe\xaf\xfcK[^wK\xe1N\xaf\xbbk\xe8B\xd1\xf4\xc1\x07\xb3\xab[\x10\xfdkmvwcB\xa6\xa4\xd4G\xc4D\xc2\x141\xad\x91\x10\x00\x08J\x81\xcb}\xee \xee+W\xba\x8a\x80\x90|\xd4\xa0\xd6\xa0\xd4T\xde\xe1\x9d,!\xe2\xb5\xa94\xe3\xe7\xd5\x9f\x06\x18\xcba\x03aP\xb8f\xcd\x04\x1a_\\9\xf1\xed\xe4\x9e\xe5\xa6\xd1\xd2\x9f\x03\xa7o\xae\x90H\xf3\xfb\xef\xffH3\xadk (esc)
1006 4\x11KP2m\x95\xad*\xabE\x05AP\xd0\xc22Z\x14\xf9\x03\xb9j\xa3\x9b$\xa4MJ\xb4\x90\xc0\x9a\x9bO0\x10\xdf\x13\xa2\x81\x0f\x869g\xe6|\xe7\x9c\xef\x8ceY\xf7\xa2KO\xd2\xb7K\x16~\\n\xe9\xad\x90w\x86\xab\x93W\x8e\xdf\xb0r\\Y\xee6(\xa2)\xf6\x95\xc6\x01\xe4\x1az\x80R\xe8kN\x98\xe7R\xa4\xa9K@\xe0!A\xb4k\xa7U*m\x03\x07\xd8\x92\x1d\xd2\xc9\xa4\x1d\xc2\xe6,\xa5\xcc+\x1f\xef\xafDgi\xef\xab\x1d\x1d\xb7\x9a\xe7[W\xfbc\x8f\xde-\xcd\xe7\xcaz\xb3\xbb\x19\xd3\x81\x10>c>\x08\x00"X\x11\xc2\x84@\xd2\xe7B*L\x00\x01P\x04R\xc3@\xbaB0\xdb8#\x83:\x83\xa2h\xbc=\xcd\xdaS\xe1Y,L\xd3\xa0\xf2\xa8\x94J:\xe6\xd8\x81Q\xe0\xe8d\xa7#\xe2,\xd1\xaeR*\xed \xa5\x01\x13\x01\xa6\x0cb\xe3;\xbe\xaf\xfcK[^wK\xe1N\xaf\xbbk\xe8B\xd1\xf4\xc1\x07\xb3\xab[\x10\xfdkmvwcB\xa6\xa4\xd4G\xc4D\xc2\x141\xad\x91\x10\x00\x08J\x81\xcb}\xee \xee+W\xba\x8a\x80\x90|\xd4\xa0\xd6\xa0\xd4T\xde\xe1\x9d,!\xe2\xb5\xa94\xe3\xe7\xd5\x9f\x06\x18\xcba\x03aP\xb8f\xcd\x04\x1a_\\9\xf1\xed\xe4\x9e\xe5\xa6\xd1\xd2\x9f\x03\xa7o\xae\x90H\xf3\xfb\xef\xffH3\xadk (esc)
1007 \xb0\x90\x92\x88\xb9\x14"\x068\xc2\x1e@\x00\xbb\x8a)\xd3'\x859 (esc)
1007 \xb0\x90\x92\x88\xb9\x14"\x068\xc2\x1e@\x00\xbb\x8a)\xd3'\x859 (esc)
1008 \xa8\x80\x84S \xa5\xbd-g\x13`\xe4\xdc\xc3H^\xdf\xe2\xc0TM\xc7\xf4BO\xcf\xde\xae\xe5\xae#\x1frM(K\x97`F\x19\x16s\x05GD\xb9\x01\xc1\x00+\x8c|\x9fp\xc11\xf0\x14\x00\x9cJ\x82<\xe0\x12\x9f\xc1\x90\xd0\xf5\xc8\x19>Pr\xaa\xeaW\xf5\xc4\xae\xd1\xfc\x17\xcf'\x13u\xb1\x9e\xcdHnC\x0e\xcc`\xc8\xa0&\xac\x0e\xf1|\x8c\x10$\xc4\x8c\xa2p\x05`\xdc\x08 \x80\xc4\xd7Rr-\x94\x10\x102\xedi;\xf3f\xf1z\x16\x86\xdb\xd8d\xe5\xe7\x8b\xf5\x8d\rzp\xb2\xfe\xac\xf5\xf2\xd3\xfe\xfckws\xedt\x96b\xd5l\x1c\x0b\x85\xb5\x170\x8f\x11\x84\xb0\x8f\x19\xa0\x00 _\x07\x1ac\xa2\xc3\x89Z\xe7\x96\xf9 \xccNFg\xc7F\xaa\x8a+\x9a\x9cc_\x17\x1b\x17\x9e]z38<\x97+\xb5,",\xc8\xc8?\\\x91\xff\x17.~U\x96\x97\xf5%\xdeN<\x8e\xf5\x97%\xe7^\xcfL\xed~\xda\x96k\xdc->\x86\x02\x83"\x96H\xa6\xe3\xaas=-\xeb7\xe5\xda\x8f\xbc (no-eol) (esc)
1008 \xa8\x80\x84S \xa5\xbd-g\x13`\xe4\xdc\xc3H^\xdf\xe2\xc0TM\xc7\xf4BO\xcf\xde\xae\xe5\xae#\x1frM(K\x97`F\x19\x16s\x05GD\xb9\x01\xc1\x00+\x8c|\x9fp\xc11\xf0\x14\x00\x9cJ\x82<\xe0\x12\x9f\xc1\x90\xd0\xf5\xc8\x19>Pr\xaa\xeaW\xf5\xc4\xae\xd1\xfc\x17\xcf'\x13u\xb1\x9e\xcdHnC\x0e\xcc`\xc8\xa0&\xac\x0e\xf1|\x8c\x10$\xc4\x8c\xa2p\x05`\xdc\x08 \x80\xc4\xd7Rr-\x94\x10\x102\xedi;\xf3f\xf1z\x16\x86\xdb\xd8d\xe5\xe7\x8b\xf5\x8d\rzp\xb2\xfe\xac\xf5\xf2\xd3\xfe\xfckws\xedt\x96b\xd5l\x1c\x0b\x85\xb5\x170\x8f\x11\x84\xb0\x8f\x19\xa0\x00 _\x07\x1ac\xa2\xc3\x89Z\xe7\x96\xf9 \xccNFg\xc7F\xaa\x8a+\x9a\x9cc_\x17\x1b\x17\x9e]z38<\x97+\xb5,",\xc8\xc8?\\\x91\xff\x17.~U\x96\x97\xf5%\xdeN<\x8e\xf5\x97%\xe7^\xcfL\xed~\xda\x96k\xdc->\x86\x02\x83"\x96H\xa6\xe3\xaas=-\xeb7\xe5\xda\x8f\xbc (no-eol) (esc)
1009
1009
1010 stream_out
1010 stream_out
1011
1011
1012 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=stream_out'
1012 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=stream_out'
1013 200 Script output follows
1013 200 Script output follows
1014
1014
1015 1
1015 1
1016
1016
1017 failing unbundle, requires POST request
1017 failing unbundle, requires POST request
1018
1018
1019 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=unbundle'
1019 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=unbundle'
1020 405 push requires POST request
1020 405 push requires POST request
1021
1021
1022 0
1022 0
1023 push requires POST request
1023 push requires POST request
1024 [1]
1024 [1]
1025
1025
1026 Static files
1026 Static files
1027
1027
1028 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/static/style.css'
1028 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/static/style.css'
1029 200 Script output follows
1029 200 Script output follows
1030
1030
1031 a { text-decoration:none; }
1031 a { text-decoration:none; }
1032 .age { white-space:nowrap; }
1032 .age { white-space:nowrap; }
1033 .date { white-space:nowrap; }
1033 .date { white-space:nowrap; }
1034 .indexlinks { white-space:nowrap; }
1034 .indexlinks { white-space:nowrap; }
1035 .parity0 { background-color: #ddd; }
1035 .parity0 { background-color: #ddd; }
1036 .parity1 { background-color: #eee; }
1036 .parity1 { background-color: #eee; }
1037 .lineno { width: 60px; color: #aaa; font-size: smaller;
1037 .lineno { width: 60px; color: #aaa; font-size: smaller;
1038 text-align: right; }
1038 text-align: right; }
1039 .plusline { color: green; }
1039 .plusline { color: green; }
1040 .minusline { color: red; }
1040 .minusline { color: red; }
1041 .atline { color: purple; }
1041 .atline { color: purple; }
1042 .annotate { font-size: smaller; text-align: right; padding-right: 1em; }
1042 .annotate { font-size: smaller; text-align: right; padding-right: 1em; }
1043 .buttons a {
1043 .buttons a {
1044 background-color: #666;
1044 background-color: #666;
1045 padding: 2pt;
1045 padding: 2pt;
1046 color: white;
1046 color: white;
1047 font-family: sans;
1047 font-family: sans;
1048 font-weight: bold;
1048 font-weight: bold;
1049 }
1049 }
1050 .navigate a {
1050 .navigate a {
1051 background-color: #ccc;
1051 background-color: #ccc;
1052 padding: 2pt;
1052 padding: 2pt;
1053 font-family: sans;
1053 font-family: sans;
1054 color: black;
1054 color: black;
1055 }
1055 }
1056
1056
1057 .metatag {
1057 .metatag {
1058 background-color: #888;
1058 background-color: #888;
1059 color: white;
1059 color: white;
1060 text-align: right;
1060 text-align: right;
1061 }
1061 }
1062
1062
1063 /* Common */
1063 /* Common */
1064 pre { margin: 0; }
1064 pre { margin: 0; }
1065
1065
1066 .logo {
1066 .logo {
1067 float: right;
1067 float: right;
1068 clear: right;
1068 clear: right;
1069 }
1069 }
1070
1070
1071 /* Changelog/Filelog entries */
1071 /* Changelog/Filelog entries */
1072 .logEntry { width: 100%; }
1072 .logEntry { width: 100%; }
1073 .logEntry .age { width: 15%; }
1073 .logEntry .age { width: 15%; }
1074 .logEntry th { font-weight: normal; text-align: right; vertical-align: top; }
1074 .logEntry th { font-weight: normal; text-align: right; vertical-align: top; }
1075 .logEntry th.age, .logEntry th.firstline { font-weight: bold; }
1075 .logEntry th.age, .logEntry th.firstline { font-weight: bold; }
1076 .logEntry th.firstline { text-align: left; width: inherit; }
1076 .logEntry th.firstline { text-align: left; width: inherit; }
1077
1077
1078 /* Shortlog entries */
1078 /* Shortlog entries */
1079 .slogEntry { width: 100%; }
1079 .slogEntry { width: 100%; }
1080 .slogEntry .age { width: 8em; }
1080 .slogEntry .age { width: 8em; }
1081 .slogEntry td { font-weight: normal; text-align: left; vertical-align: top; }
1081 .slogEntry td { font-weight: normal; text-align: left; vertical-align: top; }
1082 .slogEntry td.author { width: 15em; }
1082 .slogEntry td.author { width: 15em; }
1083
1083
1084 /* Tag entries */
1084 /* Tag entries */
1085 #tagEntries { list-style: none; margin: 0; padding: 0; }
1085 #tagEntries { list-style: none; margin: 0; padding: 0; }
1086 #tagEntries .tagEntry { list-style: none; margin: 0; padding: 0; }
1086 #tagEntries .tagEntry { list-style: none; margin: 0; padding: 0; }
1087
1087
1088 /* Changeset entry */
1088 /* Changeset entry */
1089 #changesetEntry { }
1089 #changesetEntry { }
1090 #changesetEntry th { font-weight: normal; background-color: #888; color: #fff; text-align: right; }
1090 #changesetEntry th { font-weight: normal; background-color: #888; color: #fff; text-align: right; }
1091 #changesetEntry th.files, #changesetEntry th.description { vertical-align: top; }
1091 #changesetEntry th.files, #changesetEntry th.description { vertical-align: top; }
1092
1092
1093 /* File diff view */
1093 /* File diff view */
1094 #filediffEntry { }
1094 #filediffEntry { }
1095 #filediffEntry th { font-weight: normal; background-color: #888; color: #fff; text-align: right; }
1095 #filediffEntry th { font-weight: normal; background-color: #888; color: #fff; text-align: right; }
1096
1096
1097 /* Graph */
1097 /* Graph */
1098 div#wrapper {
1098 div#wrapper {
1099 position: relative;
1099 position: relative;
1100 margin: 0;
1100 margin: 0;
1101 padding: 0;
1101 padding: 0;
1102 }
1102 }
1103
1103
1104 canvas {
1104 canvas {
1105 position: absolute;
1105 position: absolute;
1106 z-index: 5;
1106 z-index: 5;
1107 top: -0.6em;
1107 top: -0.6em;
1108 margin: 0;
1108 margin: 0;
1109 }
1109 }
1110
1110
1111 ul#nodebgs {
1111 ul#nodebgs {
1112 list-style: none inside none;
1112 list-style: none inside none;
1113 padding: 0;
1113 padding: 0;
1114 margin: 0;
1114 margin: 0;
1115 top: -0.7em;
1115 top: -0.7em;
1116 }
1116 }
1117
1117
1118 ul#graphnodes li, ul#nodebgs li {
1118 ul#graphnodes li, ul#nodebgs li {
1119 height: 39px;
1119 height: 39px;
1120 }
1120 }
1121
1121
1122 ul#graphnodes {
1122 ul#graphnodes {
1123 position: absolute;
1123 position: absolute;
1124 z-index: 10;
1124 z-index: 10;
1125 top: -0.85em;
1125 top: -0.85em;
1126 list-style: none inside none;
1126 list-style: none inside none;
1127 padding: 0;
1127 padding: 0;
1128 }
1128 }
1129
1129
1130 ul#graphnodes li .info {
1130 ul#graphnodes li .info {
1131 display: block;
1131 display: block;
1132 font-size: 70%;
1132 font-size: 70%;
1133 position: relative;
1133 position: relative;
1134 top: -1px;
1134 top: -1px;
1135 }
1135 }
1136
1136
1137 Stop and restart with HGENCODING=cp932
1137 Stop and restart with HGENCODING=cp932
1138
1138
1139 $ "$TESTDIR/killdaemons.py"
1139 $ "$TESTDIR/killdaemons.py"
1140 $ HGENCODING=cp932 hg serve --config server.uncompressed=False -n test \
1140 $ HGENCODING=cp932 hg serve --config server.uncompressed=False -n test \
1141 > -p $HGPORT -d --pid-file=hg.pid -E errors.log
1141 > -p $HGPORT -d --pid-file=hg.pid -E errors.log
1142 $ cat hg.pid >> $DAEMON_PIDS
1142 $ cat hg.pid >> $DAEMON_PIDS
1143
1143
1144 commit message with Japanese Kanji 'Noh', which ends with '\x5c'
1144 commit message with Japanese Kanji 'Noh', which ends with '\x5c'
1145
1145
1146 $ echo foo >> foo
1146 $ echo foo >> foo
1147 $ HGENCODING=cp932 hg ci -m `python -c 'print("\x94\x5c")'`
1147 $ HGENCODING=cp932 hg ci -m `python -c 'print("\x94\x5c")'`
1148
1148
1149 Graph json escape of multibyte character
1149 Graph json escape of multibyte character
1150
1150
1151 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/graph/' \
1151 $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/graph/' \
1152 > | grep '^var data ='
1152 > | grep '^var data ='
1153 var data = [["40b4d6888e92", [0, 1], [[0, 0, 1]], "\u80fd", "test", "1970-01-01", ["stable", true], ["tip"], ["something"]], ["1d22e65f027e", [0, 1], [[0, 0, 1]], "branch", "test", "1970-01-01", ["stable", false], [], []], ["a4f92ed23982", [0, 1], [[0, 0, 1]], "Added tag 1.0 for changeset 2ef0ac749a14", "test", "1970-01-01", ["default", true], [], []], ["2ef0ac749a14", [0, 1], [], "base", "test", "1970-01-01", ["default", false], ["1.0"], ["anotherthing"]]];
1153 var data = [["40b4d6888e92", [0, 1], [[0, 0, 1]], "\u80fd", "test", "1970-01-01", ["stable", true], ["tip"], ["something"]], ["1d22e65f027e", [0, 1], [[0, 0, 1]], "branch", "test", "1970-01-01", ["stable", false], [], []], ["a4f92ed23982", [0, 1], [[0, 0, 1]], "Added tag 1.0 for changeset 2ef0ac749a14", "test", "1970-01-01", ["default", true], [], []], ["2ef0ac749a14", [0, 1], [], "base", "test", "1970-01-01", ["default", false], ["1.0"], ["anotherthing"]]];
1154
1154
1155 ERRORS ENCOUNTERED
1155 ERRORS ENCOUNTERED
1156
1156
1157 $ cat errors.log
1157 $ cat errors.log
@@ -1,555 +1,555 b''
1 setting up repo
1 setting up repo
2
2
3 $ hg init test
3 $ hg init test
4 $ cd test
4 $ cd test
5 $ echo a > a
5 $ echo a > a
6 $ echo b > b
6 $ echo b > b
7 $ hg ci -Ama
7 $ hg ci -Ama
8 adding a
8 adding a
9 adding b
9 adding b
10
10
11 change permissions for git diffs
11 change permissions for git diffs
12
12
13 $ chmod 755 a
13 $ chmod 755 a
14 $ hg ci -Amb
14 $ hg ci -Amb
15
15
16 set up hgweb
16 set up hgweb
17
17
18 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
18 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
19 $ cat hg.pid >> $DAEMON_PIDS
19 $ cat hg.pid >> $DAEMON_PIDS
20
20
21 revision
21 revision
22
22
23 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/rev/0'
23 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/rev/0'
24 200 Script output follows
24 200 Script output follows
25
25
26 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
26 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
27 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
27 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
28 <head>
28 <head>
29 <link rel="icon" href="/static/hgicon.png" type="image/png" />
29 <link rel="icon" href="/static/hgicon.png" type="image/png" />
30 <meta name="robots" content="index, nofollow" />
30 <meta name="robots" content="index, nofollow" />
31 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
31 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
32 <script type="text/javascript" src="/static/mercurial.js"></script>
32 <script type="text/javascript" src="/static/mercurial.js"></script>
33
33
34 <title>test: 0cd96de13884</title>
34 <title>test: 0cd96de13884</title>
35 </head>
35 </head>
36 <body>
36 <body>
37 <div class="container">
37 <div class="container">
38 <div class="menu">
38 <div class="menu">
39 <div class="logo">
39 <div class="logo">
40 <a href="http://mercurial.selenic.com/">
40 <a href="http://mercurial.selenic.com/">
41 <img src="/static/hglogo.png" alt="mercurial" /></a>
41 <img src="/static/hglogo.png" alt="mercurial" /></a>
42 </div>
42 </div>
43 <ul>
43 <ul>
44 <li><a href="/shortlog/0cd96de13884">log</a></li>
44 <li><a href="/shortlog/0cd96de13884">log</a></li>
45 <li><a href="/graph/0cd96de13884">graph</a></li>
45 <li><a href="/graph/0cd96de13884">graph</a></li>
46 <li><a href="/tags">tags</a></li>
46 <li><a href="/tags">tags</a></li>
47 <li><a href="/bookmarks">bookmarks</a></li>
47 <li><a href="/bookmarks">bookmarks</a></li>
48 <li><a href="/branches">branches</a></li>
48 <li><a href="/branches">branches</a></li>
49 </ul>
49 </ul>
50 <ul>
50 <ul>
51 <li class="active">changeset</li>
51 <li class="active">changeset</li>
52 <li><a href="/raw-rev/0cd96de13884">raw</a></li>
52 <li><a href="/raw-rev/0cd96de13884">raw</a></li>
53 <li><a href="/file/0cd96de13884">browse</a></li>
53 <li><a href="/file/0cd96de13884">browse</a></li>
54 </ul>
54 </ul>
55 <ul>
55 <ul>
56
56
57 </ul>
57 </ul>
58 <ul>
58 <ul>
59 <li><a href="/help">help</a></li>
59 <li><a href="/help">help</a></li>
60 </ul>
60 </ul>
61 </div>
61 </div>
62
62
63 <div class="main">
63 <div class="main">
64
64
65 <h2><a href="/">test</a></h2>
65 <h2><a href="/">test</a></h2>
66 <h3>changeset 0:0cd96de13884 </h3>
66 <h3>changeset 0:0cd96de13884 </h3>
67
67
68 <form class="search" action="/log">
68 <form class="search" action="/log">
69
69
70 <p><input name="rev" id="search1" type="text" size="30" /></p>
70 <p><input name="rev" id="search1" type="text" size="30" /></p>
71 <div id="hint">find changesets by author, revision,
71 <div id="hint">find changesets by author, revision,
72 files, or words in the commit message</div>
72 files, or words in the commit message</div>
73 </form>
73 </form>
74
74
75 <div class="description">a</div>
75 <div class="description">a</div>
76
76
77 <table id="changesetEntry">
77 <table id="changesetEntry">
78 <tr>
78 <tr>
79 <th class="author">author</th>
79 <th class="author">author</th>
80 <td class="author">&#116;&#101;&#115;&#116;</td>
80 <td class="author">&#116;&#101;&#115;&#116;</td>
81 </tr>
81 </tr>
82 <tr>
82 <tr>
83 <th class="date">date</th>
83 <th class="date">date</th>
84 <td class="date age">Thu Jan 01 00:00:00 1970 +0000</td></tr>
84 <td class="date age">Thu Jan 01 00:00:00 1970 +0000</td></tr>
85 <tr>
85 <tr>
86 <th class="author">parents</th>
86 <th class="author">parents</th>
87 <td class="author"></td>
87 <td class="author"></td>
88 </tr>
88 </tr>
89 <tr>
89 <tr>
90 <th class="author">children</th>
90 <th class="author">children</th>
91 <td class="author"> <a href="/rev/78e4ebad7cdf">78e4ebad7cdf</a></td>
91 <td class="author"> <a href="/rev/78e4ebad7cdf">78e4ebad7cdf</a></td>
92 </tr>
92 </tr>
93 <tr>
93 <tr>
94 <th class="files">files</th>
94 <th class="files">files</th>
95 <td class="files"><a href="/file/0cd96de13884/a">a</a> <a href="/file/0cd96de13884/b">b</a> </td>
95 <td class="files"><a href="/file/0cd96de13884/a">a</a> <a href="/file/0cd96de13884/b">b</a> </td>
96 </tr>
96 </tr>
97 <tr>
97 <tr>
98 <th class="diffstat">diffstat</th>
98 <th class="diffstat">diffstat</th>
99 <td class="diffstat">
99 <td class="diffstat">
100 2 files changed, 2 insertions(+), 0 deletions(-)
100 2 files changed, 2 insertions(+), 0 deletions(-)
101
101
102 <a id="diffstatexpand" href="javascript:showDiffstat()"/>[+]</a>
102 <a id="diffstatexpand" href="javascript:showDiffstat()"/>[<tt>+</tt>]</a>
103 <div id="diffstatdetails" style="display:none;">
103 <div id="diffstatdetails" style="display:none;">
104 <a href="javascript:hideDiffstat()"/>[-]</a>
104 <a href="javascript:hideDiffstat()"/>[<tt>-</tt>]</a>
105 <p>
105 <p>
106 <table> <tr class="parity0">
106 <table> <tr class="parity0">
107 <td class="diffstat-file"><a href="#l1.1">a</a></td>
107 <td class="diffstat-file"><a href="#l1.1">a</a></td>
108 <td class="diffstat-total" align="right">1</td>
108 <td class="diffstat-total" align="right">1</td>
109 <td class="diffstat-graph">
109 <td class="diffstat-graph">
110 <span class="diffstat-add" style="width:100.0%;">&nbsp;</span>
110 <span class="diffstat-add" style="width:100.0%;">&nbsp;</span>
111 <span class="diffstat-remove" style="width:0.0%;">&nbsp;</span>
111 <span class="diffstat-remove" style="width:0.0%;">&nbsp;</span>
112 </td>
112 </td>
113 </tr>
113 </tr>
114 <tr class="parity1">
114 <tr class="parity1">
115 <td class="diffstat-file"><a href="#l2.1">b</a></td>
115 <td class="diffstat-file"><a href="#l2.1">b</a></td>
116 <td class="diffstat-total" align="right">1</td>
116 <td class="diffstat-total" align="right">1</td>
117 <td class="diffstat-graph">
117 <td class="diffstat-graph">
118 <span class="diffstat-add" style="width:100.0%;">&nbsp;</span>
118 <span class="diffstat-add" style="width:100.0%;">&nbsp;</span>
119 <span class="diffstat-remove" style="width:0.0%;">&nbsp;</span>
119 <span class="diffstat-remove" style="width:0.0%;">&nbsp;</span>
120 </td>
120 </td>
121 </tr>
121 </tr>
122 </table>
122 </table>
123 </div>
123 </div>
124 </td>
124 </td>
125 </tr>
125 </tr>
126 </table>
126 </table>
127
127
128 <div class="overflow">
128 <div class="overflow">
129 <div class="sourcefirst"> line diff</div>
129 <div class="sourcefirst"> line diff</div>
130
130
131 <div class="source bottomline parity0"><pre><a href="#l1.1" id="l1.1"> 1.1</a> <span class="minusline">--- /dev/null Thu Jan 01 00:00:00 1970 +0000
131 <div class="source bottomline parity0"><pre><a href="#l1.1" id="l1.1"> 1.1</a> <span class="minusline">--- /dev/null Thu Jan 01 00:00:00 1970 +0000
132 </span><a href="#l1.2" id="l1.2"> 1.2</a> <span class="plusline">+++ b/a Thu Jan 01 00:00:00 1970 +0000
132 </span><a href="#l1.2" id="l1.2"> 1.2</a> <span class="plusline">+++ b/a Thu Jan 01 00:00:00 1970 +0000
133 </span><a href="#l1.3" id="l1.3"> 1.3</a> <span class="atline">@@ -0,0 +1,1 @@
133 </span><a href="#l1.3" id="l1.3"> 1.3</a> <span class="atline">@@ -0,0 +1,1 @@
134 </span><a href="#l1.4" id="l1.4"> 1.4</a> <span class="plusline">+a
134 </span><a href="#l1.4" id="l1.4"> 1.4</a> <span class="plusline">+a
135 </span></pre></div><div class="source bottomline parity1"><pre><a href="#l2.1" id="l2.1"> 2.1</a> <span class="minusline">--- /dev/null Thu Jan 01 00:00:00 1970 +0000
135 </span></pre></div><div class="source bottomline parity1"><pre><a href="#l2.1" id="l2.1"> 2.1</a> <span class="minusline">--- /dev/null Thu Jan 01 00:00:00 1970 +0000
136 </span><a href="#l2.2" id="l2.2"> 2.2</a> <span class="plusline">+++ b/b Thu Jan 01 00:00:00 1970 +0000
136 </span><a href="#l2.2" id="l2.2"> 2.2</a> <span class="plusline">+++ b/b Thu Jan 01 00:00:00 1970 +0000
137 </span><a href="#l2.3" id="l2.3"> 2.3</a> <span class="atline">@@ -0,0 +1,1 @@
137 </span><a href="#l2.3" id="l2.3"> 2.3</a> <span class="atline">@@ -0,0 +1,1 @@
138 </span><a href="#l2.4" id="l2.4"> 2.4</a> <span class="plusline">+b
138 </span><a href="#l2.4" id="l2.4"> 2.4</a> <span class="plusline">+b
139 </span></pre></div>
139 </span></pre></div>
140 </div>
140 </div>
141
141
142 </div>
142 </div>
143 </div>
143 </div>
144 <script type="text/javascript">process_dates()</script>
144 <script type="text/javascript">process_dates()</script>
145
145
146
146
147 </body>
147 </body>
148 </html>
148 </html>
149
149
150
150
151 raw revision
151 raw revision
152
152
153 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/raw-rev/0'
153 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/raw-rev/0'
154 200 Script output follows
154 200 Script output follows
155
155
156
156
157 # HG changeset patch
157 # HG changeset patch
158 # User test
158 # User test
159 # Date 0 0
159 # Date 0 0
160 # Node ID 0cd96de13884b090099512d4794ae87ad067ea8e
160 # Node ID 0cd96de13884b090099512d4794ae87ad067ea8e
161
161
162 a
162 a
163
163
164 diff -r 000000000000 -r 0cd96de13884 a
164 diff -r 000000000000 -r 0cd96de13884 a
165 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
165 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
166 +++ b/a Thu Jan 01 00:00:00 1970 +0000
166 +++ b/a Thu Jan 01 00:00:00 1970 +0000
167 @@ -0,0 +1,1 @@
167 @@ -0,0 +1,1 @@
168 +a
168 +a
169 diff -r 000000000000 -r 0cd96de13884 b
169 diff -r 000000000000 -r 0cd96de13884 b
170 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
170 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
171 +++ b/b Thu Jan 01 00:00:00 1970 +0000
171 +++ b/b Thu Jan 01 00:00:00 1970 +0000
172 @@ -0,0 +1,1 @@
172 @@ -0,0 +1,1 @@
173 +b
173 +b
174
174
175
175
176 diff removed file
176 diff removed file
177
177
178 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/diff/tip/a'
178 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/diff/tip/a'
179 200 Script output follows
179 200 Script output follows
180
180
181 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
181 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
182 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
182 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
183 <head>
183 <head>
184 <link rel="icon" href="/static/hgicon.png" type="image/png" />
184 <link rel="icon" href="/static/hgicon.png" type="image/png" />
185 <meta name="robots" content="index, nofollow" />
185 <meta name="robots" content="index, nofollow" />
186 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
186 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
187 <script type="text/javascript" src="/static/mercurial.js"></script>
187 <script type="text/javascript" src="/static/mercurial.js"></script>
188
188
189 <title>test: a diff</title>
189 <title>test: a diff</title>
190 </head>
190 </head>
191 <body>
191 <body>
192
192
193 <div class="container">
193 <div class="container">
194 <div class="menu">
194 <div class="menu">
195 <div class="logo">
195 <div class="logo">
196 <a href="http://mercurial.selenic.com/">
196 <a href="http://mercurial.selenic.com/">
197 <img src="/static/hglogo.png" alt="mercurial" /></a>
197 <img src="/static/hglogo.png" alt="mercurial" /></a>
198 </div>
198 </div>
199 <ul>
199 <ul>
200 <li><a href="/shortlog/78e4ebad7cdf">log</a></li>
200 <li><a href="/shortlog/78e4ebad7cdf">log</a></li>
201 <li><a href="/graph/78e4ebad7cdf">graph</a></li>
201 <li><a href="/graph/78e4ebad7cdf">graph</a></li>
202 <li><a href="/tags">tags</a></li>
202 <li><a href="/tags">tags</a></li>
203 <li><a href="/bookmarks">bookmarks</a></li>
203 <li><a href="/bookmarks">bookmarks</a></li>
204 <li><a href="/branches">branches</a></li>
204 <li><a href="/branches">branches</a></li>
205 </ul>
205 </ul>
206 <ul>
206 <ul>
207 <li><a href="/rev/78e4ebad7cdf">changeset</a></li>
207 <li><a href="/rev/78e4ebad7cdf">changeset</a></li>
208 <li><a href="/file/78e4ebad7cdf">browse</a></li>
208 <li><a href="/file/78e4ebad7cdf">browse</a></li>
209 </ul>
209 </ul>
210 <ul>
210 <ul>
211 <li><a href="/file/78e4ebad7cdf/a">file</a></li>
211 <li><a href="/file/78e4ebad7cdf/a">file</a></li>
212 <li><a href="/file/tip/a">latest</a></li>
212 <li><a href="/file/tip/a">latest</a></li>
213 <li class="active">diff</li>
213 <li class="active">diff</li>
214 <li><a href="/annotate/78e4ebad7cdf/a">annotate</a></li>
214 <li><a href="/annotate/78e4ebad7cdf/a">annotate</a></li>
215 <li><a href="/log/78e4ebad7cdf/a">file log</a></li>
215 <li><a href="/log/78e4ebad7cdf/a">file log</a></li>
216 <li><a href="/raw-file/78e4ebad7cdf/a">raw</a></li>
216 <li><a href="/raw-file/78e4ebad7cdf/a">raw</a></li>
217 </ul>
217 </ul>
218 <ul>
218 <ul>
219 <li><a href="/help">help</a></li>
219 <li><a href="/help">help</a></li>
220 </ul>
220 </ul>
221 </div>
221 </div>
222
222
223 <div class="main">
223 <div class="main">
224 <h2><a href="/">test</a></h2>
224 <h2><a href="/">test</a></h2>
225 <h3>diff a @ 1:78e4ebad7cdf</h3>
225 <h3>diff a @ 1:78e4ebad7cdf</h3>
226
226
227 <form class="search" action="/log">
227 <form class="search" action="/log">
228 <p></p>
228 <p></p>
229 <p><input name="rev" id="search1" type="text" size="30" /></p>
229 <p><input name="rev" id="search1" type="text" size="30" /></p>
230 <div id="hint">find changesets by author, revision,
230 <div id="hint">find changesets by author, revision,
231 files, or words in the commit message</div>
231 files, or words in the commit message</div>
232 </form>
232 </form>
233
233
234 <div class="description">b</div>
234 <div class="description">b</div>
235
235
236 <table id="changesetEntry">
236 <table id="changesetEntry">
237 <tr>
237 <tr>
238 <th>author</th>
238 <th>author</th>
239 <td>&#116;&#101;&#115;&#116;</td>
239 <td>&#116;&#101;&#115;&#116;</td>
240 </tr>
240 </tr>
241 <tr>
241 <tr>
242 <th>date</th>
242 <th>date</th>
243 <td class="date age">Thu Jan 01 00:00:00 1970 +0000</td>
243 <td class="date age">Thu Jan 01 00:00:00 1970 +0000</td>
244 </tr>
244 </tr>
245 <tr>
245 <tr>
246 <th>parents</th>
246 <th>parents</th>
247 <td></td>
247 <td></td>
248 </tr>
248 </tr>
249 <tr>
249 <tr>
250 <th>children</th>
250 <th>children</th>
251 <td></td>
251 <td></td>
252 </tr>
252 </tr>
253
253
254 </table>
254 </table>
255
255
256 <div class="overflow">
256 <div class="overflow">
257 <div class="sourcefirst"> line diff</div>
257 <div class="sourcefirst"> line diff</div>
258
258
259 <div class="source bottomline parity0"><pre><a href="#l1.1" id="l1.1"> 1.1</a> <span class="minusline">--- /dev/null Thu Jan 01 00:00:00 1970 +0000
259 <div class="source bottomline parity0"><pre><a href="#l1.1" id="l1.1"> 1.1</a> <span class="minusline">--- /dev/null Thu Jan 01 00:00:00 1970 +0000
260 </span><a href="#l1.2" id="l1.2"> 1.2</a> <span class="plusline">+++ b/a Thu Jan 01 00:00:00 1970 +0000
260 </span><a href="#l1.2" id="l1.2"> 1.2</a> <span class="plusline">+++ b/a Thu Jan 01 00:00:00 1970 +0000
261 </span><a href="#l1.3" id="l1.3"> 1.3</a> <span class="atline">@@ -0,0 +1,1 @@
261 </span><a href="#l1.3" id="l1.3"> 1.3</a> <span class="atline">@@ -0,0 +1,1 @@
262 </span><a href="#l1.4" id="l1.4"> 1.4</a> <span class="plusline">+a
262 </span><a href="#l1.4" id="l1.4"> 1.4</a> <span class="plusline">+a
263 </span></pre></div>
263 </span></pre></div>
264 </div>
264 </div>
265 </div>
265 </div>
266 </div>
266 </div>
267
267
268 <script type="text/javascript">process_dates()</script>
268 <script type="text/javascript">process_dates()</script>
269
269
270
270
271 </body>
271 </body>
272 </html>
272 </html>
273
273
274
274
275 set up hgweb with git diffs
275 set up hgweb with git diffs
276
276
277 $ "$TESTDIR/killdaemons.py"
277 $ "$TESTDIR/killdaemons.py"
278 $ hg serve --config 'diff.git=1' -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
278 $ hg serve --config 'diff.git=1' -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
279 $ cat hg.pid >> $DAEMON_PIDS
279 $ cat hg.pid >> $DAEMON_PIDS
280
280
281 revision
281 revision
282
282
283 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/rev/0'
283 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/rev/0'
284 200 Script output follows
284 200 Script output follows
285
285
286 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
286 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
287 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
287 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
288 <head>
288 <head>
289 <link rel="icon" href="/static/hgicon.png" type="image/png" />
289 <link rel="icon" href="/static/hgicon.png" type="image/png" />
290 <meta name="robots" content="index, nofollow" />
290 <meta name="robots" content="index, nofollow" />
291 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
291 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
292 <script type="text/javascript" src="/static/mercurial.js"></script>
292 <script type="text/javascript" src="/static/mercurial.js"></script>
293
293
294 <title>test: 0cd96de13884</title>
294 <title>test: 0cd96de13884</title>
295 </head>
295 </head>
296 <body>
296 <body>
297 <div class="container">
297 <div class="container">
298 <div class="menu">
298 <div class="menu">
299 <div class="logo">
299 <div class="logo">
300 <a href="http://mercurial.selenic.com/">
300 <a href="http://mercurial.selenic.com/">
301 <img src="/static/hglogo.png" alt="mercurial" /></a>
301 <img src="/static/hglogo.png" alt="mercurial" /></a>
302 </div>
302 </div>
303 <ul>
303 <ul>
304 <li><a href="/shortlog/0cd96de13884">log</a></li>
304 <li><a href="/shortlog/0cd96de13884">log</a></li>
305 <li><a href="/graph/0cd96de13884">graph</a></li>
305 <li><a href="/graph/0cd96de13884">graph</a></li>
306 <li><a href="/tags">tags</a></li>
306 <li><a href="/tags">tags</a></li>
307 <li><a href="/bookmarks">bookmarks</a></li>
307 <li><a href="/bookmarks">bookmarks</a></li>
308 <li><a href="/branches">branches</a></li>
308 <li><a href="/branches">branches</a></li>
309 </ul>
309 </ul>
310 <ul>
310 <ul>
311 <li class="active">changeset</li>
311 <li class="active">changeset</li>
312 <li><a href="/raw-rev/0cd96de13884">raw</a></li>
312 <li><a href="/raw-rev/0cd96de13884">raw</a></li>
313 <li><a href="/file/0cd96de13884">browse</a></li>
313 <li><a href="/file/0cd96de13884">browse</a></li>
314 </ul>
314 </ul>
315 <ul>
315 <ul>
316
316
317 </ul>
317 </ul>
318 <ul>
318 <ul>
319 <li><a href="/help">help</a></li>
319 <li><a href="/help">help</a></li>
320 </ul>
320 </ul>
321 </div>
321 </div>
322
322
323 <div class="main">
323 <div class="main">
324
324
325 <h2><a href="/">test</a></h2>
325 <h2><a href="/">test</a></h2>
326 <h3>changeset 0:0cd96de13884 </h3>
326 <h3>changeset 0:0cd96de13884 </h3>
327
327
328 <form class="search" action="/log">
328 <form class="search" action="/log">
329
329
330 <p><input name="rev" id="search1" type="text" size="30" /></p>
330 <p><input name="rev" id="search1" type="text" size="30" /></p>
331 <div id="hint">find changesets by author, revision,
331 <div id="hint">find changesets by author, revision,
332 files, or words in the commit message</div>
332 files, or words in the commit message</div>
333 </form>
333 </form>
334
334
335 <div class="description">a</div>
335 <div class="description">a</div>
336
336
337 <table id="changesetEntry">
337 <table id="changesetEntry">
338 <tr>
338 <tr>
339 <th class="author">author</th>
339 <th class="author">author</th>
340 <td class="author">&#116;&#101;&#115;&#116;</td>
340 <td class="author">&#116;&#101;&#115;&#116;</td>
341 </tr>
341 </tr>
342 <tr>
342 <tr>
343 <th class="date">date</th>
343 <th class="date">date</th>
344 <td class="date age">Thu Jan 01 00:00:00 1970 +0000</td></tr>
344 <td class="date age">Thu Jan 01 00:00:00 1970 +0000</td></tr>
345 <tr>
345 <tr>
346 <th class="author">parents</th>
346 <th class="author">parents</th>
347 <td class="author"></td>
347 <td class="author"></td>
348 </tr>
348 </tr>
349 <tr>
349 <tr>
350 <th class="author">children</th>
350 <th class="author">children</th>
351 <td class="author"> <a href="/rev/78e4ebad7cdf">78e4ebad7cdf</a></td>
351 <td class="author"> <a href="/rev/78e4ebad7cdf">78e4ebad7cdf</a></td>
352 </tr>
352 </tr>
353 <tr>
353 <tr>
354 <th class="files">files</th>
354 <th class="files">files</th>
355 <td class="files"><a href="/file/0cd96de13884/a">a</a> <a href="/file/0cd96de13884/b">b</a> </td>
355 <td class="files"><a href="/file/0cd96de13884/a">a</a> <a href="/file/0cd96de13884/b">b</a> </td>
356 </tr>
356 </tr>
357 <tr>
357 <tr>
358 <th class="diffstat">diffstat</th>
358 <th class="diffstat">diffstat</th>
359 <td class="diffstat">
359 <td class="diffstat">
360 2 files changed, 2 insertions(+), 0 deletions(-)
360 2 files changed, 2 insertions(+), 0 deletions(-)
361
361
362 <a id="diffstatexpand" href="javascript:showDiffstat()"/>[+]</a>
362 <a id="diffstatexpand" href="javascript:showDiffstat()"/>[<tt>+</tt>]</a>
363 <div id="diffstatdetails" style="display:none;">
363 <div id="diffstatdetails" style="display:none;">
364 <a href="javascript:hideDiffstat()"/>[-]</a>
364 <a href="javascript:hideDiffstat()"/>[<tt>-</tt>]</a>
365 <p>
365 <p>
366 <table> <tr class="parity0">
366 <table> <tr class="parity0">
367 <td class="diffstat-file"><a href="#l1.1">a</a></td>
367 <td class="diffstat-file"><a href="#l1.1">a</a></td>
368 <td class="diffstat-total" align="right">1</td>
368 <td class="diffstat-total" align="right">1</td>
369 <td class="diffstat-graph">
369 <td class="diffstat-graph">
370 <span class="diffstat-add" style="width:100.0%;">&nbsp;</span>
370 <span class="diffstat-add" style="width:100.0%;">&nbsp;</span>
371 <span class="diffstat-remove" style="width:0.0%;">&nbsp;</span>
371 <span class="diffstat-remove" style="width:0.0%;">&nbsp;</span>
372 </td>
372 </td>
373 </tr>
373 </tr>
374 <tr class="parity1">
374 <tr class="parity1">
375 <td class="diffstat-file"><a href="#l2.1">b</a></td>
375 <td class="diffstat-file"><a href="#l2.1">b</a></td>
376 <td class="diffstat-total" align="right">1</td>
376 <td class="diffstat-total" align="right">1</td>
377 <td class="diffstat-graph">
377 <td class="diffstat-graph">
378 <span class="diffstat-add" style="width:100.0%;">&nbsp;</span>
378 <span class="diffstat-add" style="width:100.0%;">&nbsp;</span>
379 <span class="diffstat-remove" style="width:0.0%;">&nbsp;</span>
379 <span class="diffstat-remove" style="width:0.0%;">&nbsp;</span>
380 </td>
380 </td>
381 </tr>
381 </tr>
382 </table>
382 </table>
383 </div>
383 </div>
384 </td>
384 </td>
385 </tr>
385 </tr>
386 </table>
386 </table>
387
387
388 <div class="overflow">
388 <div class="overflow">
389 <div class="sourcefirst"> line diff</div>
389 <div class="sourcefirst"> line diff</div>
390
390
391 <div class="source bottomline parity0"><pre><a href="#l1.1" id="l1.1"> 1.1</a> new file mode 100644
391 <div class="source bottomline parity0"><pre><a href="#l1.1" id="l1.1"> 1.1</a> new file mode 100644
392 <a href="#l1.2" id="l1.2"> 1.2</a> <span class="minusline">--- /dev/null
392 <a href="#l1.2" id="l1.2"> 1.2</a> <span class="minusline">--- /dev/null
393 </span><a href="#l1.3" id="l1.3"> 1.3</a> <span class="plusline">+++ b/a
393 </span><a href="#l1.3" id="l1.3"> 1.3</a> <span class="plusline">+++ b/a
394 </span><a href="#l1.4" id="l1.4"> 1.4</a> <span class="atline">@@ -0,0 +1,1 @@
394 </span><a href="#l1.4" id="l1.4"> 1.4</a> <span class="atline">@@ -0,0 +1,1 @@
395 </span><a href="#l1.5" id="l1.5"> 1.5</a> <span class="plusline">+a
395 </span><a href="#l1.5" id="l1.5"> 1.5</a> <span class="plusline">+a
396 </span></pre></div><div class="source bottomline parity1"><pre><a href="#l2.1" id="l2.1"> 2.1</a> new file mode 100644
396 </span></pre></div><div class="source bottomline parity1"><pre><a href="#l2.1" id="l2.1"> 2.1</a> new file mode 100644
397 <a href="#l2.2" id="l2.2"> 2.2</a> <span class="minusline">--- /dev/null
397 <a href="#l2.2" id="l2.2"> 2.2</a> <span class="minusline">--- /dev/null
398 </span><a href="#l2.3" id="l2.3"> 2.3</a> <span class="plusline">+++ b/b
398 </span><a href="#l2.3" id="l2.3"> 2.3</a> <span class="plusline">+++ b/b
399 </span><a href="#l2.4" id="l2.4"> 2.4</a> <span class="atline">@@ -0,0 +1,1 @@
399 </span><a href="#l2.4" id="l2.4"> 2.4</a> <span class="atline">@@ -0,0 +1,1 @@
400 </span><a href="#l2.5" id="l2.5"> 2.5</a> <span class="plusline">+b
400 </span><a href="#l2.5" id="l2.5"> 2.5</a> <span class="plusline">+b
401 </span></pre></div>
401 </span></pre></div>
402 </div>
402 </div>
403
403
404 </div>
404 </div>
405 </div>
405 </div>
406 <script type="text/javascript">process_dates()</script>
406 <script type="text/javascript">process_dates()</script>
407
407
408
408
409 </body>
409 </body>
410 </html>
410 </html>
411
411
412
412
413 revision
413 revision
414
414
415 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/raw-rev/0'
415 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/raw-rev/0'
416 200 Script output follows
416 200 Script output follows
417
417
418
418
419 # HG changeset patch
419 # HG changeset patch
420 # User test
420 # User test
421 # Date 0 0
421 # Date 0 0
422 # Node ID 0cd96de13884b090099512d4794ae87ad067ea8e
422 # Node ID 0cd96de13884b090099512d4794ae87ad067ea8e
423
423
424 a
424 a
425
425
426 diff --git a/a b/a
426 diff --git a/a b/a
427 new file mode 100644
427 new file mode 100644
428 --- /dev/null
428 --- /dev/null
429 +++ b/a
429 +++ b/a
430 @@ -0,0 +1,1 @@
430 @@ -0,0 +1,1 @@
431 +a
431 +a
432 diff --git a/b b/b
432 diff --git a/b b/b
433 new file mode 100644
433 new file mode 100644
434 --- /dev/null
434 --- /dev/null
435 +++ b/b
435 +++ b/b
436 @@ -0,0 +1,1 @@
436 @@ -0,0 +1,1 @@
437 +b
437 +b
438
438
439
439
440 diff removed file
440 diff removed file
441
441
442 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/diff/tip/a'
442 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/diff/tip/a'
443 200 Script output follows
443 200 Script output follows
444
444
445 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
445 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
446 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
446 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
447 <head>
447 <head>
448 <link rel="icon" href="/static/hgicon.png" type="image/png" />
448 <link rel="icon" href="/static/hgicon.png" type="image/png" />
449 <meta name="robots" content="index, nofollow" />
449 <meta name="robots" content="index, nofollow" />
450 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
450 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
451 <script type="text/javascript" src="/static/mercurial.js"></script>
451 <script type="text/javascript" src="/static/mercurial.js"></script>
452
452
453 <title>test: a diff</title>
453 <title>test: a diff</title>
454 </head>
454 </head>
455 <body>
455 <body>
456
456
457 <div class="container">
457 <div class="container">
458 <div class="menu">
458 <div class="menu">
459 <div class="logo">
459 <div class="logo">
460 <a href="http://mercurial.selenic.com/">
460 <a href="http://mercurial.selenic.com/">
461 <img src="/static/hglogo.png" alt="mercurial" /></a>
461 <img src="/static/hglogo.png" alt="mercurial" /></a>
462 </div>
462 </div>
463 <ul>
463 <ul>
464 <li><a href="/shortlog/78e4ebad7cdf">log</a></li>
464 <li><a href="/shortlog/78e4ebad7cdf">log</a></li>
465 <li><a href="/graph/78e4ebad7cdf">graph</a></li>
465 <li><a href="/graph/78e4ebad7cdf">graph</a></li>
466 <li><a href="/tags">tags</a></li>
466 <li><a href="/tags">tags</a></li>
467 <li><a href="/bookmarks">bookmarks</a></li>
467 <li><a href="/bookmarks">bookmarks</a></li>
468 <li><a href="/branches">branches</a></li>
468 <li><a href="/branches">branches</a></li>
469 </ul>
469 </ul>
470 <ul>
470 <ul>
471 <li><a href="/rev/78e4ebad7cdf">changeset</a></li>
471 <li><a href="/rev/78e4ebad7cdf">changeset</a></li>
472 <li><a href="/file/78e4ebad7cdf">browse</a></li>
472 <li><a href="/file/78e4ebad7cdf">browse</a></li>
473 </ul>
473 </ul>
474 <ul>
474 <ul>
475 <li><a href="/file/78e4ebad7cdf/a">file</a></li>
475 <li><a href="/file/78e4ebad7cdf/a">file</a></li>
476 <li><a href="/file/tip/a">latest</a></li>
476 <li><a href="/file/tip/a">latest</a></li>
477 <li class="active">diff</li>
477 <li class="active">diff</li>
478 <li><a href="/annotate/78e4ebad7cdf/a">annotate</a></li>
478 <li><a href="/annotate/78e4ebad7cdf/a">annotate</a></li>
479 <li><a href="/log/78e4ebad7cdf/a">file log</a></li>
479 <li><a href="/log/78e4ebad7cdf/a">file log</a></li>
480 <li><a href="/raw-file/78e4ebad7cdf/a">raw</a></li>
480 <li><a href="/raw-file/78e4ebad7cdf/a">raw</a></li>
481 </ul>
481 </ul>
482 <ul>
482 <ul>
483 <li><a href="/help">help</a></li>
483 <li><a href="/help">help</a></li>
484 </ul>
484 </ul>
485 </div>
485 </div>
486
486
487 <div class="main">
487 <div class="main">
488 <h2><a href="/">test</a></h2>
488 <h2><a href="/">test</a></h2>
489 <h3>diff a @ 1:78e4ebad7cdf</h3>
489 <h3>diff a @ 1:78e4ebad7cdf</h3>
490
490
491 <form class="search" action="/log">
491 <form class="search" action="/log">
492 <p></p>
492 <p></p>
493 <p><input name="rev" id="search1" type="text" size="30" /></p>
493 <p><input name="rev" id="search1" type="text" size="30" /></p>
494 <div id="hint">find changesets by author, revision,
494 <div id="hint">find changesets by author, revision,
495 files, or words in the commit message</div>
495 files, or words in the commit message</div>
496 </form>
496 </form>
497
497
498 <div class="description">b</div>
498 <div class="description">b</div>
499
499
500 <table id="changesetEntry">
500 <table id="changesetEntry">
501 <tr>
501 <tr>
502 <th>author</th>
502 <th>author</th>
503 <td>&#116;&#101;&#115;&#116;</td>
503 <td>&#116;&#101;&#115;&#116;</td>
504 </tr>
504 </tr>
505 <tr>
505 <tr>
506 <th>date</th>
506 <th>date</th>
507 <td class="date age">Thu Jan 01 00:00:00 1970 +0000</td>
507 <td class="date age">Thu Jan 01 00:00:00 1970 +0000</td>
508 </tr>
508 </tr>
509 <tr>
509 <tr>
510 <th>parents</th>
510 <th>parents</th>
511 <td></td>
511 <td></td>
512 </tr>
512 </tr>
513 <tr>
513 <tr>
514 <th>children</th>
514 <th>children</th>
515 <td></td>
515 <td></td>
516 </tr>
516 </tr>
517
517
518 </table>
518 </table>
519
519
520 <div class="overflow">
520 <div class="overflow">
521 <div class="sourcefirst"> line diff</div>
521 <div class="sourcefirst"> line diff</div>
522
522
523 <div class="source bottomline parity0"><pre><a href="#l1.1" id="l1.1"> 1.1</a> new file mode 100755
523 <div class="source bottomline parity0"><pre><a href="#l1.1" id="l1.1"> 1.1</a> new file mode 100755
524 <a href="#l1.2" id="l1.2"> 1.2</a> <span class="minusline">--- /dev/null
524 <a href="#l1.2" id="l1.2"> 1.2</a> <span class="minusline">--- /dev/null
525 </span><a href="#l1.3" id="l1.3"> 1.3</a> <span class="plusline">+++ b/a
525 </span><a href="#l1.3" id="l1.3"> 1.3</a> <span class="plusline">+++ b/a
526 </span><a href="#l1.4" id="l1.4"> 1.4</a> <span class="atline">@@ -0,0 +1,1 @@
526 </span><a href="#l1.4" id="l1.4"> 1.4</a> <span class="atline">@@ -0,0 +1,1 @@
527 </span><a href="#l1.5" id="l1.5"> 1.5</a> <span class="plusline">+a
527 </span><a href="#l1.5" id="l1.5"> 1.5</a> <span class="plusline">+a
528 </span></pre></div>
528 </span></pre></div>
529 </div>
529 </div>
530 </div>
530 </div>
531 </div>
531 </div>
532
532
533 <script type="text/javascript">process_dates()</script>
533 <script type="text/javascript">process_dates()</script>
534
534
535
535
536 </body>
536 </body>
537 </html>
537 </html>
538
538
539 $ cd ..
539 $ cd ..
540
540
541 test import rev as raw-rev
541 test import rev as raw-rev
542
542
543 $ hg clone -r0 test test1
543 $ hg clone -r0 test test1
544 adding changesets
544 adding changesets
545 adding manifests
545 adding manifests
546 adding file changes
546 adding file changes
547 added 1 changesets with 2 changes to 2 files
547 added 1 changesets with 2 changes to 2 files
548 updating to branch default
548 updating to branch default
549 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
549 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
550 $ cd test1
550 $ cd test1
551 $ hg import -q --exact http://localhost:$HGPORT/rev/1
551 $ hg import -q --exact http://localhost:$HGPORT/rev/1
552
552
553 errors
553 errors
554
554
555 $ cat ../test/errors.log
555 $ cat ../test/errors.log
@@ -1,231 +1,231 b''
1 setting up repo
1 setting up repo
2
2
3 $ hg init test
3 $ hg init test
4 $ cd test
4 $ cd test
5 $ echo a > a
5 $ echo a > a
6 $ hg ci -Ama
6 $ hg ci -Ama
7 adding a
7 adding a
8 $ hg rm a
8 $ hg rm a
9 $ hg ci -mdel
9 $ hg ci -mdel
10
10
11 set up hgweb
11 set up hgweb
12
12
13 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
13 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
14 $ cat hg.pid >> $DAEMON_PIDS
14 $ cat hg.pid >> $DAEMON_PIDS
15
15
16 revision
16 revision
17
17
18 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/rev/tip'
18 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/rev/tip'
19 200 Script output follows
19 200 Script output follows
20
20
21 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
21 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
22 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
22 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
23 <head>
23 <head>
24 <link rel="icon" href="/static/hgicon.png" type="image/png" />
24 <link rel="icon" href="/static/hgicon.png" type="image/png" />
25 <meta name="robots" content="index, nofollow" />
25 <meta name="robots" content="index, nofollow" />
26 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
26 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
27 <script type="text/javascript" src="/static/mercurial.js"></script>
27 <script type="text/javascript" src="/static/mercurial.js"></script>
28
28
29 <title>test: c78f6c5cbea9</title>
29 <title>test: c78f6c5cbea9</title>
30 </head>
30 </head>
31 <body>
31 <body>
32 <div class="container">
32 <div class="container">
33 <div class="menu">
33 <div class="menu">
34 <div class="logo">
34 <div class="logo">
35 <a href="http://mercurial.selenic.com/">
35 <a href="http://mercurial.selenic.com/">
36 <img src="/static/hglogo.png" alt="mercurial" /></a>
36 <img src="/static/hglogo.png" alt="mercurial" /></a>
37 </div>
37 </div>
38 <ul>
38 <ul>
39 <li><a href="/shortlog/c78f6c5cbea9">log</a></li>
39 <li><a href="/shortlog/c78f6c5cbea9">log</a></li>
40 <li><a href="/graph/c78f6c5cbea9">graph</a></li>
40 <li><a href="/graph/c78f6c5cbea9">graph</a></li>
41 <li><a href="/tags">tags</a></li>
41 <li><a href="/tags">tags</a></li>
42 <li><a href="/bookmarks">bookmarks</a></li>
42 <li><a href="/bookmarks">bookmarks</a></li>
43 <li><a href="/branches">branches</a></li>
43 <li><a href="/branches">branches</a></li>
44 </ul>
44 </ul>
45 <ul>
45 <ul>
46 <li class="active">changeset</li>
46 <li class="active">changeset</li>
47 <li><a href="/raw-rev/c78f6c5cbea9">raw</a></li>
47 <li><a href="/raw-rev/c78f6c5cbea9">raw</a></li>
48 <li><a href="/file/c78f6c5cbea9">browse</a></li>
48 <li><a href="/file/c78f6c5cbea9">browse</a></li>
49 </ul>
49 </ul>
50 <ul>
50 <ul>
51
51
52 </ul>
52 </ul>
53 <ul>
53 <ul>
54 <li><a href="/help">help</a></li>
54 <li><a href="/help">help</a></li>
55 </ul>
55 </ul>
56 </div>
56 </div>
57
57
58 <div class="main">
58 <div class="main">
59
59
60 <h2><a href="/">test</a></h2>
60 <h2><a href="/">test</a></h2>
61 <h3>changeset 1:c78f6c5cbea9 <span class="tag">tip</span> </h3>
61 <h3>changeset 1:c78f6c5cbea9 <span class="tag">tip</span> </h3>
62
62
63 <form class="search" action="/log">
63 <form class="search" action="/log">
64
64
65 <p><input name="rev" id="search1" type="text" size="30" /></p>
65 <p><input name="rev" id="search1" type="text" size="30" /></p>
66 <div id="hint">find changesets by author, revision,
66 <div id="hint">find changesets by author, revision,
67 files, or words in the commit message</div>
67 files, or words in the commit message</div>
68 </form>
68 </form>
69
69
70 <div class="description">del</div>
70 <div class="description">del</div>
71
71
72 <table id="changesetEntry">
72 <table id="changesetEntry">
73 <tr>
73 <tr>
74 <th class="author">author</th>
74 <th class="author">author</th>
75 <td class="author">&#116;&#101;&#115;&#116;</td>
75 <td class="author">&#116;&#101;&#115;&#116;</td>
76 </tr>
76 </tr>
77 <tr>
77 <tr>
78 <th class="date">date</th>
78 <th class="date">date</th>
79 <td class="date age">Thu Jan 01 00:00:00 1970 +0000</td></tr>
79 <td class="date age">Thu Jan 01 00:00:00 1970 +0000</td></tr>
80 <tr>
80 <tr>
81 <th class="author">parents</th>
81 <th class="author">parents</th>
82 <td class="author"><a href="/rev/cb9a9f314b8b">cb9a9f314b8b</a> </td>
82 <td class="author"><a href="/rev/cb9a9f314b8b">cb9a9f314b8b</a> </td>
83 </tr>
83 </tr>
84 <tr>
84 <tr>
85 <th class="author">children</th>
85 <th class="author">children</th>
86 <td class="author"></td>
86 <td class="author"></td>
87 </tr>
87 </tr>
88 <tr>
88 <tr>
89 <th class="files">files</th>
89 <th class="files">files</th>
90 <td class="files">a </td>
90 <td class="files">a </td>
91 </tr>
91 </tr>
92 <tr>
92 <tr>
93 <th class="diffstat">diffstat</th>
93 <th class="diffstat">diffstat</th>
94 <td class="diffstat">
94 <td class="diffstat">
95 1 files changed, 0 insertions(+), 1 deletions(-)
95 1 files changed, 0 insertions(+), 1 deletions(-)
96
96
97 <a id="diffstatexpand" href="javascript:showDiffstat()"/>[+]</a>
97 <a id="diffstatexpand" href="javascript:showDiffstat()"/>[<tt>+</tt>]</a>
98 <div id="diffstatdetails" style="display:none;">
98 <div id="diffstatdetails" style="display:none;">
99 <a href="javascript:hideDiffstat()"/>[-]</a>
99 <a href="javascript:hideDiffstat()"/>[<tt>-</tt>]</a>
100 <p>
100 <p>
101 <table> <tr class="parity0">
101 <table> <tr class="parity0">
102 <td class="diffstat-file"><a href="#l1.1">a</a></td>
102 <td class="diffstat-file"><a href="#l1.1">a</a></td>
103 <td class="diffstat-total" align="right">1</td>
103 <td class="diffstat-total" align="right">1</td>
104 <td class="diffstat-graph">
104 <td class="diffstat-graph">
105 <span class="diffstat-add" style="width:0.0%;">&nbsp;</span>
105 <span class="diffstat-add" style="width:0.0%;">&nbsp;</span>
106 <span class="diffstat-remove" style="width:100.0%;">&nbsp;</span>
106 <span class="diffstat-remove" style="width:100.0%;">&nbsp;</span>
107 </td>
107 </td>
108 </tr>
108 </tr>
109 </table>
109 </table>
110 </div>
110 </div>
111 </td>
111 </td>
112 </tr>
112 </tr>
113 </table>
113 </table>
114
114
115 <div class="overflow">
115 <div class="overflow">
116 <div class="sourcefirst"> line diff</div>
116 <div class="sourcefirst"> line diff</div>
117
117
118 <div class="source bottomline parity0"><pre><a href="#l1.1" id="l1.1"> 1.1</a> <span class="minusline">--- a/a Thu Jan 01 00:00:00 1970 +0000
118 <div class="source bottomline parity0"><pre><a href="#l1.1" id="l1.1"> 1.1</a> <span class="minusline">--- a/a Thu Jan 01 00:00:00 1970 +0000
119 </span><a href="#l1.2" id="l1.2"> 1.2</a> <span class="plusline">+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
119 </span><a href="#l1.2" id="l1.2"> 1.2</a> <span class="plusline">+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
120 </span><a href="#l1.3" id="l1.3"> 1.3</a> <span class="atline">@@ -1,1 +0,0 @@
120 </span><a href="#l1.3" id="l1.3"> 1.3</a> <span class="atline">@@ -1,1 +0,0 @@
121 </span><a href="#l1.4" id="l1.4"> 1.4</a> <span class="minusline">-a
121 </span><a href="#l1.4" id="l1.4"> 1.4</a> <span class="minusline">-a
122 </span></pre></div>
122 </span></pre></div>
123 </div>
123 </div>
124
124
125 </div>
125 </div>
126 </div>
126 </div>
127 <script type="text/javascript">process_dates()</script>
127 <script type="text/javascript">process_dates()</script>
128
128
129
129
130 </body>
130 </body>
131 </html>
131 </html>
132
132
133
133
134 diff removed file
134 diff removed file
135
135
136 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/diff/tip/a'
136 $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/diff/tip/a'
137 200 Script output follows
137 200 Script output follows
138
138
139 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
139 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
140 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
140 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
141 <head>
141 <head>
142 <link rel="icon" href="/static/hgicon.png" type="image/png" />
142 <link rel="icon" href="/static/hgicon.png" type="image/png" />
143 <meta name="robots" content="index, nofollow" />
143 <meta name="robots" content="index, nofollow" />
144 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
144 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
145 <script type="text/javascript" src="/static/mercurial.js"></script>
145 <script type="text/javascript" src="/static/mercurial.js"></script>
146
146
147 <title>test: a diff</title>
147 <title>test: a diff</title>
148 </head>
148 </head>
149 <body>
149 <body>
150
150
151 <div class="container">
151 <div class="container">
152 <div class="menu">
152 <div class="menu">
153 <div class="logo">
153 <div class="logo">
154 <a href="http://mercurial.selenic.com/">
154 <a href="http://mercurial.selenic.com/">
155 <img src="/static/hglogo.png" alt="mercurial" /></a>
155 <img src="/static/hglogo.png" alt="mercurial" /></a>
156 </div>
156 </div>
157 <ul>
157 <ul>
158 <li><a href="/shortlog/c78f6c5cbea9">log</a></li>
158 <li><a href="/shortlog/c78f6c5cbea9">log</a></li>
159 <li><a href="/graph/c78f6c5cbea9">graph</a></li>
159 <li><a href="/graph/c78f6c5cbea9">graph</a></li>
160 <li><a href="/tags">tags</a></li>
160 <li><a href="/tags">tags</a></li>
161 <li><a href="/bookmarks">bookmarks</a></li>
161 <li><a href="/bookmarks">bookmarks</a></li>
162 <li><a href="/branches">branches</a></li>
162 <li><a href="/branches">branches</a></li>
163 </ul>
163 </ul>
164 <ul>
164 <ul>
165 <li><a href="/rev/c78f6c5cbea9">changeset</a></li>
165 <li><a href="/rev/c78f6c5cbea9">changeset</a></li>
166 <li><a href="/file/c78f6c5cbea9">browse</a></li>
166 <li><a href="/file/c78f6c5cbea9">browse</a></li>
167 </ul>
167 </ul>
168 <ul>
168 <ul>
169 <li><a href="/file/c78f6c5cbea9/a">file</a></li>
169 <li><a href="/file/c78f6c5cbea9/a">file</a></li>
170 <li><a href="/file/tip/a">latest</a></li>
170 <li><a href="/file/tip/a">latest</a></li>
171 <li class="active">diff</li>
171 <li class="active">diff</li>
172 <li><a href="/annotate/c78f6c5cbea9/a">annotate</a></li>
172 <li><a href="/annotate/c78f6c5cbea9/a">annotate</a></li>
173 <li><a href="/log/c78f6c5cbea9/a">file log</a></li>
173 <li><a href="/log/c78f6c5cbea9/a">file log</a></li>
174 <li><a href="/raw-file/c78f6c5cbea9/a">raw</a></li>
174 <li><a href="/raw-file/c78f6c5cbea9/a">raw</a></li>
175 </ul>
175 </ul>
176 <ul>
176 <ul>
177 <li><a href="/help">help</a></li>
177 <li><a href="/help">help</a></li>
178 </ul>
178 </ul>
179 </div>
179 </div>
180
180
181 <div class="main">
181 <div class="main">
182 <h2><a href="/">test</a></h2>
182 <h2><a href="/">test</a></h2>
183 <h3>diff a @ 1:c78f6c5cbea9</h3>
183 <h3>diff a @ 1:c78f6c5cbea9</h3>
184
184
185 <form class="search" action="/log">
185 <form class="search" action="/log">
186 <p></p>
186 <p></p>
187 <p><input name="rev" id="search1" type="text" size="30" /></p>
187 <p><input name="rev" id="search1" type="text" size="30" /></p>
188 <div id="hint">find changesets by author, revision,
188 <div id="hint">find changesets by author, revision,
189 files, or words in the commit message</div>
189 files, or words in the commit message</div>
190 </form>
190 </form>
191
191
192 <div class="description">del</div>
192 <div class="description">del</div>
193
193
194 <table id="changesetEntry">
194 <table id="changesetEntry">
195 <tr>
195 <tr>
196 <th>author</th>
196 <th>author</th>
197 <td>&#116;&#101;&#115;&#116;</td>
197 <td>&#116;&#101;&#115;&#116;</td>
198 </tr>
198 </tr>
199 <tr>
199 <tr>
200 <th>date</th>
200 <th>date</th>
201 <td class="date age">Thu Jan 01 00:00:00 1970 +0000</td>
201 <td class="date age">Thu Jan 01 00:00:00 1970 +0000</td>
202 </tr>
202 </tr>
203 <tr>
203 <tr>
204 <th>parents</th>
204 <th>parents</th>
205 <td><a href="/file/cb9a9f314b8b/a">cb9a9f314b8b</a> </td>
205 <td><a href="/file/cb9a9f314b8b/a">cb9a9f314b8b</a> </td>
206 </tr>
206 </tr>
207 <tr>
207 <tr>
208 <th>children</th>
208 <th>children</th>
209 <td></td>
209 <td></td>
210 </tr>
210 </tr>
211
211
212 </table>
212 </table>
213
213
214 <div class="overflow">
214 <div class="overflow">
215 <div class="sourcefirst"> line diff</div>
215 <div class="sourcefirst"> line diff</div>
216
216
217 <div class="source bottomline parity0"><pre><a href="#l1.1" id="l1.1"> 1.1</a> <span class="minusline">--- a/a Thu Jan 01 00:00:00 1970 +0000
217 <div class="source bottomline parity0"><pre><a href="#l1.1" id="l1.1"> 1.1</a> <span class="minusline">--- a/a Thu Jan 01 00:00:00 1970 +0000
218 </span><a href="#l1.2" id="l1.2"> 1.2</a> <span class="plusline">+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
218 </span><a href="#l1.2" id="l1.2"> 1.2</a> <span class="plusline">+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
219 </span><a href="#l1.3" id="l1.3"> 1.3</a> <span class="atline">@@ -1,1 +0,0 @@
219 </span><a href="#l1.3" id="l1.3"> 1.3</a> <span class="atline">@@ -1,1 +0,0 @@
220 </span><a href="#l1.4" id="l1.4"> 1.4</a> <span class="minusline">-a
220 </span><a href="#l1.4" id="l1.4"> 1.4</a> <span class="minusline">-a
221 </span></pre></div>
221 </span></pre></div>
222 </div>
222 </div>
223 </div>
223 </div>
224 </div>
224 </div>
225
225
226 <script type="text/javascript">process_dates()</script>
226 <script type="text/javascript">process_dates()</script>
227
227
228
228
229 </body>
229 </body>
230 </html>
230 </html>
231
231
General Comments 0
You need to be logged in to leave comments. Login now