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