##// END OF EJS Templates
gitweb: don't show '[up]' in file view when in root directory already
av6 -
r38202:d6aa1fc8 default
parent child Browse files
Show More
@@ -1,44 +1,38 b''
1 {header}
1 {header}
2 <title>{repo|escape}: files</title>
2 <title>{repo|escape}: files</title>
3 <link rel="alternate" type="application/atom+xml"
3 <link rel="alternate" type="application/atom+xml"
4 href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
4 href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
5 <link rel="alternate" type="application/rss+xml"
5 <link rel="alternate" type="application/rss+xml"
6 href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
6 href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
7 </head>
7 </head>
8 <body>
8 <body>
9
9
10 <div class="page_header">
10 <div class="page_header">
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
12 <a href="/">Mercurial</a> {pathdef%breadcrumb} / files
12 <a href="/">Mercurial</a> {pathdef%breadcrumb} / files
13 </div>
13 </div>
14
14
15 <div class="page_nav">
15 <div class="page_nav">
16 <div>
16 <div>
17 <a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a> |
17 <a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a> |
18 <a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a> |
18 <a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a> |
19 <a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a> |
19 <a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a> |
20 <a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a> |
20 <a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a> |
21 <a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> |
21 <a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> |
22 <a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
22 <a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
23 <a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> |
23 <a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> |
24 files |
24 files |
25 <a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a> {archives%archiveentry} |
25 <a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a> {archives%archiveentry} |
26 <a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
26 <a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
27 </div>
27 </div>
28 {searchform}
28 {searchform}
29 </div>
29 </div>
30
30
31 <div class="title">{path|escape} {alltags}</div>
31 <div class="title">{path|escape} {alltags}</div>
32 <table cellspacing="0">
32 <table cellspacing="0">
33 <tr class="parity{upparity}">
33 {ifeq(path, up, '', updirentry)}
34 <td style="font-family:monospace">drwxr-xr-x</td>
35 <td style="font-family:monospace"></td>
36 <td style="font-family:monospace"></td>
37 <td><a href="{url|urlescape}file/{symrev}{up|urlescape}{sessionvars%urlparameter}">[up]</a></td>
38 <td class="link">&nbsp;</td>
39 </tr>
40 {dentries%direntry}
34 {dentries%direntry}
41 {fentries%fileentry}
35 {fentries%fileentry}
42 </table>
36 </table>
43
37
44 {footer}
38 {footer}
@@ -1,373 +1,383 b''
1 default = 'summary'
1 default = 'summary'
2 mimetype = 'text/html; charset={encoding}'
2 mimetype = 'text/html; charset={encoding}'
3 header = header.tmpl
3 header = header.tmpl
4 footer = footer.tmpl
4 footer = footer.tmpl
5 search = search.tmpl
5 search = search.tmpl
6 changelog = changelog.tmpl
6 changelog = changelog.tmpl
7 summary = summary.tmpl
7 summary = summary.tmpl
8 error = error.tmpl
8 error = error.tmpl
9 notfound = notfound.tmpl
9 notfound = notfound.tmpl
10
10
11 help = help.tmpl
11 help = help.tmpl
12 helptopics = helptopics.tmpl
12 helptopics = helptopics.tmpl
13
13
14 helpentry = '
14 helpentry = '
15 <tr><td>
15 <tr><td>
16 <a href="{url|urlescape}help/{topic|escape}{sessionvars%urlparameter}">
16 <a href="{url|urlescape}help/{topic|escape}{sessionvars%urlparameter}">
17 {if(basename, '{basename|escape}', '{topic|escape}')}
17 {if(basename, '{basename|escape}', '{topic|escape}')}
18 </a>
18 </a>
19 </td><td>
19 </td><td>
20 {summary|escape}
20 {summary|escape}
21 </td></tr>'
21 </td></tr>'
22
22
23 naventry = '<a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
23 naventry = '<a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
24 navshortentry = '<a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
24 navshortentry = '<a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
25 navgraphentry = '<a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
25 navgraphentry = '<a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
26 filenaventry = '<a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
26 filenaventry = '<a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
27 filedifflink = '<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
27 filedifflink = '<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
28 filenodelink = '
28 filenodelink = '
29 <tr class="parity{parity}">
29 <tr class="parity{parity}">
30 <td><a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
30 <td><a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
31 <td></td>
31 <td></td>
32 <td class="link">
32 <td class="link">
33 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
33 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
34 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
34 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
35 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
35 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
36 <a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
36 <a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
37 <a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
37 <a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
38 </td>
38 </td>
39 </tr>'
39 </tr>'
40 filenolink = '
40 filenolink = '
41 <tr class="parity{parity}">
41 <tr class="parity{parity}">
42 <td><a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
42 <td><a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
43 <td></td>
43 <td></td>
44 <td class="link">
44 <td class="link">
45 file |
45 file |
46 annotate |
46 annotate |
47 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
47 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
48 <a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
48 <a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
49 <a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
49 <a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
50 </td>
50 </td>
51 </tr>'
51 </tr>'
52
52
53 nav = '{before%naventry} {after%naventry}'
53 nav = '{before%naventry} {after%naventry}'
54 navshort = '{before%navshortentry}{after%navshortentry}'
54 navshort = '{before%navshortentry}{after%navshortentry}'
55 navgraph = '{before%navgraphentry}{after%navgraphentry}'
55 navgraph = '{before%navgraphentry}{after%navgraphentry}'
56 filenav = '{before%filenaventry}{after%filenaventry}'
56 filenav = '{before%filenaventry}{after%filenaventry}'
57
57
58 fileellipses = '...'
58 fileellipses = '...'
59 changelogentry = changelogentry.tmpl
59 changelogentry = changelogentry.tmpl
60 changeset = changeset.tmpl
60 changeset = changeset.tmpl
61 manifest = manifest.tmpl
61 manifest = manifest.tmpl
62 updirentry = '
63 <tr class="parity{upparity}">
64 <td style="font-family:monospace">drwxr-xr-x</td>
65 <td style="font-family:monospace"></td>
66 <td style="font-family:monospace"></td>
67 <td>
68 <a href="{url|urlescape}file/{symrev}{up|urlescape}{sessionvars%urlparameter}">[up]</a>
69 </td>
70 <td class="link">&nbsp;</td>
71 </tr>'
62 direntry = '
72 direntry = '
63 <tr class="parity{parity}">
73 <tr class="parity{parity}">
64 <td style="font-family:monospace">drwxr-xr-x</td>
74 <td style="font-family:monospace">drwxr-xr-x</td>
65 <td style="font-family:monospace"></td>
75 <td style="font-family:monospace"></td>
66 <td style="font-family:monospace"></td>
76 <td style="font-family:monospace"></td>
67 <td>
77 <td>
68 <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
78 <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
69 <a href="{url|urlescape}file/{symrev}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">{emptydirs|escape}</a>
79 <a href="{url|urlescape}file/{symrev}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">{emptydirs|escape}</a>
70 </td>
80 </td>
71 <td class="link">
81 <td class="link">
72 <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a>
82 <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a>
73 </td>
83 </td>
74 </tr>'
84 </tr>'
75 fileentry = '
85 fileentry = '
76 <tr class="parity{parity}">
86 <tr class="parity{parity}">
77 <td style="font-family:monospace">{permissions|permissions}</td>
87 <td style="font-family:monospace">{permissions|permissions}</td>
78 <td style="font-family:monospace" align=right>{date|isodate}</td>
88 <td style="font-family:monospace" align=right>{date|isodate}</td>
79 <td style="font-family:monospace" align=right>{size}</td>
89 <td style="font-family:monospace" align=right>{size}</td>
80 <td class="list">
90 <td class="list">
81 <a class="list" href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
91 <a class="list" href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">{basename|escape}</a>
82 </td>
92 </td>
83 <td class="link">
93 <td class="link">
84 <a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
94 <a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
85 <a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
95 <a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
86 <a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
96 <a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
87 </td>
97 </td>
88 </tr>'
98 </tr>'
89 filerevision = filerevision.tmpl
99 filerevision = filerevision.tmpl
90 fileannotate = fileannotate.tmpl
100 fileannotate = fileannotate.tmpl
91 filediff = filediff.tmpl
101 filediff = filediff.tmpl
92 filecomparison = filecomparison.tmpl
102 filecomparison = filecomparison.tmpl
93 filelog = filelog.tmpl
103 filelog = filelog.tmpl
94 fileline = '
104 fileline = '
95 <a href="#{lineid}"></a><span id="{lineid}">{strip(line|escape, '\r\n')}</span>'
105 <a href="#{lineid}"></a><span id="{lineid}">{strip(line|escape, '\r\n')}</span>'
96 annotateline = '
106 annotateline = '
97 <tr id="{lineid}" style="font-family:monospace" class="parity{parity}{ifeq(node, originalnode, ' thisrev')}">
107 <tr id="{lineid}" style="font-family:monospace" class="parity{parity}{ifeq(node, originalnode, ' thisrev')}">
98 <td class="annotate linenr parity{blockparity}" style="text-align: right;">
108 <td class="annotate linenr parity{blockparity}" style="text-align: right;">
99 {if(blockhead,
109 {if(blockhead,
100 '<a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
110 '<a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
101 {rev}
111 {rev}
102 </a>')}
112 </a>')}
103 <div class="annotate-info">
113 <div class="annotate-info">
104 <div>
114 <div>
105 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
115 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}">
106 {node|short}</a>
116 {node|short}</a>
107 {desc|escape|firstline}
117 {desc|escape|firstline}
108 </div>
118 </div>
109 <div><em>{author|obfuscate}</em></div>
119 <div><em>{author|obfuscate}</em></div>
110 <div>parents: {parents%annotateparent}</div>
120 <div>parents: {parents%annotateparent}</div>
111 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>
121 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a>
112 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a>
122 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a>
113 </div>
123 </div>
114 </td>
124 </td>
115 <td class="followlines-btn-parent"><pre><a class="linenr" href="#{lineid}">{linenumber}</a></pre></td>
125 <td class="followlines-btn-parent"><pre><a class="linenr" href="#{lineid}">{linenumber}</a></pre></td>
116 <td><pre>{line|escape}</pre></td>
126 <td><pre>{line|escape}</pre></td>
117 </tr>'
127 </tr>'
118 annotateparent = '
128 annotateparent = '
119 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rev}</a>'
129 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rev}</a>'
120 difflineplus = '
130 difflineplus = '
121 <a href="#{lineid}"></a><span id="{lineid}" class="difflineplus">{strip(line|escape, '\r\n')}</span>'
131 <a href="#{lineid}"></a><span id="{lineid}" class="difflineplus">{strip(line|escape, '\r\n')}</span>'
122 difflineminus = '
132 difflineminus = '
123 <a href="#{lineid}"></a><span id="{lineid}" class="difflineminus">{strip(line|escape, '\r\n')}</span>'
133 <a href="#{lineid}"></a><span id="{lineid}" class="difflineminus">{strip(line|escape, '\r\n')}</span>'
124 difflineat = '
134 difflineat = '
125 <a href="#{lineid}"></a><span id="{lineid}" class="difflineat">{strip(line|escape, '\r\n')}</span>'
135 <a href="#{lineid}"></a><span id="{lineid}" class="difflineat">{strip(line|escape, '\r\n')}</span>'
126 diffline = '
136 diffline = '
127 <a href="#{lineid}"></a><span id="{lineid}">{strip(line|escape, '\r\n')}</span>'
137 <a href="#{lineid}"></a><span id="{lineid}">{strip(line|escape, '\r\n')}</span>'
128
138
129 comparisonblock ='
139 comparisonblock ='
130 <tbody class="block">
140 <tbody class="block">
131 {lines}
141 {lines}
132 </tbody>'
142 </tbody>'
133 comparisonline = '
143 comparisonline = '
134 <tr id="{lineid}" style="font-family:monospace">
144 <tr id="{lineid}" style="font-family:monospace">
135 <td class="{type}"><pre><a class="linenr" href="#{lineid}">{leftlinenumber}</a> {leftline|escape}</pre></td>
145 <td class="{type}"><pre><a class="linenr" href="#{lineid}">{leftlinenumber}</a> {leftline|escape}</pre></td>
136 <td class="{type}"><pre><a class="linenr" href="#{lineid}">{rightlinenumber}</a> {rightline|escape}</pre></td>
146 <td class="{type}"><pre><a class="linenr" href="#{lineid}">{rightlinenumber}</a> {rightline|escape}</pre></td>
137 </tr>'
147 </tr>'
138
148
139 changesetlink = '<a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
149 changesetlink = '<a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
140 changesetbranch = '<tr><td>branch</td><td>{name|escape}</td></tr>'
150 changesetbranch = '<tr><td>branch</td><td>{name|escape}</td></tr>'
141 changesetparent = '
151 changesetparent = '
142 <tr>
152 <tr>
143 <td>parent {rev}</td>
153 <td>parent {rev}</td>
144 <td style="font-family:monospace">
154 <td style="font-family:monospace">
145 {changesetlink}
155 {changesetlink}
146 </td>
156 </td>
147 </tr>'
157 </tr>'
148 changesetparentdiff = '
158 changesetparentdiff = '
149 <tr>
159 <tr>
150 <td>parent {rev}</td>
160 <td>parent {rev}</td>
151 <td style="font-family:monospace">
161 <td style="font-family:monospace">
152 {changesetlink} {ifeq(node, basenode, '(current diff)', '({difffrom})')}
162 {changesetlink} {ifeq(node, basenode, '(current diff)', '({difffrom})')}
153 </td>
163 </td>
154 </tr>'
164 </tr>'
155 difffrom = '<a href="{url|urlescape}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">diff</a>'
165 difffrom = '<a href="{url|urlescape}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">diff</a>'
156 filerevbranch = '<tr><td>branch</td><td>{name|escape}</td></tr>'
166 filerevbranch = '<tr><td>branch</td><td>{name|escape}</td></tr>'
157 filerevparent = '
167 filerevparent = '
158 <tr>
168 <tr>
159 <td>parent {rev}</td>
169 <td>parent {rev}</td>
160 <td style="font-family:monospace">
170 <td style="font-family:monospace">
161 <a class="list" href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
171 <a class="list" href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
162 {rename%filerename}{node|short}
172 {rename%filerename}{node|short}
163 </a>
173 </a>
164 </td>
174 </td>
165 </tr>'
175 </tr>'
166 filerename = '{file|escape}@'
176 filerename = '{file|escape}@'
167 filelogrename = '| <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>'
177 filelogrename = '| <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">base</a>'
168 fileannotateparent = '
178 fileannotateparent = '
169 <tr>
179 <tr>
170 <td>parent {rev}</td>
180 <td>parent {rev}</td>
171 <td style="font-family:monospace">
181 <td style="font-family:monospace">
172 <a class="list" href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
182 <a class="list" href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
173 {rename%filerename}{node|short}
183 {rename%filerename}{node|short}
174 </a>
184 </a>
175 </td>
185 </td>
176 </tr>'
186 </tr>'
177 changesetchild = '
187 changesetchild = '
178 <tr>
188 <tr>
179 <td>child {rev}</td>
189 <td>child {rev}</td>
180 <td style="font-family:monospace">
190 <td style="font-family:monospace">
181 <a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
191 <a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
182 </td>
192 </td>
183 </tr>'
193 </tr>'
184 filerevchild = '
194 filerevchild = '
185 <tr>
195 <tr>
186 <td>child {rev}</td>
196 <td>child {rev}</td>
187 <td style="font-family:monospace">
197 <td style="font-family:monospace">
188 <a class="list" href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
198 <a class="list" href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
189 </tr>'
199 </tr>'
190 fileannotatechild = '
200 fileannotatechild = '
191 <tr>
201 <tr>
192 <td>child {rev}</td>
202 <td>child {rev}</td>
193 <td style="font-family:monospace">
203 <td style="font-family:monospace">
194 <a class="list" href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
204 <a class="list" href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
195 </tr>'
205 </tr>'
196 tags = tags.tmpl
206 tags = tags.tmpl
197 tagentry = '
207 tagentry = '
198 <tr class="parity{parity}">
208 <tr class="parity{parity}">
199 <td class="age"><i class="age">{date|rfc822date}</i></td>
209 <td class="age"><i class="age">{date|rfc822date}</i></td>
200 <td><a class="list" href="{url|urlescape}rev/{tag|revescape}{sessionvars%urlparameter}"><b>{tag|escape}</b></a></td>
210 <td><a class="list" href="{url|urlescape}rev/{tag|revescape}{sessionvars%urlparameter}"><b>{tag|escape}</b></a></td>
201 <td class="link">
211 <td class="link">
202 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
212 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
203 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
213 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
204 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
214 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
205 </td>
215 </td>
206 </tr>'
216 </tr>'
207 bookmarks = bookmarks.tmpl
217 bookmarks = bookmarks.tmpl
208 bookmarkentry = '
218 bookmarkentry = '
209 <tr class="parity{parity}">
219 <tr class="parity{parity}">
210 <td class="age"><i class="age">{date|rfc822date}</i></td>
220 <td class="age"><i class="age">{date|rfc822date}</i></td>
211 <td><a class="list" href="{url|urlescape}rev/{bookmark|revescape}{sessionvars%urlparameter}"><b>{bookmark|escape}</b></a></td>
221 <td><a class="list" href="{url|urlescape}rev/{bookmark|revescape}{sessionvars%urlparameter}"><b>{bookmark|escape}</b></a></td>
212 <td class="link">
222 <td class="link">
213 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
223 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
214 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
224 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
215 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
225 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
216 </td>
226 </td>
217 </tr>'
227 </tr>'
218 branches = branches.tmpl
228 branches = branches.tmpl
219 branchentry = '
229 branchentry = '
220 <tr class="parity{parity}">
230 <tr class="parity{parity}">
221 <td class="age"><i class="age">{date|rfc822date}</i></td>
231 <td class="age"><i class="age">{date|rfc822date}</i></td>
222 <td class="{status}"><a class="list" href="{url|urlescape}shortlog/{branch|revescape}{sessionvars%urlparameter}"><b>{branch|escape}</b></a></td>
232 <td class="{status}"><a class="list" href="{url|urlescape}shortlog/{branch|revescape}{sessionvars%urlparameter}"><b>{branch|escape}</b></a></td>
223 <td class="link">
233 <td class="link">
224 <a href="{url|urlescape}changeset/{node|short}{sessionvars%urlparameter}">changeset</a> |
234 <a href="{url|urlescape}changeset/{node|short}{sessionvars%urlparameter}">changeset</a> |
225 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
235 <a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">changelog</a> |
226 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
236 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
227 </td>
237 </td>
228 </tr>'
238 </tr>'
229 diffblock = '<div class="diffblock"><pre class="sourcelines">{lines}</pre></div>'
239 diffblock = '<div class="diffblock"><pre class="sourcelines">{lines}</pre></div>'
230 filediffparent = '
240 filediffparent = '
231 <tr>
241 <tr>
232 <td>parent {rev}</td>
242 <td>parent {rev}</td>
233 <td style="font-family:monospace">
243 <td style="font-family:monospace">
234 <a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
244 <a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
235 {node|short}
245 {node|short}
236 </a>
246 </a>
237 </td>
247 </td>
238 </tr>'
248 </tr>'
239 filecompparent = '
249 filecompparent = '
240 <tr>
250 <tr>
241 <td>parent {rev}</td>
251 <td>parent {rev}</td>
242 <td style="font-family:monospace">
252 <td style="font-family:monospace">
243 <a class="list" href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
253 <a class="list" href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
244 {node|short}
254 {node|short}
245 </a>
255 </a>
246 </td>
256 </td>
247 </tr>'
257 </tr>'
248 filediffchild = '
258 filediffchild = '
249 <tr>
259 <tr>
250 <td>child {rev}</td>
260 <td>child {rev}</td>
251 <td style="font-family:monospace">
261 <td style="font-family:monospace">
252 <a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
262 <a class="list" href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
253 </td>
263 </td>
254 </tr>'
264 </tr>'
255 filecompchild = '
265 filecompchild = '
256 <tr>
266 <tr>
257 <td>child {rev}</td>
267 <td>child {rev}</td>
258 <td style="font-family:monospace">
268 <td style="font-family:monospace">
259 <a class="list" href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
269 <a class="list" href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a>
260 </td>
270 </td>
261 </tr>'
271 </tr>'
262 shortlog = shortlog.tmpl
272 shortlog = shortlog.tmpl
263 graph = graph.tmpl
273 graph = graph.tmpl
264 graphentry = graphentry.tmpl
274 graphentry = graphentry.tmpl
265 phasetag = '{ifeq(phase, 'public', '', '<span class="phasetag" title="{phase|escape}">{phase|escape}</span> ')}'
275 phasetag = '{ifeq(phase, 'public', '', '<span class="phasetag" title="{phase|escape}">{phase|escape}</span> ')}'
266 obsoletetag = '{if(obsolete, '<span class="obsoletetag" title="obsolete">obsolete</span> ')}'
276 obsoletetag = '{if(obsolete, '<span class="obsoletetag" title="obsolete">obsolete</span> ')}'
267 instabilitytag = '<span class="instabilitytag" title="{instability|escape}">{instability|escape}</span> '
277 instabilitytag = '<span class="instabilitytag" title="{instability|escape}">{instability|escape}</span> '
268 tagtag = '<span class="tagtag" title="{name|escape}">{name|escape}</span> '
278 tagtag = '<span class="tagtag" title="{name|escape}">{name|escape}</span> '
269 branchtag = '<span class="branchtag" title="{name|escape}">{name|escape}</span> '
279 branchtag = '<span class="branchtag" title="{name|escape}">{name|escape}</span> '
270 inbranchtag = '<span class="inbranchtag" title="{name|escape}">{name|escape}</span> '
280 inbranchtag = '<span class="inbranchtag" title="{name|escape}">{name|escape}</span> '
271 bookmarktag = '<span class="bookmarktag" title="{name|escape}">{name|escape}</span> '
281 bookmarktag = '<span class="bookmarktag" title="{name|escape}">{name|escape}</span> '
272 alltags = '<span class="logtags">{phasetag}{obsoletetag}{instabilities%instabilitytag}{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>'
282 alltags = '<span class="logtags">{phasetag}{obsoletetag}{instabilities%instabilitytag}{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span>'
273 successorlink = '<a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> '
283 successorlink = '<a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> '
274 obsfatesuccessors = '{if(successors, ' as ')}{successors%successorlink}'
284 obsfatesuccessors = '{if(successors, ' as ')}{successors%successorlink}'
275 obsfateverb = '{obsfateverb(successors, markers)}'
285 obsfateverb = '{obsfateverb(successors, markers)}'
276 obsfateoperations = '{if(obsfateoperations(markers), ' using {join(obsfateoperations(markers), ', ')}')}'
286 obsfateoperations = '{if(obsfateoperations(markers), ' using {join(obsfateoperations(markers), ', ')}')}'
277 obsfateusers = '{if(obsfateusers(markers), ' by {join(obsfateusers(markers)%'{user|obfuscate}', ', ')}')}'
287 obsfateusers = '{if(obsfateusers(markers), ' by {join(obsfateusers(markers)%'{user|obfuscate}', ', ')}')}'
278 obsfatedate = '{if(obsfatedate(markers), ' {ifeq(min(obsfatedate(markers)), max(obsfatedate(markers)), '<span class="age">{min(obsfatedate(markers))|rfc822date}</span>', 'between <span class="age">{min(obsfatedate(markers))|rfc822date}</span> and <span class="age">{max(obsfatedate(markers))|rfc822date}</span>')}')}'
288 obsfatedate = '{if(obsfatedate(markers), ' {ifeq(min(obsfatedate(markers)), max(obsfatedate(markers)), '<span class="age">{min(obsfatedate(markers))|rfc822date}</span>', 'between <span class="age">{min(obsfatedate(markers))|rfc822date}</span> and <span class="age">{max(obsfatedate(markers))|rfc822date}</span>')}')}'
279 obsfateentry = '
289 obsfateentry = '
280 <tr>
290 <tr>
281 <td>obsolete</td>
291 <td>obsolete</td>
282 <td>{obsfateverb}{obsfateoperations}{obsfatesuccessors}{obsfateusers}{obsfatedate}</td>
292 <td>{obsfateverb}{obsfateoperations}{obsfatesuccessors}{obsfateusers}{obsfatedate}</td>
283 </tr>'
293 </tr>'
284 instabilitychangesetlink = '<a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
294 instabilitychangesetlink = '<a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
285 divergentnode = '{instabilitychangesetlink} ({phase})'
295 divergentnode = '{instabilitychangesetlink} ({phase})'
286 whyunstableentry = '
296 whyunstableentry = '
287 <tr>
297 <tr>
288 <td>unstable</td>
298 <td>unstable</td>
289 <td>{instability}: {if(divergentnodes, divergentnodes%divergentnode)} {reason} {instabilitychangesetlink}</td>
299 <td>{instability}: {if(divergentnodes, divergentnodes%divergentnode)} {reason} {instabilitychangesetlink}</td>
290 </tr>'
300 </tr>'
291 shortlogentry = '
301 shortlogentry = '
292 <tr class="parity{parity}">
302 <tr class="parity{parity}">
293 <td class="age"><i class="age">{date|rfc822date}</i></td>
303 <td class="age"><i class="age">{date|rfc822date}</i></td>
294 <td><i>{author|person}</i></td>
304 <td><i>{author|person}</i></td>
295 <td>
305 <td>
296 <a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
306 <a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
297 <b>{desc|strip|firstline|escape|nonempty}</b>
307 <b>{desc|strip|firstline|escape|nonempty}</b>
298 {alltags}
308 {alltags}
299 </a>
309 </a>
300 </td>
310 </td>
301 <td class="link" nowrap>
311 <td class="link" nowrap>
302 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
312 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
303 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
313 <a href="{url|urlescape}file/{node|short}{sessionvars%urlparameter}">files</a>
304 </td>
314 </td>
305 </tr>'
315 </tr>'
306 filelogentry = '
316 filelogentry = '
307 <tr class="parity{if(patch, '1', '{parity}')}">
317 <tr class="parity{if(patch, '1', '{parity}')}">
308 <td class="age"><i class="age">{date|rfc822date}</i></td>
318 <td class="age"><i class="age">{date|rfc822date}</i></td>
309 <td><i>{author|person}</i></td>
319 <td><i>{author|person}</i></td>
310 <td>
320 <td>
311 <a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
321 <a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
312 <b>{desc|strip|firstline|escape|nonempty}</b>
322 <b>{desc|strip|firstline|escape|nonempty}</b>
313 {alltags}
323 {alltags}
314 </a>
324 </a>
315 </td>
325 </td>
316 <td class="link">
326 <td class="link">
317 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
327 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
318 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
328 <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
319 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
329 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
320 {rename%filelogrename}
330 {rename%filelogrename}
321 </td>
331 </td>
322 </tr>
332 </tr>
323 {if(patch, '<tr><td colspan="4">{diff}</td></tr>')}'
333 {if(patch, '<tr><td colspan="4">{diff}</td></tr>')}'
324 archiveentry = ' | <a href="{url|urlescape}archive/{symrev}{extension}{ifeq(path,'/','',path|urlescape)}">{type|escape}</a> '
334 archiveentry = ' | <a href="{url|urlescape}archive/{symrev}{extension}{ifeq(path,'/','',path|urlescape)}">{type|escape}</a> '
325 indexentry = '
335 indexentry = '
326 <tr class="parity{parity}">
336 <tr class="parity{parity}">
327 <td>
337 <td>
328 <a class="list" href="{url|urlescape}{sessionvars%urlparameter}">
338 <a class="list" href="{url|urlescape}{sessionvars%urlparameter}">
329 <b>{name|escape}</b>
339 <b>{name|escape}</b>
330 </a>
340 </a>
331 </td>
341 </td>
332 <td>{description}</td>
342 <td>{description}</td>
333 <td>{contact|obfuscate}</td>
343 <td>{contact|obfuscate}</td>
334 <td class="age">{lastchange|rfc822date}</td>
344 <td class="age">{lastchange|rfc822date}</td>
335 <td class="indexlinks">{archives%indexarchiveentry}</td>
345 <td class="indexlinks">{archives%indexarchiveentry}</td>
336 <td>{if(isdirectory, '',
346 <td>{if(isdirectory, '',
337 '<div class="rss_logo">
347 '<div class="rss_logo">
338 <a href="{url|urlescape}rss-log">RSS</a> <a href="{url|urlescape}atom-log">Atom</a>
348 <a href="{url|urlescape}rss-log">RSS</a> <a href="{url|urlescape}atom-log">Atom</a>
339 </div>'
349 </div>'
340 )}
350 )}
341 </td>
351 </td>
342 </tr>\n'
352 </tr>\n'
343 indexarchiveentry = ' <a href="{url|urlescape}archive/{node|short}{extension}">{type|escape}</a> '
353 indexarchiveentry = ' <a href="{url|urlescape}archive/{node|short}{extension}">{type|escape}</a> '
344 index = index.tmpl
354 index = index.tmpl
345 urlparameter = '{separator}{name}={value|urlescape}'
355 urlparameter = '{separator}{name}={value|urlescape}'
346 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
356 hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
347 breadcrumb = '&gt; <a href="{url|urlescape}">{name|escape}</a> '
357 breadcrumb = '&gt; <a href="{url|urlescape}">{name|escape}</a> '
348
358
349 searchform = '
359 searchform = '
350 <div class="search">
360 <div class="search">
351 <form id="searchform" action="{url|urlescape}log">
361 <form id="searchform" action="{url|urlescape}log">
352 {sessionvars%hiddenformentry}
362 {sessionvars%hiddenformentry}
353 <input name="rev" type="text" value="{query|escape}" size="40" />
363 <input name="rev" type="text" value="{query|escape}" size="40" />
354 <div id="hint">{searchhint}</div>
364 <div id="hint">{searchhint}</div>
355 </form>
365 </form>
356 </div>'
366 </div>'
357 searchhint = 'Find changesets by keywords (author, files, the commit message), revision
367 searchhint = 'Find changesets by keywords (author, files, the commit message), revision
358 number or hash, or <a href="{url|urlescape}help/revsets">revset expression</a>.'
368 number or hash, or <a href="{url|urlescape}help/revsets">revset expression</a>.'
359
369
360 diffoptsform = '
370 diffoptsform = '
361 <form id="diffopts-form"
371 <form id="diffopts-form"
362 data-ignorews="{if(get(diffopts, 'ignorews'), '1', '0')}"
372 data-ignorews="{if(get(diffopts, 'ignorews'), '1', '0')}"
363 data-ignorewsamount="{if(get(diffopts, 'ignorewsamount'), '1', '0')}"
373 data-ignorewsamount="{if(get(diffopts, 'ignorewsamount'), '1', '0')}"
364 data-ignorewseol="{if(get(diffopts, 'ignorewseol'), '1', '0')}"
374 data-ignorewseol="{if(get(diffopts, 'ignorewseol'), '1', '0')}"
365 data-ignoreblanklines="{if(get(diffopts, 'ignoreblanklines'), '1', '0')}">
375 data-ignoreblanklines="{if(get(diffopts, 'ignoreblanklines'), '1', '0')}">
366 <span>Ignore whitespace changes - </span>
376 <span>Ignore whitespace changes - </span>
367 <span>Everywhere:</span>
377 <span>Everywhere:</span>
368 <input id="ignorews-checkbox" type="checkbox" />
378 <input id="ignorews-checkbox" type="checkbox" />
369 <span>Within whitespace:</span>
379 <span>Within whitespace:</span>
370 <input id="ignorewsamount-checkbox" type="checkbox" />
380 <input id="ignorewsamount-checkbox" type="checkbox" />
371 <span>At end of lines:</span>
381 <span>At end of lines:</span>
372 <input id="ignorewseol-checkbox" type="checkbox" />
382 <input id="ignorewseol-checkbox" type="checkbox" />
373 </form>'
383 </form>'
@@ -1,573 +1,567 b''
1 #require serve
1 #require serve
2
2
3 Test chains of near empty directories, terminating 3 different ways:
3 Test chains of near empty directories, terminating 3 different ways:
4 - a1: file at level 4 (deepest)
4 - a1: file at level 4 (deepest)
5 - b1: two dirs at level 3
5 - b1: two dirs at level 3
6 - d1: file at level 2
6 - d1: file at level 2
7
7
8 Set up the repo
8 Set up the repo
9
9
10 $ hg init test
10 $ hg init test
11 $ cd test
11 $ cd test
12 $ mkdir -p a1/a2/a3/a4
12 $ mkdir -p a1/a2/a3/a4
13 $ mkdir -p b1/b2/b3/b4
13 $ mkdir -p b1/b2/b3/b4
14 $ mkdir -p b1/b2/b3/c4
14 $ mkdir -p b1/b2/b3/c4
15 $ mkdir -p d1/d2/d3/d4
15 $ mkdir -p d1/d2/d3/d4
16 $ echo foo > a1/a2/a3/a4/foo
16 $ echo foo > a1/a2/a3/a4/foo
17 $ echo foo > b1/b2/b3/b4/foo
17 $ echo foo > b1/b2/b3/b4/foo
18 $ echo foo > b1/b2/b3/c4/foo
18 $ echo foo > b1/b2/b3/c4/foo
19 $ echo foo > d1/d2/d3/d4/foo
19 $ echo foo > d1/d2/d3/d4/foo
20 $ echo foo > d1/d2/foo
20 $ echo foo > d1/d2/foo
21 $ hg ci -Ama
21 $ hg ci -Ama
22 adding a1/a2/a3/a4/foo
22 adding a1/a2/a3/a4/foo
23 adding b1/b2/b3/b4/foo
23 adding b1/b2/b3/b4/foo
24 adding b1/b2/b3/c4/foo
24 adding b1/b2/b3/c4/foo
25 adding d1/d2/d3/d4/foo
25 adding d1/d2/d3/d4/foo
26 adding d1/d2/foo
26 adding d1/d2/foo
27 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -E errors.log
27 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -E errors.log
28 $ cat hg.pid >> $DAEMON_PIDS
28 $ cat hg.pid >> $DAEMON_PIDS
29
29
30 manifest with descending (paper)
30 manifest with descending (paper)
31
31
32 $ get-with-headers.py $LOCALIP:$HGPORT 'file'
32 $ get-with-headers.py $LOCALIP:$HGPORT 'file'
33 200 Script output follows
33 200 Script output follows
34
34
35 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
35 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
36 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
36 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
37 <head>
37 <head>
38 <link rel="icon" href="/static/hgicon.png" type="image/png" />
38 <link rel="icon" href="/static/hgicon.png" type="image/png" />
39 <meta name="robots" content="index, nofollow" />
39 <meta name="robots" content="index, nofollow" />
40 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
40 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
41 <script type="text/javascript" src="/static/mercurial.js"></script>
41 <script type="text/javascript" src="/static/mercurial.js"></script>
42
42
43 <title>test: c9f45f7a1659 /</title>
43 <title>test: c9f45f7a1659 /</title>
44 </head>
44 </head>
45 <body>
45 <body>
46
46
47 <div class="container">
47 <div class="container">
48 <div class="menu">
48 <div class="menu">
49 <div class="logo">
49 <div class="logo">
50 <a href="https://mercurial-scm.org/">
50 <a href="https://mercurial-scm.org/">
51 <img src="/static/hglogo.png" alt="mercurial" /></a>
51 <img src="/static/hglogo.png" alt="mercurial" /></a>
52 </div>
52 </div>
53 <ul>
53 <ul>
54 <li><a href="/shortlog/tip">log</a></li>
54 <li><a href="/shortlog/tip">log</a></li>
55 <li><a href="/graph/tip">graph</a></li>
55 <li><a href="/graph/tip">graph</a></li>
56 <li><a href="/tags">tags</a></li>
56 <li><a href="/tags">tags</a></li>
57 <li><a href="/bookmarks">bookmarks</a></li>
57 <li><a href="/bookmarks">bookmarks</a></li>
58 <li><a href="/branches">branches</a></li>
58 <li><a href="/branches">branches</a></li>
59 </ul>
59 </ul>
60 <ul>
60 <ul>
61 <li><a href="/rev/tip">changeset</a></li>
61 <li><a href="/rev/tip">changeset</a></li>
62 <li class="active">browse</li>
62 <li class="active">browse</li>
63 </ul>
63 </ul>
64 <ul>
64 <ul>
65
65
66 </ul>
66 </ul>
67 <ul>
67 <ul>
68 <li><a href="/help">help</a></li>
68 <li><a href="/help">help</a></li>
69 </ul>
69 </ul>
70 </div>
70 </div>
71
71
72 <div class="main">
72 <div class="main">
73 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
73 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
74 <h3>
74 <h3>
75 directory / @ 0:<a href="/rev/c9f45f7a1659">c9f45f7a1659</a>
75 directory / @ 0:<a href="/rev/c9f45f7a1659">c9f45f7a1659</a>
76 <span class="phase">draft</span> <span class="branchhead">default</span> <span class="tag">tip</span>
76 <span class="phase">draft</span> <span class="branchhead">default</span> <span class="tag">tip</span>
77 </h3>
77 </h3>
78
78
79
79
80 <form class="search" action="/log">
80 <form class="search" action="/log">
81
81
82 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
82 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
83 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
83 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
84 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
84 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
85 </form>
85 </form>
86
86
87 <table class="bigtable">
87 <table class="bigtable">
88 <thead>
88 <thead>
89 <tr>
89 <tr>
90 <th class="name">name</th>
90 <th class="name">name</th>
91 <th class="size">size</th>
91 <th class="size">size</th>
92 <th class="permissions">permissions</th>
92 <th class="permissions">permissions</th>
93 </tr>
93 </tr>
94 </thead>
94 </thead>
95 <tbody class="stripes2">
95 <tbody class="stripes2">
96
96
97
97
98 <tr class="fileline">
98 <tr class="fileline">
99 <td class="name">
99 <td class="name">
100 <a href="/file/tip/a1">
100 <a href="/file/tip/a1">
101 <img src="/static/coal-folder.png" alt="dir."/> a1/
101 <img src="/static/coal-folder.png" alt="dir."/> a1/
102 </a>
102 </a>
103 <a href="/file/tip/a1/a2/a3/a4">
103 <a href="/file/tip/a1/a2/a3/a4">
104 a2/a3/a4
104 a2/a3/a4
105 </a>
105 </a>
106 </td>
106 </td>
107 <td class="size"></td>
107 <td class="size"></td>
108 <td class="permissions">drwxr-xr-x</td>
108 <td class="permissions">drwxr-xr-x</td>
109 </tr>
109 </tr>
110 <tr class="fileline">
110 <tr class="fileline">
111 <td class="name">
111 <td class="name">
112 <a href="/file/tip/b1">
112 <a href="/file/tip/b1">
113 <img src="/static/coal-folder.png" alt="dir."/> b1/
113 <img src="/static/coal-folder.png" alt="dir."/> b1/
114 </a>
114 </a>
115 <a href="/file/tip/b1/b2/b3">
115 <a href="/file/tip/b1/b2/b3">
116 b2/b3
116 b2/b3
117 </a>
117 </a>
118 </td>
118 </td>
119 <td class="size"></td>
119 <td class="size"></td>
120 <td class="permissions">drwxr-xr-x</td>
120 <td class="permissions">drwxr-xr-x</td>
121 </tr>
121 </tr>
122 <tr class="fileline">
122 <tr class="fileline">
123 <td class="name">
123 <td class="name">
124 <a href="/file/tip/d1">
124 <a href="/file/tip/d1">
125 <img src="/static/coal-folder.png" alt="dir."/> d1/
125 <img src="/static/coal-folder.png" alt="dir."/> d1/
126 </a>
126 </a>
127 <a href="/file/tip/d1/d2">
127 <a href="/file/tip/d1/d2">
128 d2
128 d2
129 </a>
129 </a>
130 </td>
130 </td>
131 <td class="size"></td>
131 <td class="size"></td>
132 <td class="permissions">drwxr-xr-x</td>
132 <td class="permissions">drwxr-xr-x</td>
133 </tr>
133 </tr>
134
134
135 </tbody>
135 </tbody>
136 </table>
136 </table>
137 </div>
137 </div>
138 </div>
138 </div>
139
139
140
140
141 </body>
141 </body>
142 </html>
142 </html>
143
143
144
144
145 manifest with descending (coal)
145 manifest with descending (coal)
146
146
147 $ get-with-headers.py $LOCALIP:$HGPORT 'file?style=coal'
147 $ get-with-headers.py $LOCALIP:$HGPORT 'file?style=coal'
148 200 Script output follows
148 200 Script output follows
149
149
150 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
150 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
151 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
151 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
152 <head>
152 <head>
153 <link rel="icon" href="/static/hgicon.png" type="image/png" />
153 <link rel="icon" href="/static/hgicon.png" type="image/png" />
154 <meta name="robots" content="index, nofollow" />
154 <meta name="robots" content="index, nofollow" />
155 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
155 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
156 <link rel="stylesheet" href="/static/style-extra-coal.css" type="text/css" />
156 <link rel="stylesheet" href="/static/style-extra-coal.css" type="text/css" />
157 <script type="text/javascript" src="/static/mercurial.js"></script>
157 <script type="text/javascript" src="/static/mercurial.js"></script>
158
158
159 <title>test: c9f45f7a1659 /</title>
159 <title>test: c9f45f7a1659 /</title>
160 </head>
160 </head>
161 <body>
161 <body>
162
162
163 <div class="container">
163 <div class="container">
164 <div class="menu">
164 <div class="menu">
165 <div class="logo">
165 <div class="logo">
166 <a href="https://mercurial-scm.org/">
166 <a href="https://mercurial-scm.org/">
167 <img src="/static/hglogo.png" alt="mercurial" /></a>
167 <img src="/static/hglogo.png" alt="mercurial" /></a>
168 </div>
168 </div>
169 <ul>
169 <ul>
170 <li><a href="/shortlog/tip?style=coal">log</a></li>
170 <li><a href="/shortlog/tip?style=coal">log</a></li>
171 <li><a href="/graph/tip?style=coal">graph</a></li>
171 <li><a href="/graph/tip?style=coal">graph</a></li>
172 <li><a href="/tags?style=coal">tags</a></li>
172 <li><a href="/tags?style=coal">tags</a></li>
173 <li><a href="/bookmarks?style=coal">bookmarks</a></li>
173 <li><a href="/bookmarks?style=coal">bookmarks</a></li>
174 <li><a href="/branches?style=coal">branches</a></li>
174 <li><a href="/branches?style=coal">branches</a></li>
175 </ul>
175 </ul>
176 <ul>
176 <ul>
177 <li><a href="/rev/tip?style=coal">changeset</a></li>
177 <li><a href="/rev/tip?style=coal">changeset</a></li>
178 <li class="active">browse</li>
178 <li class="active">browse</li>
179 </ul>
179 </ul>
180 <ul>
180 <ul>
181
181
182 </ul>
182 </ul>
183 <ul>
183 <ul>
184 <li><a href="/help?style=coal">help</a></li>
184 <li><a href="/help?style=coal">help</a></li>
185 </ul>
185 </ul>
186 </div>
186 </div>
187
187
188 <div class="main">
188 <div class="main">
189 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
189 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
190 <h3>
190 <h3>
191 directory / @ 0:<a href="/rev/c9f45f7a1659?style=coal">c9f45f7a1659</a>
191 directory / @ 0:<a href="/rev/c9f45f7a1659?style=coal">c9f45f7a1659</a>
192 <span class="phase">draft</span> <span class="branchhead">default</span> <span class="tag">tip</span>
192 <span class="phase">draft</span> <span class="branchhead">default</span> <span class="tag">tip</span>
193 </h3>
193 </h3>
194
194
195
195
196 <form class="search" action="/log">
196 <form class="search" action="/log">
197 <input type="hidden" name="style" value="coal" />
197 <input type="hidden" name="style" value="coal" />
198 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
198 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
199 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
199 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
200 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
200 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
201 </form>
201 </form>
202
202
203 <table class="bigtable">
203 <table class="bigtable">
204 <thead>
204 <thead>
205 <tr>
205 <tr>
206 <th class="name">name</th>
206 <th class="name">name</th>
207 <th class="size">size</th>
207 <th class="size">size</th>
208 <th class="permissions">permissions</th>
208 <th class="permissions">permissions</th>
209 </tr>
209 </tr>
210 </thead>
210 </thead>
211 <tbody class="stripes2">
211 <tbody class="stripes2">
212
212
213
213
214 <tr class="fileline">
214 <tr class="fileline">
215 <td class="name">
215 <td class="name">
216 <a href="/file/tip/a1?style=coal">
216 <a href="/file/tip/a1?style=coal">
217 <img src="/static/coal-folder.png" alt="dir."/> a1/
217 <img src="/static/coal-folder.png" alt="dir."/> a1/
218 </a>
218 </a>
219 <a href="/file/tip/a1/a2/a3/a4?style=coal">
219 <a href="/file/tip/a1/a2/a3/a4?style=coal">
220 a2/a3/a4
220 a2/a3/a4
221 </a>
221 </a>
222 </td>
222 </td>
223 <td class="size"></td>
223 <td class="size"></td>
224 <td class="permissions">drwxr-xr-x</td>
224 <td class="permissions">drwxr-xr-x</td>
225 </tr>
225 </tr>
226 <tr class="fileline">
226 <tr class="fileline">
227 <td class="name">
227 <td class="name">
228 <a href="/file/tip/b1?style=coal">
228 <a href="/file/tip/b1?style=coal">
229 <img src="/static/coal-folder.png" alt="dir."/> b1/
229 <img src="/static/coal-folder.png" alt="dir."/> b1/
230 </a>
230 </a>
231 <a href="/file/tip/b1/b2/b3?style=coal">
231 <a href="/file/tip/b1/b2/b3?style=coal">
232 b2/b3
232 b2/b3
233 </a>
233 </a>
234 </td>
234 </td>
235 <td class="size"></td>
235 <td class="size"></td>
236 <td class="permissions">drwxr-xr-x</td>
236 <td class="permissions">drwxr-xr-x</td>
237 </tr>
237 </tr>
238 <tr class="fileline">
238 <tr class="fileline">
239 <td class="name">
239 <td class="name">
240 <a href="/file/tip/d1?style=coal">
240 <a href="/file/tip/d1?style=coal">
241 <img src="/static/coal-folder.png" alt="dir."/> d1/
241 <img src="/static/coal-folder.png" alt="dir."/> d1/
242 </a>
242 </a>
243 <a href="/file/tip/d1/d2?style=coal">
243 <a href="/file/tip/d1/d2?style=coal">
244 d2
244 d2
245 </a>
245 </a>
246 </td>
246 </td>
247 <td class="size"></td>
247 <td class="size"></td>
248 <td class="permissions">drwxr-xr-x</td>
248 <td class="permissions">drwxr-xr-x</td>
249 </tr>
249 </tr>
250
250
251 </tbody>
251 </tbody>
252 </table>
252 </table>
253 </div>
253 </div>
254 </div>
254 </div>
255
255
256
256
257 </body>
257 </body>
258 </html>
258 </html>
259
259
260
260
261 manifest with descending (monoblue)
261 manifest with descending (monoblue)
262
262
263 $ get-with-headers.py $LOCALIP:$HGPORT 'file?style=monoblue'
263 $ get-with-headers.py $LOCALIP:$HGPORT 'file?style=monoblue'
264 200 Script output follows
264 200 Script output follows
265
265
266 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
266 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
267 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
267 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
268 <head>
268 <head>
269 <link rel="icon" href="/static/hgicon.png" type="image/png" />
269 <link rel="icon" href="/static/hgicon.png" type="image/png" />
270 <meta name="robots" content="index, nofollow"/>
270 <meta name="robots" content="index, nofollow"/>
271 <link rel="stylesheet" href="/static/style-monoblue.css" type="text/css" />
271 <link rel="stylesheet" href="/static/style-monoblue.css" type="text/css" />
272 <script type="text/javascript" src="/static/mercurial.js"></script>
272 <script type="text/javascript" src="/static/mercurial.js"></script>
273
273
274 <title>test: files</title>
274 <title>test: files</title>
275 <link rel="alternate" type="application/atom+xml" href="/atom-log" title="Atom feed for test"/>
275 <link rel="alternate" type="application/atom+xml" href="/atom-log" title="Atom feed for test"/>
276 <link rel="alternate" type="application/rss+xml" href="/rss-log" title="RSS feed for test"/>
276 <link rel="alternate" type="application/rss+xml" href="/rss-log" title="RSS feed for test"/>
277 </head>
277 </head>
278
278
279 <body>
279 <body>
280 <div id="container">
280 <div id="container">
281 <div class="page-header">
281 <div class="page-header">
282 <h1 class="breadcrumb"><a href="/">Mercurial</a> / files</h1>
282 <h1 class="breadcrumb"><a href="/">Mercurial</a> / files</h1>
283
283
284
284
285 <form action="/log">
285 <form action="/log">
286 <input type="hidden" name="style" value="monoblue" />
286 <input type="hidden" name="style" value="monoblue" />
287 <dl class="search">
287 <dl class="search">
288 <dt><label>Search: </label></dt>
288 <dt><label>Search: </label></dt>
289 <dd><input type="text" name="rev" value="" /></dd>
289 <dd><input type="text" name="rev" value="" /></dd>
290 </dl>
290 </dl>
291 </form>
291 </form>
292
292
293 <ul class="page-nav">
293 <ul class="page-nav">
294 <li><a href="/summary?style=monoblue">summary</a></li>
294 <li><a href="/summary?style=monoblue">summary</a></li>
295 <li><a href="/shortlog?style=monoblue">shortlog</a></li>
295 <li><a href="/shortlog?style=monoblue">shortlog</a></li>
296 <li><a href="/changelog?style=monoblue">changelog</a></li>
296 <li><a href="/changelog?style=monoblue">changelog</a></li>
297 <li><a href="/graph/tip?style=monoblue">graph</a></li>
297 <li><a href="/graph/tip?style=monoblue">graph</a></li>
298 <li><a href="/tags?style=monoblue">tags</a></li>
298 <li><a href="/tags?style=monoblue">tags</a></li>
299 <li><a href="/bookmarks?style=monoblue">bookmarks</a></li>
299 <li><a href="/bookmarks?style=monoblue">bookmarks</a></li>
300 <li><a href="/branches?style=monoblue">branches</a></li>
300 <li><a href="/branches?style=monoblue">branches</a></li>
301 <li class="current">files</li>
301 <li class="current">files</li>
302 <li><a href="/help?style=monoblue">help</a></li>
302 <li><a href="/help?style=monoblue">help</a></li>
303 </ul>
303 </ul>
304 </div>
304 </div>
305
305
306 <ul class="submenu">
306 <ul class="submenu">
307 <li><a href="/rev/tip?style=monoblue">changeset</a></li>
307 <li><a href="/rev/tip?style=monoblue">changeset</a></li>
308
308
309 </ul>
309 </ul>
310
310
311 <h2 class="no-link no-border">files</h2>
311 <h2 class="no-link no-border">files</h2>
312 <p class="files">/ <span class="logtags"><span class="phasetag" title="draft">draft</span> <span class="branchtag" title="default">default</span> <span class="tagtag" title="tip">tip</span> </span></p>
312 <p class="files">/ <span class="logtags"><span class="phasetag" title="draft">draft</span> <span class="branchtag" title="default">default</span> <span class="tagtag" title="tip">tip</span> </span></p>
313
313
314 <table>
314 <table>
315 <tr class="parity0">
315 <tr class="parity0">
316 <td>drwxr-xr-x</td>
316 <td>drwxr-xr-x</td>
317 <td></td>
317 <td></td>
318 <td></td>
318 <td></td>
319 <td><a href="/file/tip/?style=monoblue">[up]</a></td>
319 <td><a href="/file/tip/?style=monoblue">[up]</a></td>
320 <td class="link">&nbsp;</td>
320 <td class="link">&nbsp;</td>
321 </tr>
321 </tr>
322
322
323 <tr class="parity1">
323 <tr class="parity1">
324 <td>drwxr-xr-x</td>
324 <td>drwxr-xr-x</td>
325 <td></td>
325 <td></td>
326 <td></td>
326 <td></td>
327 <td>
327 <td>
328 <a href="/file/tip/a1?style=monoblue">a1</a>
328 <a href="/file/tip/a1?style=monoblue">a1</a>
329 <a href="/file/tip/a1/a2/a3/a4?style=monoblue">a2/a3/a4</a>
329 <a href="/file/tip/a1/a2/a3/a4?style=monoblue">a2/a3/a4</a>
330 </td>
330 </td>
331 <td><a href="/file/tip/a1?style=monoblue">files</a></td>
331 <td><a href="/file/tip/a1?style=monoblue">files</a></td>
332 </tr>
332 </tr>
333 <tr class="parity0">
333 <tr class="parity0">
334 <td>drwxr-xr-x</td>
334 <td>drwxr-xr-x</td>
335 <td></td>
335 <td></td>
336 <td></td>
336 <td></td>
337 <td>
337 <td>
338 <a href="/file/tip/b1?style=monoblue">b1</a>
338 <a href="/file/tip/b1?style=monoblue">b1</a>
339 <a href="/file/tip/b1/b2/b3?style=monoblue">b2/b3</a>
339 <a href="/file/tip/b1/b2/b3?style=monoblue">b2/b3</a>
340 </td>
340 </td>
341 <td><a href="/file/tip/b1?style=monoblue">files</a></td>
341 <td><a href="/file/tip/b1?style=monoblue">files</a></td>
342 </tr>
342 </tr>
343 <tr class="parity1">
343 <tr class="parity1">
344 <td>drwxr-xr-x</td>
344 <td>drwxr-xr-x</td>
345 <td></td>
345 <td></td>
346 <td></td>
346 <td></td>
347 <td>
347 <td>
348 <a href="/file/tip/d1?style=monoblue">d1</a>
348 <a href="/file/tip/d1?style=monoblue">d1</a>
349 <a href="/file/tip/d1/d2?style=monoblue">d2</a>
349 <a href="/file/tip/d1/d2?style=monoblue">d2</a>
350 </td>
350 </td>
351 <td><a href="/file/tip/d1?style=monoblue">files</a></td>
351 <td><a href="/file/tip/d1?style=monoblue">files</a></td>
352 </tr>
352 </tr>
353
353
354 </table>
354 </table>
355
355
356 <div class="page-footer">
356 <div class="page-footer">
357 <p>Mercurial Repository: test</p>
357 <p>Mercurial Repository: test</p>
358 <ul class="rss-logo">
358 <ul class="rss-logo">
359 <li><a href="/rss-log">RSS</a></li>
359 <li><a href="/rss-log">RSS</a></li>
360 <li><a href="/atom-log">Atom</a></li>
360 <li><a href="/atom-log">Atom</a></li>
361 </ul>
361 </ul>
362
362
363 </div>
363 </div>
364
364
365 <div id="powered-by">
365 <div id="powered-by">
366 <p><a href="https://mercurial-scm.org/" title="Mercurial"><img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a></p>
366 <p><a href="https://mercurial-scm.org/" title="Mercurial"><img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a></p>
367 </div>
367 </div>
368
368
369 </div>
369 </div>
370
370
371 </body>
371 </body>
372 </html>
372 </html>
373
373
374
374
375 manifest with descending (gitweb)
375 manifest with descending (gitweb)
376
376
377 $ get-with-headers.py $LOCALIP:$HGPORT 'file?style=gitweb'
377 $ get-with-headers.py $LOCALIP:$HGPORT 'file?style=gitweb'
378 200 Script output follows
378 200 Script output follows
379
379
380 <?xml version="1.0" encoding="ascii"?>
380 <?xml version="1.0" encoding="ascii"?>
381 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
381 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
382 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
382 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
383 <head>
383 <head>
384 <link rel="icon" href="/static/hgicon.png" type="image/png" />
384 <link rel="icon" href="/static/hgicon.png" type="image/png" />
385 <meta name="robots" content="index, nofollow"/>
385 <meta name="robots" content="index, nofollow"/>
386 <link rel="stylesheet" href="/static/style-gitweb.css" type="text/css" />
386 <link rel="stylesheet" href="/static/style-gitweb.css" type="text/css" />
387 <script type="text/javascript" src="/static/mercurial.js"></script>
387 <script type="text/javascript" src="/static/mercurial.js"></script>
388
388
389 <title>test: files</title>
389 <title>test: files</title>
390 <link rel="alternate" type="application/atom+xml"
390 <link rel="alternate" type="application/atom+xml"
391 href="/atom-log" title="Atom feed for test"/>
391 href="/atom-log" title="Atom feed for test"/>
392 <link rel="alternate" type="application/rss+xml"
392 <link rel="alternate" type="application/rss+xml"
393 href="/rss-log" title="RSS feed for test"/>
393 href="/rss-log" title="RSS feed for test"/>
394 </head>
394 </head>
395 <body>
395 <body>
396
396
397 <div class="page_header">
397 <div class="page_header">
398 <a href="https://mercurial-scm.org/" title="Mercurial" style="float: right;">Mercurial</a>
398 <a href="https://mercurial-scm.org/" title="Mercurial" style="float: right;">Mercurial</a>
399 <a href="/">Mercurial</a> / files
399 <a href="/">Mercurial</a> / files
400 </div>
400 </div>
401
401
402 <div class="page_nav">
402 <div class="page_nav">
403 <div>
403 <div>
404 <a href="/summary?style=gitweb">summary</a> |
404 <a href="/summary?style=gitweb">summary</a> |
405 <a href="/shortlog?style=gitweb">shortlog</a> |
405 <a href="/shortlog?style=gitweb">shortlog</a> |
406 <a href="/log?style=gitweb">changelog</a> |
406 <a href="/log?style=gitweb">changelog</a> |
407 <a href="/graph?style=gitweb">graph</a> |
407 <a href="/graph?style=gitweb">graph</a> |
408 <a href="/tags?style=gitweb">tags</a> |
408 <a href="/tags?style=gitweb">tags</a> |
409 <a href="/bookmarks?style=gitweb">bookmarks</a> |
409 <a href="/bookmarks?style=gitweb">bookmarks</a> |
410 <a href="/branches?style=gitweb">branches</a> |
410 <a href="/branches?style=gitweb">branches</a> |
411 files |
411 files |
412 <a href="/rev/tip?style=gitweb">changeset</a> |
412 <a href="/rev/tip?style=gitweb">changeset</a> |
413 <a href="/help?style=gitweb">help</a>
413 <a href="/help?style=gitweb">help</a>
414 </div>
414 </div>
415
415
416 <div class="search">
416 <div class="search">
417 <form id="searchform" action="/log">
417 <form id="searchform" action="/log">
418 <input type="hidden" name="style" value="gitweb" />
418 <input type="hidden" name="style" value="gitweb" />
419 <input name="rev" type="text" value="" size="40" />
419 <input name="rev" type="text" value="" size="40" />
420 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
420 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
421 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
421 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
422 </form>
422 </form>
423 </div>
423 </div>
424 </div>
424 </div>
425
425
426 <div class="title">/ <span class="logtags"><span class="phasetag" title="draft">draft</span> <span class="branchtag" title="default">default</span> <span class="tagtag" title="tip">tip</span> </span></div>
426 <div class="title">/ <span class="logtags"><span class="phasetag" title="draft">draft</span> <span class="branchtag" title="default">default</span> <span class="tagtag" title="tip">tip</span> </span></div>
427 <table cellspacing="0">
427 <table cellspacing="0">
428 <tr class="parity0">
428
429 <td style="font-family:monospace">drwxr-xr-x</td>
430 <td style="font-family:monospace"></td>
431 <td style="font-family:monospace"></td>
432 <td><a href="/file/tip/?style=gitweb">[up]</a></td>
433 <td class="link">&nbsp;</td>
434 </tr>
435
429
436 <tr class="parity1">
430 <tr class="parity1">
437 <td style="font-family:monospace">drwxr-xr-x</td>
431 <td style="font-family:monospace">drwxr-xr-x</td>
438 <td style="font-family:monospace"></td>
432 <td style="font-family:monospace"></td>
439 <td style="font-family:monospace"></td>
433 <td style="font-family:monospace"></td>
440 <td>
434 <td>
441 <a href="/file/tip/a1?style=gitweb">a1</a>
435 <a href="/file/tip/a1?style=gitweb">a1</a>
442 <a href="/file/tip/a1/a2/a3/a4?style=gitweb">a2/a3/a4</a>
436 <a href="/file/tip/a1/a2/a3/a4?style=gitweb">a2/a3/a4</a>
443 </td>
437 </td>
444 <td class="link">
438 <td class="link">
445 <a href="/file/tip/a1?style=gitweb">files</a>
439 <a href="/file/tip/a1?style=gitweb">files</a>
446 </td>
440 </td>
447 </tr>
441 </tr>
448 <tr class="parity0">
442 <tr class="parity0">
449 <td style="font-family:monospace">drwxr-xr-x</td>
443 <td style="font-family:monospace">drwxr-xr-x</td>
450 <td style="font-family:monospace"></td>
444 <td style="font-family:monospace"></td>
451 <td style="font-family:monospace"></td>
445 <td style="font-family:monospace"></td>
452 <td>
446 <td>
453 <a href="/file/tip/b1?style=gitweb">b1</a>
447 <a href="/file/tip/b1?style=gitweb">b1</a>
454 <a href="/file/tip/b1/b2/b3?style=gitweb">b2/b3</a>
448 <a href="/file/tip/b1/b2/b3?style=gitweb">b2/b3</a>
455 </td>
449 </td>
456 <td class="link">
450 <td class="link">
457 <a href="/file/tip/b1?style=gitweb">files</a>
451 <a href="/file/tip/b1?style=gitweb">files</a>
458 </td>
452 </td>
459 </tr>
453 </tr>
460 <tr class="parity1">
454 <tr class="parity1">
461 <td style="font-family:monospace">drwxr-xr-x</td>
455 <td style="font-family:monospace">drwxr-xr-x</td>
462 <td style="font-family:monospace"></td>
456 <td style="font-family:monospace"></td>
463 <td style="font-family:monospace"></td>
457 <td style="font-family:monospace"></td>
464 <td>
458 <td>
465 <a href="/file/tip/d1?style=gitweb">d1</a>
459 <a href="/file/tip/d1?style=gitweb">d1</a>
466 <a href="/file/tip/d1/d2?style=gitweb">d2</a>
460 <a href="/file/tip/d1/d2?style=gitweb">d2</a>
467 </td>
461 </td>
468 <td class="link">
462 <td class="link">
469 <a href="/file/tip/d1?style=gitweb">files</a>
463 <a href="/file/tip/d1?style=gitweb">files</a>
470 </td>
464 </td>
471 </tr>
465 </tr>
472
466
473 </table>
467 </table>
474
468
475 <div class="page_footer">
469 <div class="page_footer">
476 <div class="page_footer_text">test</div>
470 <div class="page_footer_text">test</div>
477 <div class="rss_logo">
471 <div class="rss_logo">
478 <a href="/rss-log">RSS</a>
472 <a href="/rss-log">RSS</a>
479 <a href="/atom-log">Atom</a>
473 <a href="/atom-log">Atom</a>
480 </div>
474 </div>
481 <br />
475 <br />
482
476
483 </div>
477 </div>
484 </body>
478 </body>
485 </html>
479 </html>
486
480
487
481
488 manifest with descending (spartan)
482 manifest with descending (spartan)
489
483
490 $ get-with-headers.py $LOCALIP:$HGPORT 'file?style=spartan'
484 $ get-with-headers.py $LOCALIP:$HGPORT 'file?style=spartan'
491 200 Script output follows
485 200 Script output follows
492
486
493 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
487 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
494 <html>
488 <html>
495 <head>
489 <head>
496 <link rel="icon" href="/static/hgicon.png" type="image/png">
490 <link rel="icon" href="/static/hgicon.png" type="image/png">
497 <meta name="robots" content="index, nofollow" />
491 <meta name="robots" content="index, nofollow" />
498 <link rel="stylesheet" href="/static/style.css" type="text/css" />
492 <link rel="stylesheet" href="/static/style.css" type="text/css" />
499 <script type="text/javascript" src="/static/mercurial.js"></script>
493 <script type="text/javascript" src="/static/mercurial.js"></script>
500
494
501 <title>test: files for changeset c9f45f7a1659</title>
495 <title>test: files for changeset c9f45f7a1659</title>
502 </head>
496 </head>
503 <body>
497 <body>
504
498
505 <div class="buttons">
499 <div class="buttons">
506 <a href="/log/tip?style=spartan">changelog</a>
500 <a href="/log/tip?style=spartan">changelog</a>
507 <a href="/shortlog/tip?style=spartan">shortlog</a>
501 <a href="/shortlog/tip?style=spartan">shortlog</a>
508 <a href="/graph/tip?style=spartan">graph</a>
502 <a href="/graph/tip?style=spartan">graph</a>
509 <a href="/tags?style=spartan">tags</a>
503 <a href="/tags?style=spartan">tags</a>
510 <a href="/branches?style=spartan">branches</a>
504 <a href="/branches?style=spartan">branches</a>
511 <a href="/rev/tip?style=spartan">changeset</a>
505 <a href="/rev/tip?style=spartan">changeset</a>
512
506
513 <a href="/help?style=spartan">help</a>
507 <a href="/help?style=spartan">help</a>
514 </div>
508 </div>
515
509
516 <h2><a href="/">Mercurial</a> / files for changeset <a href="/rev/c9f45f7a1659">c9f45f7a1659</a>: /</h2>
510 <h2><a href="/">Mercurial</a> / files for changeset <a href="/rev/c9f45f7a1659">c9f45f7a1659</a>: /</h2>
517
511
518 <table cellpadding="0" cellspacing="0">
512 <table cellpadding="0" cellspacing="0">
519 <tr class="parity0">
513 <tr class="parity0">
520 <td><tt>drwxr-xr-x</tt>&nbsp;
514 <td><tt>drwxr-xr-x</tt>&nbsp;
521 <td>&nbsp;
515 <td>&nbsp;
522 <td>&nbsp;
516 <td>&nbsp;
523 <td><a href="/file/tip/?style=spartan">[up]</a>
517 <td><a href="/file/tip/?style=spartan">[up]</a>
524 </tr>
518 </tr>
525
519
526 <tr class="parity1">
520 <tr class="parity1">
527 <td><tt>drwxr-xr-x</tt>&nbsp;</td>
521 <td><tt>drwxr-xr-x</tt>&nbsp;</td>
528 <td>&nbsp;</td>
522 <td>&nbsp;</td>
529 <td>&nbsp;</td>
523 <td>&nbsp;</td>
530 <td>
524 <td>
531 <a href="/file/tip/a1?style=spartan">a1/</a>
525 <a href="/file/tip/a1?style=spartan">a1/</a>
532 <a href="/file/tip/a1/a2/a3/a4?style=spartan">
526 <a href="/file/tip/a1/a2/a3/a4?style=spartan">
533 a2/a3/a4
527 a2/a3/a4
534 </a>
528 </a>
535 </td>
529 </td>
536 </tr>
530 </tr>
537 <tr class="parity0">
531 <tr class="parity0">
538 <td><tt>drwxr-xr-x</tt>&nbsp;</td>
532 <td><tt>drwxr-xr-x</tt>&nbsp;</td>
539 <td>&nbsp;</td>
533 <td>&nbsp;</td>
540 <td>&nbsp;</td>
534 <td>&nbsp;</td>
541 <td>
535 <td>
542 <a href="/file/tip/b1?style=spartan">b1/</a>
536 <a href="/file/tip/b1?style=spartan">b1/</a>
543 <a href="/file/tip/b1/b2/b3?style=spartan">
537 <a href="/file/tip/b1/b2/b3?style=spartan">
544 b2/b3
538 b2/b3
545 </a>
539 </a>
546 </td>
540 </td>
547 </tr>
541 </tr>
548 <tr class="parity1">
542 <tr class="parity1">
549 <td><tt>drwxr-xr-x</tt>&nbsp;</td>
543 <td><tt>drwxr-xr-x</tt>&nbsp;</td>
550 <td>&nbsp;</td>
544 <td>&nbsp;</td>
551 <td>&nbsp;</td>
545 <td>&nbsp;</td>
552 <td>
546 <td>
553 <a href="/file/tip/d1?style=spartan">d1/</a>
547 <a href="/file/tip/d1?style=spartan">d1/</a>
554 <a href="/file/tip/d1/d2?style=spartan">
548 <a href="/file/tip/d1/d2?style=spartan">
555 d2
549 d2
556 </a>
550 </a>
557 </td>
551 </td>
558 </tr>
552 </tr>
559
553
560 </table>
554 </table>
561
555
562 <div class="logo">
556 <div class="logo">
563 <a href="https://mercurial-scm.org/">
557 <a href="https://mercurial-scm.org/">
564 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial"></a>
558 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial"></a>
565 </div>
559 </div>
566
560
567 </body>
561 </body>
568 </html>
562 </html>
569
563
570
564
571 $ cat errors.log
565 $ cat errors.log
572
566
573 $ cd ..
567 $ cd ..
@@ -1,1110 +1,1108 b''
1 #require serve
1 #require serve
2
2
3 Test symbolic revision usage in links produced by hgweb pages. There are
3 Test symbolic revision usage in links produced by hgweb pages. There are
4 multiple issues related to this:
4 multiple issues related to this:
5 - issue2296
5 - issue2296
6 - issue2826
6 - issue2826
7 - issue3594
7 - issue3594
8 - issue3634
8 - issue3634
9
9
10 Set up the repo
10 Set up the repo
11
11
12 $ hg init test
12 $ hg init test
13 $ cd test
13 $ cd test
14 $ echo 0 > foo
14 $ echo 0 > foo
15 $ mkdir dir
15 $ mkdir dir
16 $ echo 0 > dir/bar
16 $ echo 0 > dir/bar
17 $ hg ci -Am 'first'
17 $ hg ci -Am 'first'
18 adding dir/bar
18 adding dir/bar
19 adding foo
19 adding foo
20 $ echo 1 >> foo
20 $ echo 1 >> foo
21 $ hg ci -m 'second'
21 $ hg ci -m 'second'
22 $ echo 2 >> foo
22 $ echo 2 >> foo
23 $ hg ci -m 'third'
23 $ hg ci -m 'third'
24 $ hg bookmark -r1 xyzzy
24 $ hg bookmark -r1 xyzzy
25
25
26 $ hg log -G --template '{rev}:{node|short} {tags} {bookmarks}\n'
26 $ hg log -G --template '{rev}:{node|short} {tags} {bookmarks}\n'
27 @ 2:9d8c40cba617 tip
27 @ 2:9d8c40cba617 tip
28 |
28 |
29 o 1:a7c1559b7bba xyzzy
29 o 1:a7c1559b7bba xyzzy
30 |
30 |
31 o 0:43c799df6e75
31 o 0:43c799df6e75
32
32
33 $ hg serve --config web.allow_archive=zip -n test -p $HGPORT -d --pid-file=hg.pid -E errors.log
33 $ hg serve --config web.allow_archive=zip -n test -p $HGPORT -d --pid-file=hg.pid -E errors.log
34 $ cat hg.pid >> $DAEMON_PIDS
34 $ cat hg.pid >> $DAEMON_PIDS
35
35
36 $ REVLINKS='href=[^>]+(rev=|/)(43c799df6e75|0|a7c1559b7bba|1|xyzzy|9d8c40cba617|2|tip|default)'
36 $ REVLINKS='href=[^>]+(rev=|/)(43c799df6e75|0|a7c1559b7bba|1|xyzzy|9d8c40cba617|2|tip|default)'
37
37
38 (De)referencing symbolic revisions (paper)
38 (De)referencing symbolic revisions (paper)
39
39
40 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=paper' | egrep $REVLINKS
40 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=paper' | egrep $REVLINKS
41 <li><a href="/graph/tip?style=paper">graph</a></li>
41 <li><a href="/graph/tip?style=paper">graph</a></li>
42 <li><a href="/rev/tip?style=paper">changeset</a></li>
42 <li><a href="/rev/tip?style=paper">changeset</a></li>
43 <li><a href="/file/tip?style=paper">browse</a></li>
43 <li><a href="/file/tip?style=paper">browse</a></li>
44 <a href="/archive/tip.zip">zip</a>
44 <a href="/archive/tip.zip">zip</a>
45 <a href="/shortlog/tip?revcount=30&style=paper">less</a>
45 <a href="/shortlog/tip?revcount=30&style=paper">less</a>
46 <a href="/shortlog/tip?revcount=120&style=paper">more</a>
46 <a href="/shortlog/tip?revcount=120&style=paper">more</a>
47 | rev 2: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a>
47 | rev 2: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a>
48 <a href="/rev/9d8c40cba617?style=paper">third</a>
48 <a href="/rev/9d8c40cba617?style=paper">third</a>
49 <a href="/rev/a7c1559b7bba?style=paper">second</a>
49 <a href="/rev/a7c1559b7bba?style=paper">second</a>
50 <a href="/rev/43c799df6e75?style=paper">first</a>
50 <a href="/rev/43c799df6e75?style=paper">first</a>
51 <a href="/shortlog/tip?revcount=30&style=paper">less</a>
51 <a href="/shortlog/tip?revcount=30&style=paper">less</a>
52 <a href="/shortlog/tip?revcount=120&style=paper">more</a>
52 <a href="/shortlog/tip?revcount=120&style=paper">more</a>
53 | rev 2: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a>
53 | rev 2: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a>
54
54
55 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph?style=paper' | egrep $REVLINKS
55 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph?style=paper' | egrep $REVLINKS
56 <li><a href="/shortlog/tip?style=paper">log</a></li>
56 <li><a href="/shortlog/tip?style=paper">log</a></li>
57 <li><a href="/rev/tip?style=paper">changeset</a></li>
57 <li><a href="/rev/tip?style=paper">changeset</a></li>
58 <li><a href="/file/tip?style=paper">browse</a></li>
58 <li><a href="/file/tip?style=paper">browse</a></li>
59 <a href="/graph/tip?revcount=30&style=paper">less</a>
59 <a href="/graph/tip?revcount=30&style=paper">less</a>
60 <a href="/graph/tip?revcount=120&style=paper">more</a>
60 <a href="/graph/tip?revcount=120&style=paper">more</a>
61 | rev 2: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a>
61 | rev 2: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a>
62 <a href="/rev/9d8c40cba617?style=paper">third</a>
62 <a href="/rev/9d8c40cba617?style=paper">third</a>
63 <a href="/rev/a7c1559b7bba?style=paper">second</a>
63 <a href="/rev/a7c1559b7bba?style=paper">second</a>
64 <a href="/rev/43c799df6e75?style=paper">first</a>
64 <a href="/rev/43c799df6e75?style=paper">first</a>
65 <a href="/graph/tip?revcount=30&style=paper">less</a>
65 <a href="/graph/tip?revcount=30&style=paper">less</a>
66 <a href="/graph/tip?revcount=120&style=paper">more</a>
66 <a href="/graph/tip?revcount=120&style=paper">more</a>
67 | rev 2: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a>
67 | rev 2: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a>
68
68
69 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file?style=paper' | egrep $REVLINKS
69 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file?style=paper' | egrep $REVLINKS
70 <li><a href="/shortlog/tip?style=paper">log</a></li>
70 <li><a href="/shortlog/tip?style=paper">log</a></li>
71 <li><a href="/graph/tip?style=paper">graph</a></li>
71 <li><a href="/graph/tip?style=paper">graph</a></li>
72 <li><a href="/rev/tip?style=paper">changeset</a></li>
72 <li><a href="/rev/tip?style=paper">changeset</a></li>
73 <a href="/archive/tip.zip">zip</a>
73 <a href="/archive/tip.zip">zip</a>
74 directory / @ 2:<a href="/rev/9d8c40cba617?style=paper">9d8c40cba617</a>
74 directory / @ 2:<a href="/rev/9d8c40cba617?style=paper">9d8c40cba617</a>
75 <a href="/file/tip/dir?style=paper">
75 <a href="/file/tip/dir?style=paper">
76 <a href="/file/tip/dir/?style=paper">
76 <a href="/file/tip/dir/?style=paper">
77 <a href="/file/tip/foo?style=paper">
77 <a href="/file/tip/foo?style=paper">
78
78
79 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'branches?style=paper' | egrep $REVLINKS
79 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'branches?style=paper' | egrep $REVLINKS
80 <a href="/shortlog/default?style=paper" class="open">
80 <a href="/shortlog/default?style=paper" class="open">
81 <a href="/shortlog/9d8c40cba617?style=paper" class="open">
81 <a href="/shortlog/9d8c40cba617?style=paper" class="open">
82
82
83 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'tags?style=paper' | egrep $REVLINKS
83 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'tags?style=paper' | egrep $REVLINKS
84 <a href="/rev/tip?style=paper">
84 <a href="/rev/tip?style=paper">
85 <a href="/rev/9d8c40cba617?style=paper">
85 <a href="/rev/9d8c40cba617?style=paper">
86
86
87 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'bookmarks?style=paper' | egrep $REVLINKS
87 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'bookmarks?style=paper' | egrep $REVLINKS
88 <a href="/rev/xyzzy?style=paper">
88 <a href="/rev/xyzzy?style=paper">
89 <a href="/rev/a7c1559b7bba?style=paper">
89 <a href="/rev/a7c1559b7bba?style=paper">
90
90
91 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=paper&rev=all()' | egrep $REVLINKS
91 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=paper&rev=all()' | egrep $REVLINKS
92 <a href="/rev/9d8c40cba617?style=paper">third</a>
92 <a href="/rev/9d8c40cba617?style=paper">third</a>
93 <a href="/rev/a7c1559b7bba?style=paper">second</a>
93 <a href="/rev/a7c1559b7bba?style=paper">second</a>
94 <a href="/rev/43c799df6e75?style=paper">first</a>
94 <a href="/rev/43c799df6e75?style=paper">first</a>
95
95
96 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'rev/xyzzy?style=paper' | egrep $REVLINKS
96 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'rev/xyzzy?style=paper' | egrep $REVLINKS
97 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
97 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
98 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
98 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
99 <li><a href="/raw-rev/xyzzy?style=paper">raw</a></li>
99 <li><a href="/raw-rev/xyzzy?style=paper">raw</a></li>
100 <li><a href="/file/xyzzy?style=paper">browse</a></li>
100 <li><a href="/file/xyzzy?style=paper">browse</a></li>
101 <a href="/archive/xyzzy.zip">zip</a>
101 <a href="/archive/xyzzy.zip">zip</a>
102 changeset 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
102 changeset 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
103 <td class="author"><a href="/rev/43c799df6e75?style=paper">43c799df6e75</a> </td>
103 <td class="author"><a href="/rev/43c799df6e75?style=paper">43c799df6e75</a> </td>
104 <td class="author"> <a href="/rev/9d8c40cba617?style=paper">9d8c40cba617</a></td>
104 <td class="author"> <a href="/rev/9d8c40cba617?style=paper">9d8c40cba617</a></td>
105 <td class="files"><a href="/file/a7c1559b7bba/foo?style=paper">foo</a> </td>
105 <td class="files"><a href="/file/a7c1559b7bba/foo?style=paper">foo</a> </td>
106
106
107 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog/xyzzy?style=paper' | egrep $REVLINKS
107 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog/xyzzy?style=paper' | egrep $REVLINKS
108 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
108 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
109 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
109 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
110 <li><a href="/file/xyzzy?style=paper">browse</a></li>
110 <li><a href="/file/xyzzy?style=paper">browse</a></li>
111 <a href="/archive/xyzzy.zip">zip</a>
111 <a href="/archive/xyzzy.zip">zip</a>
112 <a href="/shortlog/xyzzy?revcount=30&style=paper">less</a>
112 <a href="/shortlog/xyzzy?revcount=30&style=paper">less</a>
113 <a href="/shortlog/xyzzy?revcount=120&style=paper">more</a>
113 <a href="/shortlog/xyzzy?revcount=120&style=paper">more</a>
114 | rev 1: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a>
114 | rev 1: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a>
115 <a href="/rev/a7c1559b7bba?style=paper">second</a>
115 <a href="/rev/a7c1559b7bba?style=paper">second</a>
116 <a href="/rev/43c799df6e75?style=paper">first</a>
116 <a href="/rev/43c799df6e75?style=paper">first</a>
117 <a href="/shortlog/xyzzy?revcount=30&style=paper">less</a>
117 <a href="/shortlog/xyzzy?revcount=30&style=paper">less</a>
118 <a href="/shortlog/xyzzy?revcount=120&style=paper">more</a>
118 <a href="/shortlog/xyzzy?revcount=120&style=paper">more</a>
119 | rev 1: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a>
119 | rev 1: <a href="/shortlog/43c799df6e75?style=paper">(0)</a> <a href="/shortlog/tip?style=paper">tip</a>
120
120
121 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph/xyzzy?style=paper' | egrep $REVLINKS
121 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph/xyzzy?style=paper' | egrep $REVLINKS
122 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
122 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
123 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
123 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
124 <li><a href="/file/xyzzy?style=paper">browse</a></li>
124 <li><a href="/file/xyzzy?style=paper">browse</a></li>
125 <a href="/graph/xyzzy?revcount=30&style=paper">less</a>
125 <a href="/graph/xyzzy?revcount=30&style=paper">less</a>
126 <a href="/graph/xyzzy?revcount=120&style=paper">more</a>
126 <a href="/graph/xyzzy?revcount=120&style=paper">more</a>
127 | rev 1: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a>
127 | rev 1: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a>
128 <a href="/rev/a7c1559b7bba?style=paper">second</a>
128 <a href="/rev/a7c1559b7bba?style=paper">second</a>
129 <a href="/rev/43c799df6e75?style=paper">first</a>
129 <a href="/rev/43c799df6e75?style=paper">first</a>
130 <a href="/graph/xyzzy?revcount=30&style=paper">less</a>
130 <a href="/graph/xyzzy?revcount=30&style=paper">less</a>
131 <a href="/graph/xyzzy?revcount=120&style=paper">more</a>
131 <a href="/graph/xyzzy?revcount=120&style=paper">more</a>
132 | rev 1: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a>
132 | rev 1: <a href="/graph/43c799df6e75?style=paper">(0)</a> <a href="/graph/tip?style=paper">tip</a>
133
133
134 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy?style=paper' | egrep $REVLINKS
134 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy?style=paper' | egrep $REVLINKS
135 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
135 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
136 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
136 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
137 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
137 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
138 <a href="/archive/xyzzy.zip">zip</a>
138 <a href="/archive/xyzzy.zip">zip</a>
139 directory / @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
139 directory / @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
140 <a href="/file/xyzzy/dir?style=paper">
140 <a href="/file/xyzzy/dir?style=paper">
141 <a href="/file/xyzzy/dir/?style=paper">
141 <a href="/file/xyzzy/dir/?style=paper">
142 <a href="/file/xyzzy/foo?style=paper">
142 <a href="/file/xyzzy/foo?style=paper">
143
143
144 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy/foo?style=paper' | egrep $REVLINKS
144 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy/foo?style=paper' | egrep $REVLINKS
145 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
145 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
146 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
146 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
147 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
147 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
148 <li><a href="/file/xyzzy/?style=paper">browse</a></li>
148 <li><a href="/file/xyzzy/?style=paper">browse</a></li>
149 <li><a href="/file/tip/foo?style=paper">latest</a></li>
149 <li><a href="/file/tip/foo?style=paper">latest</a></li>
150 <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li>
150 <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li>
151 <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li>
151 <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li>
152 <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li>
152 <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li>
153 <li><a href="/log/xyzzy/foo?style=paper">file log</a></li>
153 <li><a href="/log/xyzzy/foo?style=paper">file log</a></li>
154 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
154 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
155 view foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
155 view foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
156 <td class="author"><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td>
156 <td class="author"><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td>
157 <td class="author"><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td>
157 <td class="author"><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td>
158
158
159 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy/foo?style=paper' | egrep $REVLINKS
159 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy/foo?style=paper' | egrep $REVLINKS
160 href="/atom-log/tip/foo" title="Atom feed for test:foo" />
160 href="/atom-log/tip/foo" title="Atom feed for test:foo" />
161 href="/rss-log/tip/foo" title="RSS feed for test:foo" />
161 href="/rss-log/tip/foo" title="RSS feed for test:foo" />
162 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
162 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
163 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
163 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
164 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
164 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
165 <li><a href="/file/xyzzy?style=paper">browse</a></li>
165 <li><a href="/file/xyzzy?style=paper">browse</a></li>
166 <li><a href="/file/xyzzy/foo?style=paper">file</a></li>
166 <li><a href="/file/xyzzy/foo?style=paper">file</a></li>
167 <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li>
167 <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li>
168 <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li>
168 <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li>
169 <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li>
169 <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li>
170 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
170 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
171 <a href="/atom-log/tip/foo" title="subscribe to atom feed">
171 <a href="/atom-log/tip/foo" title="subscribe to atom feed">
172 log foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
172 log foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
173 <a href="/log/xyzzy/foo?revcount=30&style=paper">less</a>
173 <a href="/log/xyzzy/foo?revcount=30&style=paper">less</a>
174 <a href="/log/xyzzy/foo?revcount=120&style=paper">more</a>
174 <a href="/log/xyzzy/foo?revcount=120&style=paper">more</a>
175 | <a href="/log/43c799df6e75/foo?style=paper">(0)</a> <a href="/log/tip/foo?style=paper">tip</a> </div>
175 | <a href="/log/43c799df6e75/foo?style=paper">(0)</a> <a href="/log/tip/foo?style=paper">tip</a> </div>
176 <a href="/rev/a7c1559b7bba?style=paper">second</a>
176 <a href="/rev/a7c1559b7bba?style=paper">second</a>
177 <a href="/rev/43c799df6e75?style=paper">first</a>
177 <a href="/rev/43c799df6e75?style=paper">first</a>
178 <a href="/log/xyzzy/foo?revcount=30&style=paper">less</a>
178 <a href="/log/xyzzy/foo?revcount=30&style=paper">less</a>
179 <a href="/log/xyzzy/foo?revcount=120&style=paper">more</a>
179 <a href="/log/xyzzy/foo?revcount=120&style=paper">more</a>
180 | <a href="/log/43c799df6e75/foo?style=paper">(0)</a> <a href="/log/tip/foo?style=paper">tip</a>
180 | <a href="/log/43c799df6e75/foo?style=paper">(0)</a> <a href="/log/tip/foo?style=paper">tip</a>
181
181
182 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'annotate/xyzzy/foo?style=paper' | egrep $REVLINKS
182 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'annotate/xyzzy/foo?style=paper' | egrep $REVLINKS
183 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
183 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
184 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
184 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
185 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
185 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
186 <li><a href="/file/xyzzy/?style=paper">browse</a></li>
186 <li><a href="/file/xyzzy/?style=paper">browse</a></li>
187 <li><a href="/file/xyzzy/foo?style=paper">file</a></li>
187 <li><a href="/file/xyzzy/foo?style=paper">file</a></li>
188 <li><a href="/file/tip/foo?style=paper">latest</a></li>
188 <li><a href="/file/tip/foo?style=paper">latest</a></li>
189 <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li>
189 <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li>
190 <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li>
190 <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li>
191 <li><a href="/log/xyzzy/foo?style=paper">file log</a></li>
191 <li><a href="/log/xyzzy/foo?style=paper">file log</a></li>
192 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
192 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
193 annotate foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
193 annotate foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
194 <td class="author"><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td>
194 <td class="author"><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td>
195 <td class="author"><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td>
195 <td class="author"><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td>
196 <a href="/annotate/43c799df6e75/foo?style=paper#l1">
196 <a href="/annotate/43c799df6e75/foo?style=paper#l1">
197 <a href="/annotate/43c799df6e75/foo?style=paper#l1">
197 <a href="/annotate/43c799df6e75/foo?style=paper#l1">
198 <a href="/diff/43c799df6e75/foo?style=paper">diff</a>
198 <a href="/diff/43c799df6e75/foo?style=paper">diff</a>
199 <a href="/rev/43c799df6e75?style=paper">changeset</a>
199 <a href="/rev/43c799df6e75?style=paper">changeset</a>
200 <a href="/annotate/a7c1559b7bba/foo?style=paper#l2">
200 <a href="/annotate/a7c1559b7bba/foo?style=paper#l2">
201 <a href="/annotate/a7c1559b7bba/foo?style=paper#l2">
201 <a href="/annotate/a7c1559b7bba/foo?style=paper#l2">
202 <a href="/annotate/43c799df6e75/foo?style=paper">0</a></div>
202 <a href="/annotate/43c799df6e75/foo?style=paper">0</a></div>
203 <a href="/diff/a7c1559b7bba/foo?style=paper">diff</a>
203 <a href="/diff/a7c1559b7bba/foo?style=paper">diff</a>
204 <a href="/rev/a7c1559b7bba?style=paper">changeset</a>
204 <a href="/rev/a7c1559b7bba?style=paper">changeset</a>
205
205
206 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'diff/xyzzy/foo?style=paper' | egrep $REVLINKS
206 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'diff/xyzzy/foo?style=paper' | egrep $REVLINKS
207 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
207 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
208 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
208 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
209 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
209 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
210 <li><a href="/file/xyzzy?style=paper">browse</a></li>
210 <li><a href="/file/xyzzy?style=paper">browse</a></li>
211 <li><a href="/file/xyzzy/foo?style=paper">file</a></li>
211 <li><a href="/file/xyzzy/foo?style=paper">file</a></li>
212 <li><a href="/file/tip/foo?style=paper">latest</a></li>
212 <li><a href="/file/tip/foo?style=paper">latest</a></li>
213 <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li>
213 <li><a href="/comparison/xyzzy/foo?style=paper">comparison</a></li>
214 <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li>
214 <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li>
215 <li><a href="/log/xyzzy/foo?style=paper">file log</a></li>
215 <li><a href="/log/xyzzy/foo?style=paper">file log</a></li>
216 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
216 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
217 diff foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
217 diff foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
218 <td><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td>
218 <td><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td>
219 <td><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td>
219 <td><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td>
220
220
221 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'comparison/xyzzy/foo?style=paper' | egrep $REVLINKS
221 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'comparison/xyzzy/foo?style=paper' | egrep $REVLINKS
222 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
222 <li><a href="/shortlog/xyzzy?style=paper">log</a></li>
223 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
223 <li><a href="/graph/xyzzy?style=paper">graph</a></li>
224 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
224 <li><a href="/rev/xyzzy?style=paper">changeset</a></li>
225 <li><a href="/file/xyzzy?style=paper">browse</a></li>
225 <li><a href="/file/xyzzy?style=paper">browse</a></li>
226 <li><a href="/file/xyzzy/foo?style=paper">file</a></li>
226 <li><a href="/file/xyzzy/foo?style=paper">file</a></li>
227 <li><a href="/file/tip/foo?style=paper">latest</a></li>
227 <li><a href="/file/tip/foo?style=paper">latest</a></li>
228 <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li>
228 <li><a href="/diff/xyzzy/foo?style=paper">diff</a></li>
229 <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li>
229 <li><a href="/annotate/xyzzy/foo?style=paper">annotate</a></li>
230 <li><a href="/log/xyzzy/foo?style=paper">file log</a></li>
230 <li><a href="/log/xyzzy/foo?style=paper">file log</a></li>
231 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
231 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
232 comparison foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
232 comparison foo @ 1:<a href="/rev/a7c1559b7bba?style=paper">a7c1559b7bba</a>
233 <td><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td>
233 <td><a href="/file/43c799df6e75/foo?style=paper">43c799df6e75</a> </td>
234 <td><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td>
234 <td><a href="/file/9d8c40cba617/foo?style=paper">9d8c40cba617</a> </td>
235
235
236 (De)referencing symbolic revisions (coal)
236 (De)referencing symbolic revisions (coal)
237
237
238 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=coal' | egrep $REVLINKS
238 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=coal' | egrep $REVLINKS
239 <li><a href="/graph/tip?style=coal">graph</a></li>
239 <li><a href="/graph/tip?style=coal">graph</a></li>
240 <li><a href="/rev/tip?style=coal">changeset</a></li>
240 <li><a href="/rev/tip?style=coal">changeset</a></li>
241 <li><a href="/file/tip?style=coal">browse</a></li>
241 <li><a href="/file/tip?style=coal">browse</a></li>
242 <a href="/archive/tip.zip">zip</a>
242 <a href="/archive/tip.zip">zip</a>
243 <a href="/shortlog/tip?revcount=30&style=coal">less</a>
243 <a href="/shortlog/tip?revcount=30&style=coal">less</a>
244 <a href="/shortlog/tip?revcount=120&style=coal">more</a>
244 <a href="/shortlog/tip?revcount=120&style=coal">more</a>
245 | rev 2: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a>
245 | rev 2: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a>
246 <a href="/rev/9d8c40cba617?style=coal">third</a>
246 <a href="/rev/9d8c40cba617?style=coal">third</a>
247 <a href="/rev/a7c1559b7bba?style=coal">second</a>
247 <a href="/rev/a7c1559b7bba?style=coal">second</a>
248 <a href="/rev/43c799df6e75?style=coal">first</a>
248 <a href="/rev/43c799df6e75?style=coal">first</a>
249 <a href="/shortlog/tip?revcount=30&style=coal">less</a>
249 <a href="/shortlog/tip?revcount=30&style=coal">less</a>
250 <a href="/shortlog/tip?revcount=120&style=coal">more</a>
250 <a href="/shortlog/tip?revcount=120&style=coal">more</a>
251 | rev 2: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a>
251 | rev 2: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a>
252
252
253 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph?style=coal' | egrep $REVLINKS
253 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph?style=coal' | egrep $REVLINKS
254 <li><a href="/shortlog/tip?style=coal">log</a></li>
254 <li><a href="/shortlog/tip?style=coal">log</a></li>
255 <li><a href="/rev/tip?style=coal">changeset</a></li>
255 <li><a href="/rev/tip?style=coal">changeset</a></li>
256 <li><a href="/file/tip?style=coal">browse</a></li>
256 <li><a href="/file/tip?style=coal">browse</a></li>
257 <a href="/graph/tip?revcount=30&style=coal">less</a>
257 <a href="/graph/tip?revcount=30&style=coal">less</a>
258 <a href="/graph/tip?revcount=120&style=coal">more</a>
258 <a href="/graph/tip?revcount=120&style=coal">more</a>
259 | rev 2: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a>
259 | rev 2: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a>
260 <a href="/rev/9d8c40cba617?style=coal">third</a>
260 <a href="/rev/9d8c40cba617?style=coal">third</a>
261 <a href="/rev/a7c1559b7bba?style=coal">second</a>
261 <a href="/rev/a7c1559b7bba?style=coal">second</a>
262 <a href="/rev/43c799df6e75?style=coal">first</a>
262 <a href="/rev/43c799df6e75?style=coal">first</a>
263 <a href="/graph/tip?revcount=30&style=coal">less</a>
263 <a href="/graph/tip?revcount=30&style=coal">less</a>
264 <a href="/graph/tip?revcount=120&style=coal">more</a>
264 <a href="/graph/tip?revcount=120&style=coal">more</a>
265 | rev 2: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a>
265 | rev 2: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a>
266
266
267 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file?style=coal' | egrep $REVLINKS
267 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file?style=coal' | egrep $REVLINKS
268 <li><a href="/shortlog/tip?style=coal">log</a></li>
268 <li><a href="/shortlog/tip?style=coal">log</a></li>
269 <li><a href="/graph/tip?style=coal">graph</a></li>
269 <li><a href="/graph/tip?style=coal">graph</a></li>
270 <li><a href="/rev/tip?style=coal">changeset</a></li>
270 <li><a href="/rev/tip?style=coal">changeset</a></li>
271 <a href="/archive/tip.zip">zip</a>
271 <a href="/archive/tip.zip">zip</a>
272 directory / @ 2:<a href="/rev/9d8c40cba617?style=coal">9d8c40cba617</a>
272 directory / @ 2:<a href="/rev/9d8c40cba617?style=coal">9d8c40cba617</a>
273 <a href="/file/tip/dir?style=coal">
273 <a href="/file/tip/dir?style=coal">
274 <a href="/file/tip/dir/?style=coal">
274 <a href="/file/tip/dir/?style=coal">
275 <a href="/file/tip/foo?style=coal">
275 <a href="/file/tip/foo?style=coal">
276
276
277 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'branches?style=coal' | egrep $REVLINKS
277 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'branches?style=coal' | egrep $REVLINKS
278 <a href="/shortlog/default?style=coal" class="open">
278 <a href="/shortlog/default?style=coal" class="open">
279 <a href="/shortlog/9d8c40cba617?style=coal" class="open">
279 <a href="/shortlog/9d8c40cba617?style=coal" class="open">
280
280
281 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'tags?style=coal' | egrep $REVLINKS
281 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'tags?style=coal' | egrep $REVLINKS
282 <a href="/rev/tip?style=coal">
282 <a href="/rev/tip?style=coal">
283 <a href="/rev/9d8c40cba617?style=coal">
283 <a href="/rev/9d8c40cba617?style=coal">
284
284
285 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'bookmarks?style=coal' | egrep $REVLINKS
285 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'bookmarks?style=coal' | egrep $REVLINKS
286 <a href="/rev/xyzzy?style=coal">
286 <a href="/rev/xyzzy?style=coal">
287 <a href="/rev/a7c1559b7bba?style=coal">
287 <a href="/rev/a7c1559b7bba?style=coal">
288
288
289 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=coal&rev=all()' | egrep $REVLINKS
289 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=coal&rev=all()' | egrep $REVLINKS
290 <a href="/rev/9d8c40cba617?style=coal">third</a>
290 <a href="/rev/9d8c40cba617?style=coal">third</a>
291 <a href="/rev/a7c1559b7bba?style=coal">second</a>
291 <a href="/rev/a7c1559b7bba?style=coal">second</a>
292 <a href="/rev/43c799df6e75?style=coal">first</a>
292 <a href="/rev/43c799df6e75?style=coal">first</a>
293
293
294 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'rev/xyzzy?style=coal' | egrep $REVLINKS
294 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'rev/xyzzy?style=coal' | egrep $REVLINKS
295 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
295 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
296 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
296 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
297 <li><a href="/raw-rev/xyzzy?style=coal">raw</a></li>
297 <li><a href="/raw-rev/xyzzy?style=coal">raw</a></li>
298 <li><a href="/file/xyzzy?style=coal">browse</a></li>
298 <li><a href="/file/xyzzy?style=coal">browse</a></li>
299 <a href="/archive/xyzzy.zip">zip</a>
299 <a href="/archive/xyzzy.zip">zip</a>
300 changeset 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
300 changeset 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
301 <td class="author"><a href="/rev/43c799df6e75?style=coal">43c799df6e75</a> </td>
301 <td class="author"><a href="/rev/43c799df6e75?style=coal">43c799df6e75</a> </td>
302 <td class="author"> <a href="/rev/9d8c40cba617?style=coal">9d8c40cba617</a></td>
302 <td class="author"> <a href="/rev/9d8c40cba617?style=coal">9d8c40cba617</a></td>
303 <td class="files"><a href="/file/a7c1559b7bba/foo?style=coal">foo</a> </td>
303 <td class="files"><a href="/file/a7c1559b7bba/foo?style=coal">foo</a> </td>
304
304
305 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog/xyzzy?style=coal' | egrep $REVLINKS
305 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog/xyzzy?style=coal' | egrep $REVLINKS
306 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
306 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
307 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
307 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
308 <li><a href="/file/xyzzy?style=coal">browse</a></li>
308 <li><a href="/file/xyzzy?style=coal">browse</a></li>
309 <a href="/archive/xyzzy.zip">zip</a>
309 <a href="/archive/xyzzy.zip">zip</a>
310 <a href="/shortlog/xyzzy?revcount=30&style=coal">less</a>
310 <a href="/shortlog/xyzzy?revcount=30&style=coal">less</a>
311 <a href="/shortlog/xyzzy?revcount=120&style=coal">more</a>
311 <a href="/shortlog/xyzzy?revcount=120&style=coal">more</a>
312 | rev 1: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a>
312 | rev 1: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a>
313 <a href="/rev/a7c1559b7bba?style=coal">second</a>
313 <a href="/rev/a7c1559b7bba?style=coal">second</a>
314 <a href="/rev/43c799df6e75?style=coal">first</a>
314 <a href="/rev/43c799df6e75?style=coal">first</a>
315 <a href="/shortlog/xyzzy?revcount=30&style=coal">less</a>
315 <a href="/shortlog/xyzzy?revcount=30&style=coal">less</a>
316 <a href="/shortlog/xyzzy?revcount=120&style=coal">more</a>
316 <a href="/shortlog/xyzzy?revcount=120&style=coal">more</a>
317 | rev 1: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a>
317 | rev 1: <a href="/shortlog/43c799df6e75?style=coal">(0)</a> <a href="/shortlog/tip?style=coal">tip</a>
318
318
319 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph/xyzzy?style=coal' | egrep $REVLINKS
319 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph/xyzzy?style=coal' | egrep $REVLINKS
320 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
320 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
321 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
321 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
322 <li><a href="/file/xyzzy?style=coal">browse</a></li>
322 <li><a href="/file/xyzzy?style=coal">browse</a></li>
323 <a href="/graph/xyzzy?revcount=30&style=coal">less</a>
323 <a href="/graph/xyzzy?revcount=30&style=coal">less</a>
324 <a href="/graph/xyzzy?revcount=120&style=coal">more</a>
324 <a href="/graph/xyzzy?revcount=120&style=coal">more</a>
325 | rev 1: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a>
325 | rev 1: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a>
326 <a href="/rev/a7c1559b7bba?style=coal">second</a>
326 <a href="/rev/a7c1559b7bba?style=coal">second</a>
327 <a href="/rev/43c799df6e75?style=coal">first</a>
327 <a href="/rev/43c799df6e75?style=coal">first</a>
328 <a href="/graph/xyzzy?revcount=30&style=coal">less</a>
328 <a href="/graph/xyzzy?revcount=30&style=coal">less</a>
329 <a href="/graph/xyzzy?revcount=120&style=coal">more</a>
329 <a href="/graph/xyzzy?revcount=120&style=coal">more</a>
330 | rev 1: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a>
330 | rev 1: <a href="/graph/43c799df6e75?style=coal">(0)</a> <a href="/graph/tip?style=coal">tip</a>
331
331
332 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy?style=coal' | egrep $REVLINKS
332 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy?style=coal' | egrep $REVLINKS
333 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
333 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
334 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
334 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
335 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
335 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
336 <a href="/archive/xyzzy.zip">zip</a>
336 <a href="/archive/xyzzy.zip">zip</a>
337 directory / @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
337 directory / @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
338 <a href="/file/xyzzy/dir?style=coal">
338 <a href="/file/xyzzy/dir?style=coal">
339 <a href="/file/xyzzy/dir/?style=coal">
339 <a href="/file/xyzzy/dir/?style=coal">
340 <a href="/file/xyzzy/foo?style=coal">
340 <a href="/file/xyzzy/foo?style=coal">
341
341
342 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy/foo?style=coal' | egrep $REVLINKS
342 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy/foo?style=coal' | egrep $REVLINKS
343 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
343 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
344 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
344 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
345 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
345 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
346 <li><a href="/file/xyzzy/?style=coal">browse</a></li>
346 <li><a href="/file/xyzzy/?style=coal">browse</a></li>
347 <li><a href="/file/tip/foo?style=coal">latest</a></li>
347 <li><a href="/file/tip/foo?style=coal">latest</a></li>
348 <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li>
348 <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li>
349 <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li>
349 <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li>
350 <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li>
350 <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li>
351 <li><a href="/log/xyzzy/foo?style=coal">file log</a></li>
351 <li><a href="/log/xyzzy/foo?style=coal">file log</a></li>
352 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
352 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
353 view foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
353 view foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
354 <td class="author"><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td>
354 <td class="author"><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td>
355 <td class="author"><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td>
355 <td class="author"><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td>
356
356
357 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy/foo?style=coal' | egrep $REVLINKS
357 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy/foo?style=coal' | egrep $REVLINKS
358 href="/atom-log/tip/foo" title="Atom feed for test:foo" />
358 href="/atom-log/tip/foo" title="Atom feed for test:foo" />
359 href="/rss-log/tip/foo" title="RSS feed for test:foo" />
359 href="/rss-log/tip/foo" title="RSS feed for test:foo" />
360 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
360 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
361 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
361 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
362 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
362 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
363 <li><a href="/file/xyzzy?style=coal">browse</a></li>
363 <li><a href="/file/xyzzy?style=coal">browse</a></li>
364 <li><a href="/file/xyzzy/foo?style=coal">file</a></li>
364 <li><a href="/file/xyzzy/foo?style=coal">file</a></li>
365 <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li>
365 <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li>
366 <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li>
366 <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li>
367 <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li>
367 <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li>
368 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
368 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
369 <a href="/atom-log/tip/foo" title="subscribe to atom feed">
369 <a href="/atom-log/tip/foo" title="subscribe to atom feed">
370 log foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
370 log foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
371 <a href="/log/xyzzy/foo?revcount=30&style=coal">less</a>
371 <a href="/log/xyzzy/foo?revcount=30&style=coal">less</a>
372 <a href="/log/xyzzy/foo?revcount=120&style=coal">more</a>
372 <a href="/log/xyzzy/foo?revcount=120&style=coal">more</a>
373 | <a href="/log/43c799df6e75/foo?style=coal">(0)</a> <a href="/log/tip/foo?style=coal">tip</a> </div>
373 | <a href="/log/43c799df6e75/foo?style=coal">(0)</a> <a href="/log/tip/foo?style=coal">tip</a> </div>
374 <a href="/rev/a7c1559b7bba?style=coal">second</a>
374 <a href="/rev/a7c1559b7bba?style=coal">second</a>
375 <a href="/rev/43c799df6e75?style=coal">first</a>
375 <a href="/rev/43c799df6e75?style=coal">first</a>
376 <a href="/log/xyzzy/foo?revcount=30&style=coal">less</a>
376 <a href="/log/xyzzy/foo?revcount=30&style=coal">less</a>
377 <a href="/log/xyzzy/foo?revcount=120&style=coal">more</a>
377 <a href="/log/xyzzy/foo?revcount=120&style=coal">more</a>
378 | <a href="/log/43c799df6e75/foo?style=coal">(0)</a> <a href="/log/tip/foo?style=coal">tip</a>
378 | <a href="/log/43c799df6e75/foo?style=coal">(0)</a> <a href="/log/tip/foo?style=coal">tip</a>
379
379
380 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'annotate/xyzzy/foo?style=coal' | egrep $REVLINKS
380 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'annotate/xyzzy/foo?style=coal' | egrep $REVLINKS
381 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
381 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
382 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
382 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
383 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
383 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
384 <li><a href="/file/xyzzy/?style=coal">browse</a></li>
384 <li><a href="/file/xyzzy/?style=coal">browse</a></li>
385 <li><a href="/file/xyzzy/foo?style=coal">file</a></li>
385 <li><a href="/file/xyzzy/foo?style=coal">file</a></li>
386 <li><a href="/file/tip/foo?style=coal">latest</a></li>
386 <li><a href="/file/tip/foo?style=coal">latest</a></li>
387 <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li>
387 <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li>
388 <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li>
388 <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li>
389 <li><a href="/log/xyzzy/foo?style=coal">file log</a></li>
389 <li><a href="/log/xyzzy/foo?style=coal">file log</a></li>
390 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
390 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
391 annotate foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
391 annotate foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
392 <td class="author"><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td>
392 <td class="author"><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td>
393 <td class="author"><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td>
393 <td class="author"><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td>
394 <a href="/annotate/43c799df6e75/foo?style=coal#l1">
394 <a href="/annotate/43c799df6e75/foo?style=coal#l1">
395 <a href="/annotate/43c799df6e75/foo?style=coal#l1">
395 <a href="/annotate/43c799df6e75/foo?style=coal#l1">
396 <a href="/diff/43c799df6e75/foo?style=coal">diff</a>
396 <a href="/diff/43c799df6e75/foo?style=coal">diff</a>
397 <a href="/rev/43c799df6e75?style=coal">changeset</a>
397 <a href="/rev/43c799df6e75?style=coal">changeset</a>
398 <a href="/annotate/a7c1559b7bba/foo?style=coal#l2">
398 <a href="/annotate/a7c1559b7bba/foo?style=coal#l2">
399 <a href="/annotate/a7c1559b7bba/foo?style=coal#l2">
399 <a href="/annotate/a7c1559b7bba/foo?style=coal#l2">
400 <a href="/annotate/43c799df6e75/foo?style=coal">0</a></div>
400 <a href="/annotate/43c799df6e75/foo?style=coal">0</a></div>
401 <a href="/diff/a7c1559b7bba/foo?style=coal">diff</a>
401 <a href="/diff/a7c1559b7bba/foo?style=coal">diff</a>
402 <a href="/rev/a7c1559b7bba?style=coal">changeset</a>
402 <a href="/rev/a7c1559b7bba?style=coal">changeset</a>
403
403
404 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'diff/xyzzy/foo?style=coal' | egrep $REVLINKS
404 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'diff/xyzzy/foo?style=coal' | egrep $REVLINKS
405 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
405 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
406 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
406 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
407 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
407 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
408 <li><a href="/file/xyzzy?style=coal">browse</a></li>
408 <li><a href="/file/xyzzy?style=coal">browse</a></li>
409 <li><a href="/file/xyzzy/foo?style=coal">file</a></li>
409 <li><a href="/file/xyzzy/foo?style=coal">file</a></li>
410 <li><a href="/file/tip/foo?style=coal">latest</a></li>
410 <li><a href="/file/tip/foo?style=coal">latest</a></li>
411 <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li>
411 <li><a href="/comparison/xyzzy/foo?style=coal">comparison</a></li>
412 <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li>
412 <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li>
413 <li><a href="/log/xyzzy/foo?style=coal">file log</a></li>
413 <li><a href="/log/xyzzy/foo?style=coal">file log</a></li>
414 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
414 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
415 diff foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
415 diff foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
416 <td><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td>
416 <td><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td>
417 <td><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td>
417 <td><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td>
418
418
419 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'comparison/xyzzy/foo?style=coal' | egrep $REVLINKS
419 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'comparison/xyzzy/foo?style=coal' | egrep $REVLINKS
420 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
420 <li><a href="/shortlog/xyzzy?style=coal">log</a></li>
421 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
421 <li><a href="/graph/xyzzy?style=coal">graph</a></li>
422 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
422 <li><a href="/rev/xyzzy?style=coal">changeset</a></li>
423 <li><a href="/file/xyzzy?style=coal">browse</a></li>
423 <li><a href="/file/xyzzy?style=coal">browse</a></li>
424 <li><a href="/file/xyzzy/foo?style=coal">file</a></li>
424 <li><a href="/file/xyzzy/foo?style=coal">file</a></li>
425 <li><a href="/file/tip/foo?style=coal">latest</a></li>
425 <li><a href="/file/tip/foo?style=coal">latest</a></li>
426 <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li>
426 <li><a href="/diff/xyzzy/foo?style=coal">diff</a></li>
427 <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li>
427 <li><a href="/annotate/xyzzy/foo?style=coal">annotate</a></li>
428 <li><a href="/log/xyzzy/foo?style=coal">file log</a></li>
428 <li><a href="/log/xyzzy/foo?style=coal">file log</a></li>
429 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
429 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
430 comparison foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
430 comparison foo @ 1:<a href="/rev/a7c1559b7bba?style=coal">a7c1559b7bba</a>
431 <td><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td>
431 <td><a href="/file/43c799df6e75/foo?style=coal">43c799df6e75</a> </td>
432 <td><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td>
432 <td><a href="/file/9d8c40cba617/foo?style=coal">9d8c40cba617</a> </td>
433
433
434 (De)referencing symbolic revisions (gitweb)
434 (De)referencing symbolic revisions (gitweb)
435
435
436 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'summary?style=gitweb' | egrep $REVLINKS
436 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'summary?style=gitweb' | egrep $REVLINKS
437 <a href="/file?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a> |
437 <a href="/file?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a> |
438 <a class="list" href="/rev/9d8c40cba617?style=gitweb">
438 <a class="list" href="/rev/9d8c40cba617?style=gitweb">
439 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a> |
439 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a> |
440 <a href="/file/9d8c40cba617?style=gitweb">files</a>
440 <a href="/file/9d8c40cba617?style=gitweb">files</a>
441 <a class="list" href="/rev/a7c1559b7bba?style=gitweb">
441 <a class="list" href="/rev/a7c1559b7bba?style=gitweb">
442 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
442 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
443 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
443 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
444 <a class="list" href="/rev/43c799df6e75?style=gitweb">
444 <a class="list" href="/rev/43c799df6e75?style=gitweb">
445 <a href="/rev/43c799df6e75?style=gitweb">changeset</a> |
445 <a href="/rev/43c799df6e75?style=gitweb">changeset</a> |
446 <a href="/file/43c799df6e75?style=gitweb">files</a>
446 <a href="/file/43c799df6e75?style=gitweb">files</a>
447 <td><a class="list" href="/rev/xyzzy?style=gitweb"><b>xyzzy</b></a></td>
447 <td><a class="list" href="/rev/xyzzy?style=gitweb"><b>xyzzy</b></a></td>
448 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
448 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
449 <a href="/log/a7c1559b7bba?style=gitweb">changelog</a> |
449 <a href="/log/a7c1559b7bba?style=gitweb">changelog</a> |
450 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
450 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
451 <td class="open"><a class="list" href="/shortlog/default?style=gitweb"><b>default</b></a></td>
451 <td class="open"><a class="list" href="/shortlog/default?style=gitweb"><b>default</b></a></td>
452 <a href="/changeset/9d8c40cba617?style=gitweb">changeset</a> |
452 <a href="/changeset/9d8c40cba617?style=gitweb">changeset</a> |
453 <a href="/log/9d8c40cba617?style=gitweb">changelog</a> |
453 <a href="/log/9d8c40cba617?style=gitweb">changelog</a> |
454 <a href="/file/9d8c40cba617?style=gitweb">files</a>
454 <a href="/file/9d8c40cba617?style=gitweb">files</a>
455
455
456 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=gitweb' | egrep $REVLINKS
456 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=gitweb' | egrep $REVLINKS
457 <a href="/log/tip?style=gitweb">changelog</a> |
457 <a href="/log/tip?style=gitweb">changelog</a> |
458 <a href="/graph/tip?style=gitweb">graph</a> |
458 <a href="/graph/tip?style=gitweb">graph</a> |
459 <a href="/file/tip?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a> |
459 <a href="/file/tip?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a> |
460 <br/><a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a> <br/>
460 <br/><a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a> <br/>
461 <a class="list" href="/rev/9d8c40cba617?style=gitweb">
461 <a class="list" href="/rev/9d8c40cba617?style=gitweb">
462 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a> |
462 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a> |
463 <a href="/file/9d8c40cba617?style=gitweb">files</a>
463 <a href="/file/9d8c40cba617?style=gitweb">files</a>
464 <a class="list" href="/rev/a7c1559b7bba?style=gitweb">
464 <a class="list" href="/rev/a7c1559b7bba?style=gitweb">
465 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
465 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
466 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
466 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
467 <a class="list" href="/rev/43c799df6e75?style=gitweb">
467 <a class="list" href="/rev/43c799df6e75?style=gitweb">
468 <a href="/rev/43c799df6e75?style=gitweb">changeset</a> |
468 <a href="/rev/43c799df6e75?style=gitweb">changeset</a> |
469 <a href="/file/43c799df6e75?style=gitweb">files</a>
469 <a href="/file/43c799df6e75?style=gitweb">files</a>
470 <a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a>
470 <a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a>
471
471
472 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log?style=gitweb' | egrep $REVLINKS
472 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log?style=gitweb' | egrep $REVLINKS
473 <a href="/shortlog/tip?style=gitweb">shortlog</a> |
473 <a href="/shortlog/tip?style=gitweb">shortlog</a> |
474 <a href="/graph/tip?style=gitweb">graph</a> |
474 <a href="/graph/tip?style=gitweb">graph</a> |
475 <a href="/file/tip?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a> |
475 <a href="/file/tip?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a> |
476 <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/>
476 <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/>
477 <a class="title" href="/rev/9d8c40cba617?style=gitweb">
477 <a class="title" href="/rev/9d8c40cba617?style=gitweb">
478 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a><br/>
478 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a><br/>
479 <a class="title" href="/rev/a7c1559b7bba?style=gitweb">
479 <a class="title" href="/rev/a7c1559b7bba?style=gitweb">
480 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a><br/>
480 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a><br/>
481 <a class="title" href="/rev/43c799df6e75?style=gitweb">
481 <a class="title" href="/rev/43c799df6e75?style=gitweb">
482 <a href="/rev/43c799df6e75?style=gitweb">changeset</a><br/>
482 <a href="/rev/43c799df6e75?style=gitweb">changeset</a><br/>
483 <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/>
483 <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/>
484
484
485 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph?style=gitweb' | egrep $REVLINKS
485 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph?style=gitweb' | egrep $REVLINKS
486 <a href="/shortlog/tip?style=gitweb">shortlog</a> |
486 <a href="/shortlog/tip?style=gitweb">shortlog</a> |
487 <a href="/log/tip?style=gitweb">changelog</a> |
487 <a href="/log/tip?style=gitweb">changelog</a> |
488 <a href="/file/tip?style=gitweb">files</a> |
488 <a href="/file/tip?style=gitweb">files</a> |
489 <a href="/graph/tip?revcount=30&style=gitweb">less</a>
489 <a href="/graph/tip?revcount=30&style=gitweb">less</a>
490 <a href="/graph/tip?revcount=120&style=gitweb">more</a>
490 <a href="/graph/tip?revcount=120&style=gitweb">more</a>
491 | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a>
491 | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a>
492 <a class="list" href="/rev/9d8c40cba617?style=gitweb"><b>third</b></a>
492 <a class="list" href="/rev/9d8c40cba617?style=gitweb"><b>third</b></a>
493 <a class="list" href="/rev/a7c1559b7bba?style=gitweb"><b>second</b></a>
493 <a class="list" href="/rev/a7c1559b7bba?style=gitweb"><b>second</b></a>
494 <a class="list" href="/rev/43c799df6e75?style=gitweb"><b>first</b></a>
494 <a class="list" href="/rev/43c799df6e75?style=gitweb"><b>first</b></a>
495 <a href="/graph/tip?revcount=30&style=gitweb">less</a>
495 <a href="/graph/tip?revcount=30&style=gitweb">less</a>
496 <a href="/graph/tip?revcount=120&style=gitweb">more</a>
496 <a href="/graph/tip?revcount=120&style=gitweb">more</a>
497 | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a>
497 | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a>
498
498
499 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'tags?style=gitweb' | egrep $REVLINKS
499 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'tags?style=gitweb' | egrep $REVLINKS
500 <td><a class="list" href="/rev/tip?style=gitweb"><b>tip</b></a></td>
500 <td><a class="list" href="/rev/tip?style=gitweb"><b>tip</b></a></td>
501 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a> |
501 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a> |
502 <a href="/log/9d8c40cba617?style=gitweb">changelog</a> |
502 <a href="/log/9d8c40cba617?style=gitweb">changelog</a> |
503 <a href="/file/9d8c40cba617?style=gitweb">files</a>
503 <a href="/file/9d8c40cba617?style=gitweb">files</a>
504
504
505 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'bookmarks?style=gitweb' | egrep $REVLINKS
505 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'bookmarks?style=gitweb' | egrep $REVLINKS
506 <td><a class="list" href="/rev/xyzzy?style=gitweb"><b>xyzzy</b></a></td>
506 <td><a class="list" href="/rev/xyzzy?style=gitweb"><b>xyzzy</b></a></td>
507 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
507 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
508 <a href="/log/a7c1559b7bba?style=gitweb">changelog</a> |
508 <a href="/log/a7c1559b7bba?style=gitweb">changelog</a> |
509 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
509 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
510
510
511 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'branches?style=gitweb' | egrep $REVLINKS
511 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'branches?style=gitweb' | egrep $REVLINKS
512 <td class="open"><a class="list" href="/shortlog/default?style=gitweb"><b>default</b></a></td>
512 <td class="open"><a class="list" href="/shortlog/default?style=gitweb"><b>default</b></a></td>
513 <a href="/changeset/9d8c40cba617?style=gitweb">changeset</a> |
513 <a href="/changeset/9d8c40cba617?style=gitweb">changeset</a> |
514 <a href="/log/9d8c40cba617?style=gitweb">changelog</a> |
514 <a href="/log/9d8c40cba617?style=gitweb">changelog</a> |
515 <a href="/file/9d8c40cba617?style=gitweb">files</a>
515 <a href="/file/9d8c40cba617?style=gitweb">files</a>
516
516
517 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file?style=gitweb' | egrep $REVLINKS
517 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file?style=gitweb' | egrep $REVLINKS
518 <a href="/rev/tip?style=gitweb">changeset</a> | <a href="/archive/tip.zip">zip</a> |
518 <a href="/rev/tip?style=gitweb">changeset</a> | <a href="/archive/tip.zip">zip</a> |
519 <td><a href="/file/tip/?style=gitweb">[up]</a></td>
520 <a href="/file/tip/dir?style=gitweb">dir</a>
519 <a href="/file/tip/dir?style=gitweb">dir</a>
521 <a href="/file/tip/dir/?style=gitweb"></a>
520 <a href="/file/tip/dir/?style=gitweb"></a>
522 <a href="/file/tip/dir?style=gitweb">files</a>
521 <a href="/file/tip/dir?style=gitweb">files</a>
523 <a class="list" href="/file/tip/foo?style=gitweb">foo</a>
522 <a class="list" href="/file/tip/foo?style=gitweb">foo</a>
524 <a href="/file/tip/foo?style=gitweb">file</a> |
523 <a href="/file/tip/foo?style=gitweb">file</a> |
525 <a href="/log/tip/foo?style=gitweb">revisions</a> |
524 <a href="/log/tip/foo?style=gitweb">revisions</a> |
526 <a href="/annotate/tip/foo?style=gitweb">annotate</a>
525 <a href="/annotate/tip/foo?style=gitweb">annotate</a>
527
526
528 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=gitweb&rev=all()' | egrep $REVLINKS
527 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=gitweb&rev=all()' | egrep $REVLINKS
529 <a href="/file?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a>
528 <a href="/file?style=gitweb">files</a> | <a href="/archive/tip.zip">zip</a>
530 <a class="title" href="/rev/9d8c40cba617?style=gitweb">
529 <a class="title" href="/rev/9d8c40cba617?style=gitweb">
531 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a><br/>
530 <a href="/rev/9d8c40cba617?style=gitweb">changeset</a><br/>
532 <a class="title" href="/rev/a7c1559b7bba?style=gitweb">
531 <a class="title" href="/rev/a7c1559b7bba?style=gitweb">
533 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a><br/>
532 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a><br/>
534 <a class="title" href="/rev/43c799df6e75?style=gitweb">
533 <a class="title" href="/rev/43c799df6e75?style=gitweb">
535 <a href="/rev/43c799df6e75?style=gitweb">changeset</a><br/>
534 <a href="/rev/43c799df6e75?style=gitweb">changeset</a><br/>
536
535
537 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'rev/xyzzy?style=gitweb' | egrep $REVLINKS
536 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'rev/xyzzy?style=gitweb' | egrep $REVLINKS
538 <a href="/shortlog/xyzzy?style=gitweb">shortlog</a> |
537 <a href="/shortlog/xyzzy?style=gitweb">shortlog</a> |
539 <a href="/log/xyzzy?style=gitweb">changelog</a> |
538 <a href="/log/xyzzy?style=gitweb">changelog</a> |
540 <a href="/graph/xyzzy?style=gitweb">graph</a> |
539 <a href="/graph/xyzzy?style=gitweb">graph</a> |
541 <a href="/file/xyzzy?style=gitweb">files</a> |
540 <a href="/file/xyzzy?style=gitweb">files</a> |
542 <a href="/raw-rev/xyzzy">raw</a> | <a href="/archive/xyzzy.zip">zip</a> |
541 <a href="/raw-rev/xyzzy">raw</a> | <a href="/archive/xyzzy.zip">zip</a> |
543 <a class="title" href="/raw-rev/a7c1559b7bba">
542 <a class="title" href="/raw-rev/a7c1559b7bba">
544 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
543 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
545 <a class="list" href="/rev/43c799df6e75?style=gitweb">43c799df6e75</a>
544 <a class="list" href="/rev/43c799df6e75?style=gitweb">43c799df6e75</a>
546 <a class="list" href="/rev/9d8c40cba617?style=gitweb">9d8c40cba617</a>
545 <a class="list" href="/rev/9d8c40cba617?style=gitweb">9d8c40cba617</a>
547 <td><a class="list" href="/diff/a7c1559b7bba/foo?style=gitweb">foo</a></td>
546 <td><a class="list" href="/diff/a7c1559b7bba/foo?style=gitweb">foo</a></td>
548 <a href="/file/a7c1559b7bba/foo?style=gitweb">file</a> |
547 <a href="/file/a7c1559b7bba/foo?style=gitweb">file</a> |
549 <a href="/annotate/a7c1559b7bba/foo?style=gitweb">annotate</a> |
548 <a href="/annotate/a7c1559b7bba/foo?style=gitweb">annotate</a> |
550 <a href="/diff/a7c1559b7bba/foo?style=gitweb">diff</a> |
549 <a href="/diff/a7c1559b7bba/foo?style=gitweb">diff</a> |
551 <a href="/comparison/a7c1559b7bba/foo?style=gitweb">comparison</a> |
550 <a href="/comparison/a7c1559b7bba/foo?style=gitweb">comparison</a> |
552 <a href="/log/a7c1559b7bba/foo?style=gitweb">revisions</a>
551 <a href="/log/a7c1559b7bba/foo?style=gitweb">revisions</a>
553
552
554 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog/xyzzy?style=gitweb' | egrep $REVLINKS
553 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog/xyzzy?style=gitweb' | egrep $REVLINKS
555 <a href="/log/xyzzy?style=gitweb">changelog</a> |
554 <a href="/log/xyzzy?style=gitweb">changelog</a> |
556 <a href="/graph/xyzzy?style=gitweb">graph</a> |
555 <a href="/graph/xyzzy?style=gitweb">graph</a> |
557 <a href="/file/xyzzy?style=gitweb">files</a> | <a href="/archive/xyzzy.zip">zip</a> |
556 <a href="/file/xyzzy?style=gitweb">files</a> | <a href="/archive/xyzzy.zip">zip</a> |
558 <br/><a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a> <br/>
557 <br/><a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a> <br/>
559 <a class="list" href="/rev/a7c1559b7bba?style=gitweb">
558 <a class="list" href="/rev/a7c1559b7bba?style=gitweb">
560 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
559 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a> |
561 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
560 <a href="/file/a7c1559b7bba?style=gitweb">files</a>
562 <a class="list" href="/rev/43c799df6e75?style=gitweb">
561 <a class="list" href="/rev/43c799df6e75?style=gitweb">
563 <a href="/rev/43c799df6e75?style=gitweb">changeset</a> |
562 <a href="/rev/43c799df6e75?style=gitweb">changeset</a> |
564 <a href="/file/43c799df6e75?style=gitweb">files</a>
563 <a href="/file/43c799df6e75?style=gitweb">files</a>
565 <a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a>
564 <a href="/shortlog/43c799df6e75?style=gitweb">(0)</a> <a href="/shortlog/tip?style=gitweb">tip</a>
566
565
567 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy?style=gitweb' | egrep $REVLINKS
566 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy?style=gitweb' | egrep $REVLINKS
568 <a href="/shortlog/xyzzy?style=gitweb">shortlog</a> |
567 <a href="/shortlog/xyzzy?style=gitweb">shortlog</a> |
569 <a href="/graph/xyzzy?style=gitweb">graph</a> |
568 <a href="/graph/xyzzy?style=gitweb">graph</a> |
570 <a href="/file/xyzzy?style=gitweb">files</a> | <a href="/archive/xyzzy.zip">zip</a> |
569 <a href="/file/xyzzy?style=gitweb">files</a> | <a href="/archive/xyzzy.zip">zip</a> |
571 <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/>
570 <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/>
572 <a class="title" href="/rev/a7c1559b7bba?style=gitweb">
571 <a class="title" href="/rev/a7c1559b7bba?style=gitweb">
573 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a><br/>
572 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a><br/>
574 <a class="title" href="/rev/43c799df6e75?style=gitweb">
573 <a class="title" href="/rev/43c799df6e75?style=gitweb">
575 <a href="/rev/43c799df6e75?style=gitweb">changeset</a><br/>
574 <a href="/rev/43c799df6e75?style=gitweb">changeset</a><br/>
576 <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/>
575 <a href="/log/43c799df6e75?style=gitweb">(0)</a> <a href="/log/tip?style=gitweb">tip</a> <br/>
577
576
578 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph/xyzzy?style=gitweb' | egrep $REVLINKS
577 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph/xyzzy?style=gitweb' | egrep $REVLINKS
579 <a href="/shortlog/xyzzy?style=gitweb">shortlog</a> |
578 <a href="/shortlog/xyzzy?style=gitweb">shortlog</a> |
580 <a href="/log/xyzzy?style=gitweb">changelog</a> |
579 <a href="/log/xyzzy?style=gitweb">changelog</a> |
581 <a href="/file/xyzzy?style=gitweb">files</a> |
580 <a href="/file/xyzzy?style=gitweb">files</a> |
582 <a href="/graph/xyzzy?revcount=30&style=gitweb">less</a>
581 <a href="/graph/xyzzy?revcount=30&style=gitweb">less</a>
583 <a href="/graph/xyzzy?revcount=120&style=gitweb">more</a>
582 <a href="/graph/xyzzy?revcount=120&style=gitweb">more</a>
584 | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a>
583 | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a>
585 <a class="list" href="/rev/a7c1559b7bba?style=gitweb"><b>second</b></a>
584 <a class="list" href="/rev/a7c1559b7bba?style=gitweb"><b>second</b></a>
586 <a class="list" href="/rev/43c799df6e75?style=gitweb"><b>first</b></a>
585 <a class="list" href="/rev/43c799df6e75?style=gitweb"><b>first</b></a>
587 <a href="/graph/xyzzy?revcount=30&style=gitweb">less</a>
586 <a href="/graph/xyzzy?revcount=30&style=gitweb">less</a>
588 <a href="/graph/xyzzy?revcount=120&style=gitweb">more</a>
587 <a href="/graph/xyzzy?revcount=120&style=gitweb">more</a>
589 | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a>
588 | <a href="/graph/43c799df6e75?style=gitweb">(0)</a> <a href="/graph/tip?style=gitweb">tip</a>
590
589
591 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy?style=gitweb' | egrep $REVLINKS
590 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy?style=gitweb' | egrep $REVLINKS
592 <a href="/rev/xyzzy?style=gitweb">changeset</a> | <a href="/archive/xyzzy.zip">zip</a> |
591 <a href="/rev/xyzzy?style=gitweb">changeset</a> | <a href="/archive/xyzzy.zip">zip</a> |
593 <td><a href="/file/xyzzy/?style=gitweb">[up]</a></td>
594 <a href="/file/xyzzy/dir?style=gitweb">dir</a>
592 <a href="/file/xyzzy/dir?style=gitweb">dir</a>
595 <a href="/file/xyzzy/dir/?style=gitweb"></a>
593 <a href="/file/xyzzy/dir/?style=gitweb"></a>
596 <a href="/file/xyzzy/dir?style=gitweb">files</a>
594 <a href="/file/xyzzy/dir?style=gitweb">files</a>
597 <a class="list" href="/file/xyzzy/foo?style=gitweb">foo</a>
595 <a class="list" href="/file/xyzzy/foo?style=gitweb">foo</a>
598 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
596 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
599 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
597 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
600 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a>
598 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a>
601
599
602 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy/foo?style=gitweb' | egrep $REVLINKS
600 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy/foo?style=gitweb' | egrep $REVLINKS
603 <a href="/file/xyzzy/?style=gitweb">files</a> |
601 <a href="/file/xyzzy/?style=gitweb">files</a> |
604 <a href="/rev/xyzzy?style=gitweb">changeset</a> |
602 <a href="/rev/xyzzy?style=gitweb">changeset</a> |
605 <a href="/file/tip/foo?style=gitweb">latest</a> |
603 <a href="/file/tip/foo?style=gitweb">latest</a> |
606 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
604 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
607 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> |
605 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> |
608 <a href="/diff/xyzzy/foo?style=gitweb">diff</a> |
606 <a href="/diff/xyzzy/foo?style=gitweb">diff</a> |
609 <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> |
607 <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> |
610 <a href="/raw-file/xyzzy/foo">raw</a> |
608 <a href="/raw-file/xyzzy/foo">raw</a> |
611 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
609 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
612 <a class="list" href="/file/43c799df6e75/foo?style=gitweb">
610 <a class="list" href="/file/43c799df6e75/foo?style=gitweb">
613 <a class="list" href="/file/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a></td>
611 <a class="list" href="/file/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a></td>
614
612
615 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy/foo?style=gitweb' | egrep $REVLINKS
613 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy/foo?style=gitweb' | egrep $REVLINKS
616 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
614 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
617 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> |
615 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> |
618 <a href="/diff/xyzzy/foo?style=gitweb">diff</a> |
616 <a href="/diff/xyzzy/foo?style=gitweb">diff</a> |
619 <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> |
617 <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> |
620 <a href="/rss-log/tip/foo">rss</a> |
618 <a href="/rss-log/tip/foo">rss</a> |
621 <a href="/log/43c799df6e75/foo?style=gitweb">(0)</a> <a href="/log/tip/foo?style=gitweb">tip</a>
619 <a href="/log/43c799df6e75/foo?style=gitweb">(0)</a> <a href="/log/tip/foo?style=gitweb">tip</a>
622 <a class="list" href="/rev/a7c1559b7bba?style=gitweb">
620 <a class="list" href="/rev/a7c1559b7bba?style=gitweb">
623 <a href="/file/a7c1559b7bba/foo?style=gitweb">file</a> |
621 <a href="/file/a7c1559b7bba/foo?style=gitweb">file</a> |
624 <a href="/diff/a7c1559b7bba/foo?style=gitweb">diff</a> |
622 <a href="/diff/a7c1559b7bba/foo?style=gitweb">diff</a> |
625 <a href="/annotate/a7c1559b7bba/foo?style=gitweb">annotate</a>
623 <a href="/annotate/a7c1559b7bba/foo?style=gitweb">annotate</a>
626 <a class="list" href="/rev/43c799df6e75?style=gitweb">
624 <a class="list" href="/rev/43c799df6e75?style=gitweb">
627 <a href="/file/43c799df6e75/foo?style=gitweb">file</a> |
625 <a href="/file/43c799df6e75/foo?style=gitweb">file</a> |
628 <a href="/diff/43c799df6e75/foo?style=gitweb">diff</a> |
626 <a href="/diff/43c799df6e75/foo?style=gitweb">diff</a> |
629 <a href="/annotate/43c799df6e75/foo?style=gitweb">annotate</a>
627 <a href="/annotate/43c799df6e75/foo?style=gitweb">annotate</a>
630 <a href="/log/xyzzy/foo?revcount=30&style=gitweb">less</a>
628 <a href="/log/xyzzy/foo?revcount=30&style=gitweb">less</a>
631 <a href="/log/xyzzy/foo?revcount=120&style=gitweb">more</a>
629 <a href="/log/xyzzy/foo?revcount=120&style=gitweb">more</a>
632 <a href="/log/43c799df6e75/foo?style=gitweb">(0)</a> <a href="/log/tip/foo?style=gitweb">tip</a>
630 <a href="/log/43c799df6e75/foo?style=gitweb">(0)</a> <a href="/log/tip/foo?style=gitweb">tip</a>
633
631
634 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'annotate/xyzzy/foo?style=gitweb' | egrep $REVLINKS
632 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'annotate/xyzzy/foo?style=gitweb' | egrep $REVLINKS
635 <a href="/file/xyzzy/?style=gitweb">files</a> |
633 <a href="/file/xyzzy/?style=gitweb">files</a> |
636 <a href="/rev/xyzzy?style=gitweb">changeset</a> |
634 <a href="/rev/xyzzy?style=gitweb">changeset</a> |
637 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
635 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
638 <a href="/file/tip/foo?style=gitweb">latest</a> |
636 <a href="/file/tip/foo?style=gitweb">latest</a> |
639 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
637 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
640 <a href="/diff/xyzzy/foo?style=gitweb">diff</a> |
638 <a href="/diff/xyzzy/foo?style=gitweb">diff</a> |
641 <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> |
639 <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> |
642 <a href="/raw-file/xyzzy/foo">raw</a> |
640 <a href="/raw-file/xyzzy/foo">raw</a> |
643 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
641 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
644 <a class="list" href="/annotate/43c799df6e75/foo?style=gitweb">
642 <a class="list" href="/annotate/43c799df6e75/foo?style=gitweb">
645 <a class="list" href="/annotate/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a></td>
643 <a class="list" href="/annotate/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a></td>
646 <a href="/annotate/43c799df6e75/foo?style=gitweb#l1">
644 <a href="/annotate/43c799df6e75/foo?style=gitweb#l1">
647 <a href="/annotate/43c799df6e75/foo?style=gitweb#l1">
645 <a href="/annotate/43c799df6e75/foo?style=gitweb#l1">
648 <a href="/diff/43c799df6e75/foo?style=gitweb">diff</a>
646 <a href="/diff/43c799df6e75/foo?style=gitweb">diff</a>
649 <a href="/rev/43c799df6e75?style=gitweb">changeset</a>
647 <a href="/rev/43c799df6e75?style=gitweb">changeset</a>
650 <a href="/annotate/a7c1559b7bba/foo?style=gitweb#l2">
648 <a href="/annotate/a7c1559b7bba/foo?style=gitweb#l2">
651 <a href="/annotate/a7c1559b7bba/foo?style=gitweb#l2">
649 <a href="/annotate/a7c1559b7bba/foo?style=gitweb#l2">
652 <a href="/annotate/43c799df6e75/foo?style=gitweb">0</a></div>
650 <a href="/annotate/43c799df6e75/foo?style=gitweb">0</a></div>
653 <a href="/diff/a7c1559b7bba/foo?style=gitweb">diff</a>
651 <a href="/diff/a7c1559b7bba/foo?style=gitweb">diff</a>
654 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a>
652 <a href="/rev/a7c1559b7bba?style=gitweb">changeset</a>
655
653
656 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'diff/xyzzy/foo?style=gitweb' | egrep $REVLINKS
654 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'diff/xyzzy/foo?style=gitweb' | egrep $REVLINKS
657 <a href="/file/xyzzy?style=gitweb">files</a> |
655 <a href="/file/xyzzy?style=gitweb">files</a> |
658 <a href="/rev/xyzzy?style=gitweb">changeset</a> |
656 <a href="/rev/xyzzy?style=gitweb">changeset</a> |
659 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
657 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
660 <a href="/file/tip/foo?style=gitweb">latest</a> |
658 <a href="/file/tip/foo?style=gitweb">latest</a> |
661 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
659 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
662 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> |
660 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> |
663 <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> |
661 <a href="/comparison/xyzzy/foo?style=gitweb">comparison</a> |
664 <a href="/raw-diff/xyzzy/foo">raw</a> |
662 <a href="/raw-diff/xyzzy/foo">raw</a> |
665 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
663 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
666 <a class="list" href="/diff/43c799df6e75/foo?style=gitweb">
664 <a class="list" href="/diff/43c799df6e75/foo?style=gitweb">
667 <a class="list" href="/diff/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a>
665 <a class="list" href="/diff/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a>
668
666
669 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'comparison/xyzzy/foo?style=gitweb' | egrep $REVLINKS
667 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'comparison/xyzzy/foo?style=gitweb' | egrep $REVLINKS
670 <a href="/file/xyzzy?style=gitweb">files</a> |
668 <a href="/file/xyzzy?style=gitweb">files</a> |
671 <a href="/rev/xyzzy?style=gitweb">changeset</a> |
669 <a href="/rev/xyzzy?style=gitweb">changeset</a> |
672 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
670 <a href="/file/xyzzy/foo?style=gitweb">file</a> |
673 <a href="/file/tip/foo?style=gitweb">latest</a> |
671 <a href="/file/tip/foo?style=gitweb">latest</a> |
674 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
672 <a href="/log/xyzzy/foo?style=gitweb">revisions</a> |
675 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> |
673 <a href="/annotate/xyzzy/foo?style=gitweb">annotate</a> |
676 <a href="/diff/xyzzy/foo?style=gitweb">diff</a> |
674 <a href="/diff/xyzzy/foo?style=gitweb">diff</a> |
677 <a href="/raw-diff/xyzzy/foo">raw</a> |
675 <a href="/raw-diff/xyzzy/foo">raw</a> |
678 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
676 <td style="font-family:monospace"><a class="list" href="/rev/a7c1559b7bba?style=gitweb">a7c1559b7bba</a></td>
679 <a class="list" href="/comparison/43c799df6e75/foo?style=gitweb">
677 <a class="list" href="/comparison/43c799df6e75/foo?style=gitweb">
680 <a class="list" href="/comparison/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a>
678 <a class="list" href="/comparison/9d8c40cba617/foo?style=gitweb">9d8c40cba617</a>
681
679
682 (De)referencing symbolic revisions (monoblue)
680 (De)referencing symbolic revisions (monoblue)
683
681
684 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'summary?style=monoblue' | egrep $REVLINKS
682 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'summary?style=monoblue' | egrep $REVLINKS
685 <li><a href="/archive/tip.zip">zip</a></li>
683 <li><a href="/archive/tip.zip">zip</a></li>
686 <a href="/rev/9d8c40cba617?style=monoblue">
684 <a href="/rev/9d8c40cba617?style=monoblue">
687 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
685 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
688 <a href="/file/9d8c40cba617?style=monoblue">files</a>
686 <a href="/file/9d8c40cba617?style=monoblue">files</a>
689 <a href="/rev/a7c1559b7bba?style=monoblue">
687 <a href="/rev/a7c1559b7bba?style=monoblue">
690 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
688 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
691 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
689 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
692 <a href="/rev/43c799df6e75?style=monoblue">
690 <a href="/rev/43c799df6e75?style=monoblue">
693 <a href="/rev/43c799df6e75?style=monoblue">changeset</a> |
691 <a href="/rev/43c799df6e75?style=monoblue">changeset</a> |
694 <a href="/file/43c799df6e75?style=monoblue">files</a>
692 <a href="/file/43c799df6e75?style=monoblue">files</a>
695 <td><a href="/rev/xyzzy?style=monoblue">xyzzy</a></td>
693 <td><a href="/rev/xyzzy?style=monoblue">xyzzy</a></td>
696 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
694 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
697 <a href="/log/a7c1559b7bba?style=monoblue">changelog</a> |
695 <a href="/log/a7c1559b7bba?style=monoblue">changelog</a> |
698 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
696 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
699 <td class="open"><a href="/shortlog/default?style=monoblue">default</a></td>
697 <td class="open"><a href="/shortlog/default?style=monoblue">default</a></td>
700 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
698 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
701 <a href="/log/9d8c40cba617?style=monoblue">changelog</a> |
699 <a href="/log/9d8c40cba617?style=monoblue">changelog</a> |
702 <a href="/file/9d8c40cba617?style=monoblue">files</a>
700 <a href="/file/9d8c40cba617?style=monoblue">files</a>
703
701
704 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=monoblue' | egrep $REVLINKS
702 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=monoblue' | egrep $REVLINKS
705 <li><a href="/graph/tip?style=monoblue">graph</a></li>
703 <li><a href="/graph/tip?style=monoblue">graph</a></li>
706 <li><a href="/file/tip?style=monoblue">files</a></li>
704 <li><a href="/file/tip?style=monoblue">files</a></li>
707 <li><a href="/archive/tip.zip">zip</a></li>
705 <li><a href="/archive/tip.zip">zip</a></li>
708 <a href="/rev/9d8c40cba617?style=monoblue">
706 <a href="/rev/9d8c40cba617?style=monoblue">
709 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
707 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
710 <a href="/file/9d8c40cba617?style=monoblue">files</a>
708 <a href="/file/9d8c40cba617?style=monoblue">files</a>
711 <a href="/rev/a7c1559b7bba?style=monoblue">
709 <a href="/rev/a7c1559b7bba?style=monoblue">
712 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
710 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
713 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
711 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
714 <a href="/rev/43c799df6e75?style=monoblue">
712 <a href="/rev/43c799df6e75?style=monoblue">
715 <a href="/rev/43c799df6e75?style=monoblue">changeset</a> |
713 <a href="/rev/43c799df6e75?style=monoblue">changeset</a> |
716 <a href="/file/43c799df6e75?style=monoblue">files</a>
714 <a href="/file/43c799df6e75?style=monoblue">files</a>
717 <a href="/shortlog/43c799df6e75?style=monoblue">(0)</a> <a href="/shortlog/tip?style=monoblue">tip</a>
715 <a href="/shortlog/43c799df6e75?style=monoblue">(0)</a> <a href="/shortlog/tip?style=monoblue">tip</a>
718
716
719 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log?style=monoblue' | egrep $REVLINKS
717 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log?style=monoblue' | egrep $REVLINKS
720 <li><a href="/graph/tip?style=monoblue">graph</a></li>
718 <li><a href="/graph/tip?style=monoblue">graph</a></li>
721 <li><a href="/file/tip?style=monoblue">files</a></li>
719 <li><a href="/file/tip?style=monoblue">files</a></li>
722 <li><a href="/archive/tip.zip">zip</a></li>
720 <li><a href="/archive/tip.zip">zip</a></li>
723 <a class="title" href="/rev/9d8c40cba617?style=monoblue">
721 <a class="title" href="/rev/9d8c40cba617?style=monoblue">
724 <a class="title" href="/rev/a7c1559b7bba?style=monoblue">
722 <a class="title" href="/rev/a7c1559b7bba?style=monoblue">
725 <a class="title" href="/rev/43c799df6e75?style=monoblue">
723 <a class="title" href="/rev/43c799df6e75?style=monoblue">
726 <a href="/log/43c799df6e75?style=monoblue">(0)</a> <a href="/log/tip?style=monoblue">tip</a>
724 <a href="/log/43c799df6e75?style=monoblue">(0)</a> <a href="/log/tip?style=monoblue">tip</a>
727
725
728 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph?style=monoblue' | egrep $REVLINKS
726 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph?style=monoblue' | egrep $REVLINKS
729 <li><a href="/file/tip?style=monoblue">files</a></li>
727 <li><a href="/file/tip?style=monoblue">files</a></li>
730 <a href="/rev/9d8c40cba617?style=monoblue">third</a>
728 <a href="/rev/9d8c40cba617?style=monoblue">third</a>
731 <a href="/rev/a7c1559b7bba?style=monoblue">second</a>
729 <a href="/rev/a7c1559b7bba?style=monoblue">second</a>
732 <a href="/rev/43c799df6e75?style=monoblue">first</a>
730 <a href="/rev/43c799df6e75?style=monoblue">first</a>
733 <a href="/graph/tip?revcount=30&style=monoblue">less</a>
731 <a href="/graph/tip?revcount=30&style=monoblue">less</a>
734 <a href="/graph/tip?revcount=120&style=monoblue">more</a>
732 <a href="/graph/tip?revcount=120&style=monoblue">more</a>
735 | <a href="/graph/43c799df6e75?style=monoblue">(0)</a> <a href="/graph/tip?style=monoblue">tip</a>
733 | <a href="/graph/43c799df6e75?style=monoblue">(0)</a> <a href="/graph/tip?style=monoblue">tip</a>
736
734
737 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'tags?style=monoblue' | egrep $REVLINKS
735 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'tags?style=monoblue' | egrep $REVLINKS
738 <td><a href="/rev/tip?style=monoblue">tip</a></td>
736 <td><a href="/rev/tip?style=monoblue">tip</a></td>
739 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
737 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
740 <a href="/log/9d8c40cba617?style=monoblue">changelog</a> |
738 <a href="/log/9d8c40cba617?style=monoblue">changelog</a> |
741 <a href="/file/9d8c40cba617?style=monoblue">files</a>
739 <a href="/file/9d8c40cba617?style=monoblue">files</a>
742
740
743 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'bookmarks?style=monoblue' | egrep $REVLINKS
741 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'bookmarks?style=monoblue' | egrep $REVLINKS
744 <td><a href="/rev/xyzzy?style=monoblue">xyzzy</a></td>
742 <td><a href="/rev/xyzzy?style=monoblue">xyzzy</a></td>
745 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
743 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
746 <a href="/log/a7c1559b7bba?style=monoblue">changelog</a> |
744 <a href="/log/a7c1559b7bba?style=monoblue">changelog</a> |
747 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
745 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
748
746
749 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'branches?style=monoblue' | egrep $REVLINKS
747 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'branches?style=monoblue' | egrep $REVLINKS
750 <td class="open"><a href="/shortlog/default?style=monoblue">default</a></td>
748 <td class="open"><a href="/shortlog/default?style=monoblue">default</a></td>
751 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
749 <a href="/rev/9d8c40cba617?style=monoblue">changeset</a> |
752 <a href="/log/9d8c40cba617?style=monoblue">changelog</a> |
750 <a href="/log/9d8c40cba617?style=monoblue">changelog</a> |
753 <a href="/file/9d8c40cba617?style=monoblue">files</a>
751 <a href="/file/9d8c40cba617?style=monoblue">files</a>
754
752
755 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file?style=monoblue' | egrep $REVLINKS
753 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file?style=monoblue' | egrep $REVLINKS
756 <li><a href="/graph/tip?style=monoblue">graph</a></li>
754 <li><a href="/graph/tip?style=monoblue">graph</a></li>
757 <li><a href="/rev/tip?style=monoblue">changeset</a></li>
755 <li><a href="/rev/tip?style=monoblue">changeset</a></li>
758 <li><a href="/archive/tip.zip">zip</a></li>
756 <li><a href="/archive/tip.zip">zip</a></li>
759 <td><a href="/file/tip/?style=monoblue">[up]</a></td>
757 <td><a href="/file/tip/?style=monoblue">[up]</a></td>
760 <a href="/file/tip/dir?style=monoblue">dir</a>
758 <a href="/file/tip/dir?style=monoblue">dir</a>
761 <a href="/file/tip/dir/?style=monoblue"></a>
759 <a href="/file/tip/dir/?style=monoblue"></a>
762 <td><a href="/file/tip/dir?style=monoblue">files</a></td>
760 <td><a href="/file/tip/dir?style=monoblue">files</a></td>
763 <td><a href="/file/tip/foo?style=monoblue">foo</a></td>
761 <td><a href="/file/tip/foo?style=monoblue">foo</a></td>
764 <a href="/file/tip/foo?style=monoblue">file</a> |
762 <a href="/file/tip/foo?style=monoblue">file</a> |
765 <a href="/log/tip/foo?style=monoblue">revisions</a> |
763 <a href="/log/tip/foo?style=monoblue">revisions</a> |
766 <a href="/annotate/tip/foo?style=monoblue">annotate</a>
764 <a href="/annotate/tip/foo?style=monoblue">annotate</a>
767
765
768 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=monoblue&rev=all()' | egrep $REVLINKS
766 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=monoblue&rev=all()' | egrep $REVLINKS
769 <li><a href="/archive/tip.zip">zip</a></li>
767 <li><a href="/archive/tip.zip">zip</a></li>
770 <a class="title" href="/rev/9d8c40cba617?style=monoblue">
768 <a class="title" href="/rev/9d8c40cba617?style=monoblue">
771 <a class="title" href="/rev/a7c1559b7bba?style=monoblue">
769 <a class="title" href="/rev/a7c1559b7bba?style=monoblue">
772 <a class="title" href="/rev/43c799df6e75?style=monoblue">
770 <a class="title" href="/rev/43c799df6e75?style=monoblue">
773
771
774 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'rev/xyzzy?style=monoblue' | egrep $REVLINKS
772 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'rev/xyzzy?style=monoblue' | egrep $REVLINKS
775 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
773 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
776 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
774 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
777 <li><a href="/raw-rev/xyzzy">raw</a></li>
775 <li><a href="/raw-rev/xyzzy">raw</a></li>
778 <li><a href="/archive/xyzzy.zip">zip</a></li>
776 <li><a href="/archive/xyzzy.zip">zip</a></li>
779 <a href="/raw-rev/a7c1559b7bba">
777 <a href="/raw-rev/a7c1559b7bba">
780 <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
778 <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
781 <dd><a href="/rev/43c799df6e75?style=monoblue">43c799df6e75</a></dd>
779 <dd><a href="/rev/43c799df6e75?style=monoblue">43c799df6e75</a></dd>
782 <dd><a href="/rev/9d8c40cba617?style=monoblue">9d8c40cba617</a></dd>
780 <dd><a href="/rev/9d8c40cba617?style=monoblue">9d8c40cba617</a></dd>
783 <td><a href="/diff/a7c1559b7bba/foo?style=monoblue">foo</a></td>
781 <td><a href="/diff/a7c1559b7bba/foo?style=monoblue">foo</a></td>
784 <a href="/file/a7c1559b7bba/foo?style=monoblue">file</a> |
782 <a href="/file/a7c1559b7bba/foo?style=monoblue">file</a> |
785 <a href="/annotate/a7c1559b7bba/foo?style=monoblue">annotate</a> |
783 <a href="/annotate/a7c1559b7bba/foo?style=monoblue">annotate</a> |
786 <a href="/diff/a7c1559b7bba/foo?style=monoblue">diff</a> |
784 <a href="/diff/a7c1559b7bba/foo?style=monoblue">diff</a> |
787 <a href="/comparison/a7c1559b7bba/foo?style=monoblue">comparison</a> |
785 <a href="/comparison/a7c1559b7bba/foo?style=monoblue">comparison</a> |
788 <a href="/log/a7c1559b7bba/foo?style=monoblue">revisions</a>
786 <a href="/log/a7c1559b7bba/foo?style=monoblue">revisions</a>
789
787
790 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog/xyzzy?style=monoblue' | egrep $REVLINKS
788 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog/xyzzy?style=monoblue' | egrep $REVLINKS
791 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
789 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
792 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
790 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
793 <li><a href="/archive/xyzzy.zip">zip</a></li>
791 <li><a href="/archive/xyzzy.zip">zip</a></li>
794 <a href="/rev/a7c1559b7bba?style=monoblue">
792 <a href="/rev/a7c1559b7bba?style=monoblue">
795 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
793 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a> |
796 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
794 <a href="/file/a7c1559b7bba?style=monoblue">files</a>
797 <a href="/rev/43c799df6e75?style=monoblue">
795 <a href="/rev/43c799df6e75?style=monoblue">
798 <a href="/rev/43c799df6e75?style=monoblue">changeset</a> |
796 <a href="/rev/43c799df6e75?style=monoblue">changeset</a> |
799 <a href="/file/43c799df6e75?style=monoblue">files</a>
797 <a href="/file/43c799df6e75?style=monoblue">files</a>
800 <a href="/shortlog/43c799df6e75?style=monoblue">(0)</a> <a href="/shortlog/tip?style=monoblue">tip</a>
798 <a href="/shortlog/43c799df6e75?style=monoblue">(0)</a> <a href="/shortlog/tip?style=monoblue">tip</a>
801
799
802 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy?style=monoblue' | egrep $REVLINKS
800 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy?style=monoblue' | egrep $REVLINKS
803 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
801 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
804 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
802 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
805 <li><a href="/archive/xyzzy.zip">zip</a></li>
803 <li><a href="/archive/xyzzy.zip">zip</a></li>
806 <a class="title" href="/rev/a7c1559b7bba?style=monoblue">
804 <a class="title" href="/rev/a7c1559b7bba?style=monoblue">
807 <a class="title" href="/rev/43c799df6e75?style=monoblue">
805 <a class="title" href="/rev/43c799df6e75?style=monoblue">
808 <a href="/log/43c799df6e75?style=monoblue">(0)</a> <a href="/log/tip?style=monoblue">tip</a>
806 <a href="/log/43c799df6e75?style=monoblue">(0)</a> <a href="/log/tip?style=monoblue">tip</a>
809
807
810 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph/xyzzy?style=monoblue' | egrep $REVLINKS
808 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph/xyzzy?style=monoblue' | egrep $REVLINKS
811 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
809 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
812 <a href="/rev/a7c1559b7bba?style=monoblue">second</a>
810 <a href="/rev/a7c1559b7bba?style=monoblue">second</a>
813 <a href="/rev/43c799df6e75?style=monoblue">first</a>
811 <a href="/rev/43c799df6e75?style=monoblue">first</a>
814 <a href="/graph/xyzzy?revcount=30&style=monoblue">less</a>
812 <a href="/graph/xyzzy?revcount=30&style=monoblue">less</a>
815 <a href="/graph/xyzzy?revcount=120&style=monoblue">more</a>
813 <a href="/graph/xyzzy?revcount=120&style=monoblue">more</a>
816 | <a href="/graph/43c799df6e75?style=monoblue">(0)</a> <a href="/graph/tip?style=monoblue">tip</a>
814 | <a href="/graph/43c799df6e75?style=monoblue">(0)</a> <a href="/graph/tip?style=monoblue">tip</a>
817
815
818 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy?style=monoblue' | egrep $REVLINKS
816 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy?style=monoblue' | egrep $REVLINKS
819 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
817 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
820 <li><a href="/rev/xyzzy?style=monoblue">changeset</a></li>
818 <li><a href="/rev/xyzzy?style=monoblue">changeset</a></li>
821 <li><a href="/archive/xyzzy.zip">zip</a></li>
819 <li><a href="/archive/xyzzy.zip">zip</a></li>
822 <td><a href="/file/xyzzy/?style=monoblue">[up]</a></td>
820 <td><a href="/file/xyzzy/?style=monoblue">[up]</a></td>
823 <a href="/file/xyzzy/dir?style=monoblue">dir</a>
821 <a href="/file/xyzzy/dir?style=monoblue">dir</a>
824 <a href="/file/xyzzy/dir/?style=monoblue"></a>
822 <a href="/file/xyzzy/dir/?style=monoblue"></a>
825 <td><a href="/file/xyzzy/dir?style=monoblue">files</a></td>
823 <td><a href="/file/xyzzy/dir?style=monoblue">files</a></td>
826 <td><a href="/file/xyzzy/foo?style=monoblue">foo</a></td>
824 <td><a href="/file/xyzzy/foo?style=monoblue">foo</a></td>
827 <a href="/file/xyzzy/foo?style=monoblue">file</a> |
825 <a href="/file/xyzzy/foo?style=monoblue">file</a> |
828 <a href="/log/xyzzy/foo?style=monoblue">revisions</a> |
826 <a href="/log/xyzzy/foo?style=monoblue">revisions</a> |
829 <a href="/annotate/xyzzy/foo?style=monoblue">annotate</a>
827 <a href="/annotate/xyzzy/foo?style=monoblue">annotate</a>
830
828
831 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy/foo?style=monoblue' | egrep $REVLINKS
829 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy/foo?style=monoblue' | egrep $REVLINKS
832 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
830 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
833 <li><a href="/file/xyzzy/?style=monoblue">files</a></li>
831 <li><a href="/file/xyzzy/?style=monoblue">files</a></li>
834 <li><a href="/file/tip/foo?style=monoblue">latest</a></li>
832 <li><a href="/file/tip/foo?style=monoblue">latest</a></li>
835 <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li>
833 <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li>
836 <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li>
834 <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li>
837 <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li>
835 <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li>
838 <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li>
836 <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li>
839 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
837 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
840 <dd><a class="list" href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
838 <dd><a class="list" href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
841 <a href="/file/43c799df6e75/foo?style=monoblue">
839 <a href="/file/43c799df6e75/foo?style=monoblue">
842 <a href="/file/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a>
840 <a href="/file/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a>
843
841
844 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy/foo?style=monoblue' | egrep $REVLINKS
842 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy/foo?style=monoblue' | egrep $REVLINKS
845 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
843 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
846 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
844 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
847 <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li>
845 <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li>
848 <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li>
846 <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li>
849 <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li>
847 <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li>
850 <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li>
848 <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li>
851 <li><a href="/rss-log/tip/foo">rss</a></li>
849 <li><a href="/rss-log/tip/foo">rss</a></li>
852 <a href="/rev/a7c1559b7bba?style=monoblue">
850 <a href="/rev/a7c1559b7bba?style=monoblue">
853 <a href="/file/a7c1559b7bba/foo?style=monoblue">file</a> |
851 <a href="/file/a7c1559b7bba/foo?style=monoblue">file</a> |
854 <a href="/diff/a7c1559b7bba/foo?style=monoblue">diff</a> |
852 <a href="/diff/a7c1559b7bba/foo?style=monoblue">diff</a> |
855 <a href="/annotate/a7c1559b7bba/foo?style=monoblue">annotate</a>
853 <a href="/annotate/a7c1559b7bba/foo?style=monoblue">annotate</a>
856 <a href="/rev/43c799df6e75?style=monoblue">
854 <a href="/rev/43c799df6e75?style=monoblue">
857 <a href="/file/43c799df6e75/foo?style=monoblue">file</a> |
855 <a href="/file/43c799df6e75/foo?style=monoblue">file</a> |
858 <a href="/diff/43c799df6e75/foo?style=monoblue">diff</a> |
856 <a href="/diff/43c799df6e75/foo?style=monoblue">diff</a> |
859 <a href="/annotate/43c799df6e75/foo?style=monoblue">annotate</a>
857 <a href="/annotate/43c799df6e75/foo?style=monoblue">annotate</a>
860 <a href="/log/43c799df6e75/foo?style=monoblue">(0)</a> <a href="/log/tip/foo?style=monoblue">tip</a>
858 <a href="/log/43c799df6e75/foo?style=monoblue">(0)</a> <a href="/log/tip/foo?style=monoblue">tip</a>
861
859
862 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'annotate/xyzzy/foo?style=monoblue' | egrep $REVLINKS
860 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'annotate/xyzzy/foo?style=monoblue' | egrep $REVLINKS
863 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
861 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
864 <li><a href="/file/xyzzy/?style=monoblue">files</a></li>
862 <li><a href="/file/xyzzy/?style=monoblue">files</a></li>
865 <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li>
863 <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li>
866 <li><a href="/file/tip/foo?style=monoblue">latest</a></li>
864 <li><a href="/file/tip/foo?style=monoblue">latest</a></li>
867 <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li>
865 <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li>
868 <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li>
866 <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li>
869 <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li>
867 <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li>
870 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
868 <li><a href="/raw-file/xyzzy/foo">raw</a></li>
871 <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
869 <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
872 <a href="/annotate/43c799df6e75/foo?style=monoblue">
870 <a href="/annotate/43c799df6e75/foo?style=monoblue">
873 <a href="/annotate/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a>
871 <a href="/annotate/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a>
874 <a href="/annotate/43c799df6e75/foo?style=monoblue#l1">
872 <a href="/annotate/43c799df6e75/foo?style=monoblue#l1">
875 <a href="/annotate/43c799df6e75/foo?style=monoblue#l1">
873 <a href="/annotate/43c799df6e75/foo?style=monoblue#l1">
876 <a href="/diff/43c799df6e75/foo?style=monoblue">diff</a>
874 <a href="/diff/43c799df6e75/foo?style=monoblue">diff</a>
877 <a href="/rev/43c799df6e75?style=monoblue">changeset</a>
875 <a href="/rev/43c799df6e75?style=monoblue">changeset</a>
878 <a href="/annotate/a7c1559b7bba/foo?style=monoblue#l2">
876 <a href="/annotate/a7c1559b7bba/foo?style=monoblue#l2">
879 <a href="/annotate/a7c1559b7bba/foo?style=monoblue#l2">
877 <a href="/annotate/a7c1559b7bba/foo?style=monoblue#l2">
880 <a href="/annotate/43c799df6e75/foo?style=monoblue">0</a></div>
878 <a href="/annotate/43c799df6e75/foo?style=monoblue">0</a></div>
881 <a href="/diff/a7c1559b7bba/foo?style=monoblue">diff</a>
879 <a href="/diff/a7c1559b7bba/foo?style=monoblue">diff</a>
882 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a>
880 <a href="/rev/a7c1559b7bba?style=monoblue">changeset</a>
883
881
884 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'diff/xyzzy/foo?style=monoblue' | egrep $REVLINKS
882 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'diff/xyzzy/foo?style=monoblue' | egrep $REVLINKS
885 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
883 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
886 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
884 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
887 <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li>
885 <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li>
888 <li><a href="/file/tip/foo?style=monoblue">latest</a></li>
886 <li><a href="/file/tip/foo?style=monoblue">latest</a></li>
889 <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li>
887 <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li>
890 <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li>
888 <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li>
891 <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li>
889 <li><a href="/comparison/xyzzy/foo?style=monoblue">comparison</a></li>
892 <li><a href="/raw-diff/xyzzy/foo">raw</a></li>
890 <li><a href="/raw-diff/xyzzy/foo">raw</a></li>
893 <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
891 <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
894 <dd><a href="/diff/43c799df6e75/foo?style=monoblue">43c799df6e75</a></dd>
892 <dd><a href="/diff/43c799df6e75/foo?style=monoblue">43c799df6e75</a></dd>
895 <dd><a href="/diff/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a></dd>
893 <dd><a href="/diff/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a></dd>
896
894
897 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'comparison/xyzzy/foo?style=monoblue' | egrep $REVLINKS
895 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'comparison/xyzzy/foo?style=monoblue' | egrep $REVLINKS
898 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
896 <li><a href="/graph/xyzzy?style=monoblue">graph</a></li>
899 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
897 <li><a href="/file/xyzzy?style=monoblue">files</a></li>
900 <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li>
898 <li><a href="/file/xyzzy/foo?style=monoblue">file</a></li>
901 <li><a href="/file/tip/foo?style=monoblue">latest</a></li>
899 <li><a href="/file/tip/foo?style=monoblue">latest</a></li>
902 <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li>
900 <li><a href="/log/xyzzy/foo?style=monoblue">revisions</a></li>
903 <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li>
901 <li><a href="/annotate/xyzzy/foo?style=monoblue">annotate</a></li>
904 <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li>
902 <li><a href="/diff/xyzzy/foo?style=monoblue">diff</a></li>
905 <li><a href="/raw-diff/xyzzy/foo">raw</a></li>
903 <li><a href="/raw-diff/xyzzy/foo">raw</a></li>
906 <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
904 <dd><a href="/rev/a7c1559b7bba?style=monoblue">a7c1559b7bba</a></dd>
907 <dd><a href="/comparison/43c799df6e75/foo?style=monoblue">43c799df6e75</a></dd>
905 <dd><a href="/comparison/43c799df6e75/foo?style=monoblue">43c799df6e75</a></dd>
908 <dd><a href="/comparison/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a></dd>
906 <dd><a href="/comparison/9d8c40cba617/foo?style=monoblue">9d8c40cba617</a></dd>
909
907
910 (De)referencing symbolic revisions (spartan)
908 (De)referencing symbolic revisions (spartan)
911
909
912 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=spartan' | egrep $REVLINKS
910 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=spartan' | egrep $REVLINKS
913 <a href="/log/tip?style=spartan">changelog</a>
911 <a href="/log/tip?style=spartan">changelog</a>
914 <a href="/graph/tip?style=spartan">graph</a>
912 <a href="/graph/tip?style=spartan">graph</a>
915 <a href="/file/tip/?style=spartan">files</a>
913 <a href="/file/tip/?style=spartan">files</a>
916 <a href="/archive/tip.zip">zip</a>
914 <a href="/archive/tip.zip">zip</a>
917 navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small>
915 navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small>
918 <td class="node"><a href="/rev/9d8c40cba617?style=spartan">third</a></td>
916 <td class="node"><a href="/rev/9d8c40cba617?style=spartan">third</a></td>
919 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">second</a></td>
917 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">second</a></td>
920 <td class="node"><a href="/rev/43c799df6e75?style=spartan">first</a></td>
918 <td class="node"><a href="/rev/43c799df6e75?style=spartan">first</a></td>
921 navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small>
919 navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small>
922
920
923 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log?style=spartan' | egrep $REVLINKS
921 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log?style=spartan' | egrep $REVLINKS
924 <a href="/shortlog/tip?style=spartan">shortlog</a>
922 <a href="/shortlog/tip?style=spartan">shortlog</a>
925 <a href="/graph/tip?style=spartan">graph</a>
923 <a href="/graph/tip?style=spartan">graph</a>
926 <a href="/file/tip?style=spartan">files</a>
924 <a href="/file/tip?style=spartan">files</a>
927 <a href="/archive/tip.zip">zip</a>
925 <a href="/archive/tip.zip">zip</a>
928 navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small>
926 navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small>
929 <td class="node"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
927 <td class="node"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
930 <th class="files"><a href="/file/9d8c40cba617?style=spartan">files</a>:</th>
928 <th class="files"><a href="/file/9d8c40cba617?style=spartan">files</a>:</th>
931 <td class="files"><a href="/diff/9d8c40cba617/foo?style=spartan">foo</a> </td>
929 <td class="files"><a href="/diff/9d8c40cba617/foo?style=spartan">foo</a> </td>
932 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
930 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
933 <th class="files"><a href="/file/a7c1559b7bba?style=spartan">files</a>:</th>
931 <th class="files"><a href="/file/a7c1559b7bba?style=spartan">files</a>:</th>
934 <td class="files"><a href="/diff/a7c1559b7bba/foo?style=spartan">foo</a> </td>
932 <td class="files"><a href="/diff/a7c1559b7bba/foo?style=spartan">foo</a> </td>
935 <td class="node"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
933 <td class="node"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
936 <th class="files"><a href="/file/43c799df6e75?style=spartan">files</a>:</th>
934 <th class="files"><a href="/file/43c799df6e75?style=spartan">files</a>:</th>
937 <td class="files"><a href="/diff/43c799df6e75/dir/bar?style=spartan">dir/bar</a> <a href="/diff/43c799df6e75/foo?style=spartan">foo</a> </td>
935 <td class="files"><a href="/diff/43c799df6e75/dir/bar?style=spartan">dir/bar</a> <a href="/diff/43c799df6e75/foo?style=spartan">foo</a> </td>
938 navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small>
936 navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small>
939
937
940 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph?style=spartan' | egrep $REVLINKS
938 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph?style=spartan' | egrep $REVLINKS
941 <a href="/log/tip?style=spartan">changelog</a>
939 <a href="/log/tip?style=spartan">changelog</a>
942 <a href="/shortlog/tip?style=spartan">shortlog</a>
940 <a href="/shortlog/tip?style=spartan">shortlog</a>
943 <a href="/file/tip/?style=spartan">files</a>
941 <a href="/file/tip/?style=spartan">files</a>
944 navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small>
942 navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small>
945 <a href="/rev/9d8c40cba617?style=spartan">third</a>
943 <a href="/rev/9d8c40cba617?style=spartan">third</a>
946 <a href="/rev/a7c1559b7bba?style=spartan">second</a>
944 <a href="/rev/a7c1559b7bba?style=spartan">second</a>
947 <a href="/rev/43c799df6e75?style=spartan">first</a>
945 <a href="/rev/43c799df6e75?style=spartan">first</a>
948 navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small>
946 navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small>
949
947
950 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'tags?style=spartan' | egrep $REVLINKS
948 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'tags?style=spartan' | egrep $REVLINKS
951 <a href="/rev/9d8c40cba617?style=spartan">tip</a>
949 <a href="/rev/9d8c40cba617?style=spartan">tip</a>
952
950
953 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'branches?style=spartan' | egrep $REVLINKS
951 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'branches?style=spartan' | egrep $REVLINKS
954 <a href="/shortlog/9d8c40cba617?style=spartan" class="open">default</a>
952 <a href="/shortlog/9d8c40cba617?style=spartan" class="open">default</a>
955
953
956 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file?style=spartan' | egrep $REVLINKS
954 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file?style=spartan' | egrep $REVLINKS
957 <a href="/log/tip?style=spartan">changelog</a>
955 <a href="/log/tip?style=spartan">changelog</a>
958 <a href="/shortlog/tip?style=spartan">shortlog</a>
956 <a href="/shortlog/tip?style=spartan">shortlog</a>
959 <a href="/graph/tip?style=spartan">graph</a>
957 <a href="/graph/tip?style=spartan">graph</a>
960 <a href="/rev/tip?style=spartan">changeset</a>
958 <a href="/rev/tip?style=spartan">changeset</a>
961 <a href="/archive/tip.zip">zip</a>
959 <a href="/archive/tip.zip">zip</a>
962 <h2><a href="/">Mercurial</a> / files for changeset <a href="/rev/9d8c40cba617">9d8c40cba617</a>: /</h2>
960 <h2><a href="/">Mercurial</a> / files for changeset <a href="/rev/9d8c40cba617">9d8c40cba617</a>: /</h2>
963 <td><a href="/file/tip/?style=spartan">[up]</a>
961 <td><a href="/file/tip/?style=spartan">[up]</a>
964 <a href="/file/tip/dir?style=spartan">dir/</a>
962 <a href="/file/tip/dir?style=spartan">dir/</a>
965 <a href="/file/tip/dir/?style=spartan">
963 <a href="/file/tip/dir/?style=spartan">
966 <td><a href="/file/tip/foo?style=spartan">foo</a></td>
964 <td><a href="/file/tip/foo?style=spartan">foo</a></td>
967
965
968 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=spartan&rev=all()' | egrep $REVLINKS
966 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog?style=spartan&rev=all()' | egrep $REVLINKS
969 <a href="/archive/tip.zip">zip</a>
967 <a href="/archive/tip.zip">zip</a>
970 <td class="node"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
968 <td class="node"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
971 <a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a>
969 <a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a>
972 <th class="files"><a href="/file/9d8c40cba617?style=spartan">files</a>:</th>
970 <th class="files"><a href="/file/9d8c40cba617?style=spartan">files</a>:</th>
973 <td class="files"><a href="/diff/9d8c40cba617/foo?style=spartan">foo</a> </td>
971 <td class="files"><a href="/diff/9d8c40cba617/foo?style=spartan">foo</a> </td>
974 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
972 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
975 <a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a>
973 <a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a>
976 <td class="child"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
974 <td class="child"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
977 <th class="files"><a href="/file/a7c1559b7bba?style=spartan">files</a>:</th>
975 <th class="files"><a href="/file/a7c1559b7bba?style=spartan">files</a>:</th>
978 <td class="files"><a href="/diff/a7c1559b7bba/foo?style=spartan">foo</a> </td>
976 <td class="files"><a href="/diff/a7c1559b7bba/foo?style=spartan">foo</a> </td>
979 <td class="node"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
977 <td class="node"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
980 <td class="child"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
978 <td class="child"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
981 <th class="files"><a href="/file/43c799df6e75?style=spartan">files</a>:</th>
979 <th class="files"><a href="/file/43c799df6e75?style=spartan">files</a>:</th>
982 <td class="files"><a href="/diff/43c799df6e75/dir/bar?style=spartan">dir/bar</a> <a href="/diff/43c799df6e75/foo?style=spartan">foo</a> </td>
980 <td class="files"><a href="/diff/43c799df6e75/dir/bar?style=spartan">dir/bar</a> <a href="/diff/43c799df6e75/foo?style=spartan">foo</a> </td>
983
981
984 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'rev/xyzzy?style=spartan' | egrep $REVLINKS
982 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'rev/xyzzy?style=spartan' | egrep $REVLINKS
985 <a href="/log/xyzzy?style=spartan">changelog</a>
983 <a href="/log/xyzzy?style=spartan">changelog</a>
986 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
984 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
987 <a href="/graph/xyzzy?style=spartan">graph</a>
985 <a href="/graph/xyzzy?style=spartan">graph</a>
988 <a href="/file/xyzzy?style=spartan">files</a>
986 <a href="/file/xyzzy?style=spartan">files</a>
989 <a href="/raw-rev/xyzzy">raw</a>
987 <a href="/raw-rev/xyzzy">raw</a>
990 <a href="/archive/xyzzy.zip">zip</a>
988 <a href="/archive/xyzzy.zip">zip</a>
991 <td class="changeset"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
989 <td class="changeset"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
992 <td class="parent"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
990 <td class="parent"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
993 <td class="child"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
991 <td class="child"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
994 <td class="files"><a href="/file/a7c1559b7bba/foo?style=spartan">foo</a> </td>
992 <td class="files"><a href="/file/a7c1559b7bba/foo?style=spartan">foo</a> </td>
995
993
996 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog/xyzzy?style=spartan' | egrep $REVLINKS
994 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'shortlog/xyzzy?style=spartan' | egrep $REVLINKS
997 <a href="/log/xyzzy?style=spartan">changelog</a>
995 <a href="/log/xyzzy?style=spartan">changelog</a>
998 <a href="/graph/xyzzy?style=spartan">graph</a>
996 <a href="/graph/xyzzy?style=spartan">graph</a>
999 <a href="/file/xyzzy/?style=spartan">files</a>
997 <a href="/file/xyzzy/?style=spartan">files</a>
1000 <a href="/archive/xyzzy.zip">zip</a>
998 <a href="/archive/xyzzy.zip">zip</a>
1001 navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small>
999 navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small>
1002 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">second</a></td>
1000 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">second</a></td>
1003 <td class="node"><a href="/rev/43c799df6e75?style=spartan">first</a></td>
1001 <td class="node"><a href="/rev/43c799df6e75?style=spartan">first</a></td>
1004 navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small>
1002 navigate: <small class="navigate"><a href="/shortlog/43c799df6e75?style=spartan">(0)</a> <a href="/shortlog/tip?style=spartan">tip</a> </small>
1005
1003
1006 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy?style=spartan' | egrep $REVLINKS
1004 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy?style=spartan' | egrep $REVLINKS
1007 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1005 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1008 <a href="/graph/xyzzy?style=spartan">graph</a>
1006 <a href="/graph/xyzzy?style=spartan">graph</a>
1009 <a href="/file/xyzzy?style=spartan">files</a>
1007 <a href="/file/xyzzy?style=spartan">files</a>
1010 <a href="/archive/xyzzy.zip">zip</a>
1008 <a href="/archive/xyzzy.zip">zip</a>
1011 navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small>
1009 navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small>
1012 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
1010 <td class="node"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
1013 <th class="files"><a href="/file/a7c1559b7bba?style=spartan">files</a>:</th>
1011 <th class="files"><a href="/file/a7c1559b7bba?style=spartan">files</a>:</th>
1014 <td class="files"><a href="/diff/a7c1559b7bba/foo?style=spartan">foo</a> </td>
1012 <td class="files"><a href="/diff/a7c1559b7bba/foo?style=spartan">foo</a> </td>
1015 <td class="node"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
1013 <td class="node"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
1016 <th class="files"><a href="/file/43c799df6e75?style=spartan">files</a>:</th>
1014 <th class="files"><a href="/file/43c799df6e75?style=spartan">files</a>:</th>
1017 <td class="files"><a href="/diff/43c799df6e75/dir/bar?style=spartan">dir/bar</a> <a href="/diff/43c799df6e75/foo?style=spartan">foo</a> </td>
1015 <td class="files"><a href="/diff/43c799df6e75/dir/bar?style=spartan">dir/bar</a> <a href="/diff/43c799df6e75/foo?style=spartan">foo</a> </td>
1018 navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small>
1016 navigate: <small class="navigate"><a href="/log/43c799df6e75?style=spartan">(0)</a> <a href="/log/tip?style=spartan">tip</a> </small>
1019
1017
1020 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph/xyzzy?style=spartan' | egrep $REVLINKS
1018 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'graph/xyzzy?style=spartan' | egrep $REVLINKS
1021 <a href="/log/xyzzy?style=spartan">changelog</a>
1019 <a href="/log/xyzzy?style=spartan">changelog</a>
1022 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1020 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1023 <a href="/file/xyzzy/?style=spartan">files</a>
1021 <a href="/file/xyzzy/?style=spartan">files</a>
1024 navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small>
1022 navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small>
1025 <a href="/rev/a7c1559b7bba?style=spartan">second</a>
1023 <a href="/rev/a7c1559b7bba?style=spartan">second</a>
1026 <a href="/rev/43c799df6e75?style=spartan">first</a>
1024 <a href="/rev/43c799df6e75?style=spartan">first</a>
1027 navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small>
1025 navigate: <small class="navigate"><a href="/graph/43c799df6e75?style=spartan">(0)</a> <a href="/graph/tip?style=spartan">tip</a> </small>
1028
1026
1029 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy?style=spartan' | egrep $REVLINKS
1027 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy?style=spartan' | egrep $REVLINKS
1030 <a href="/log/xyzzy?style=spartan">changelog</a>
1028 <a href="/log/xyzzy?style=spartan">changelog</a>
1031 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1029 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1032 <a href="/graph/xyzzy?style=spartan">graph</a>
1030 <a href="/graph/xyzzy?style=spartan">graph</a>
1033 <a href="/rev/xyzzy?style=spartan">changeset</a>
1031 <a href="/rev/xyzzy?style=spartan">changeset</a>
1034 <a href="/archive/xyzzy.zip">zip</a>
1032 <a href="/archive/xyzzy.zip">zip</a>
1035 <h2><a href="/">Mercurial</a> / files for changeset <a href="/rev/a7c1559b7bba">a7c1559b7bba</a>: /</h2>
1033 <h2><a href="/">Mercurial</a> / files for changeset <a href="/rev/a7c1559b7bba">a7c1559b7bba</a>: /</h2>
1036 <td><a href="/file/xyzzy/?style=spartan">[up]</a>
1034 <td><a href="/file/xyzzy/?style=spartan">[up]</a>
1037 <a href="/file/xyzzy/dir?style=spartan">dir/</a>
1035 <a href="/file/xyzzy/dir?style=spartan">dir/</a>
1038 <a href="/file/xyzzy/dir/?style=spartan">
1036 <a href="/file/xyzzy/dir/?style=spartan">
1039 <td><a href="/file/xyzzy/foo?style=spartan">foo</a></td>
1037 <td><a href="/file/xyzzy/foo?style=spartan">foo</a></td>
1040
1038
1041 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy/foo?style=spartan' | egrep $REVLINKS
1039 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'file/xyzzy/foo?style=spartan' | egrep $REVLINKS
1042 <a href="/log/xyzzy?style=spartan">changelog</a>
1040 <a href="/log/xyzzy?style=spartan">changelog</a>
1043 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1041 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1044 <a href="/graph/xyzzy?style=spartan">graph</a>
1042 <a href="/graph/xyzzy?style=spartan">graph</a>
1045 <a href="/rev/xyzzy?style=spartan">changeset</a>
1043 <a href="/rev/xyzzy?style=spartan">changeset</a>
1046 <a href="/file/xyzzy/?style=spartan">files</a>
1044 <a href="/file/xyzzy/?style=spartan">files</a>
1047 <a href="/log/xyzzy/foo?style=spartan">revisions</a>
1045 <a href="/log/xyzzy/foo?style=spartan">revisions</a>
1048 <a href="/annotate/xyzzy/foo?style=spartan">annotate</a>
1046 <a href="/annotate/xyzzy/foo?style=spartan">annotate</a>
1049 <a href="/raw-file/xyzzy/foo">raw</a>
1047 <a href="/raw-file/xyzzy/foo">raw</a>
1050 <td><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
1048 <td><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
1051 <a href="/file/43c799df6e75/foo?style=spartan">
1049 <a href="/file/43c799df6e75/foo?style=spartan">
1052 <td><a href="/file/9d8c40cba617/foo?style=spartan">9d8c40cba617</a></td>
1050 <td><a href="/file/9d8c40cba617/foo?style=spartan">9d8c40cba617</a></td>
1053
1051
1054 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy/foo?style=spartan' | egrep $REVLINKS
1052 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'log/xyzzy/foo?style=spartan' | egrep $REVLINKS
1055 href="/atom-log/tip/foo" title="Atom feed for test:foo">
1053 href="/atom-log/tip/foo" title="Atom feed for test:foo">
1056 href="/rss-log/tip/foo" title="RSS feed for test:foo">
1054 href="/rss-log/tip/foo" title="RSS feed for test:foo">
1057 <a href="/file/xyzzy/foo?style=spartan">file</a>
1055 <a href="/file/xyzzy/foo?style=spartan">file</a>
1058 <a href="/annotate/xyzzy/foo?style=spartan">annotate</a>
1056 <a href="/annotate/xyzzy/foo?style=spartan">annotate</a>
1059 <a type="application/rss+xml" href="/rss-log/tip/foo">rss</a>
1057 <a type="application/rss+xml" href="/rss-log/tip/foo">rss</a>
1060 <a type="application/atom+xml" href="/atom-log/tip/foo" title="Atom feed for test:foo">atom</a>
1058 <a type="application/atom+xml" href="/atom-log/tip/foo" title="Atom feed for test:foo">atom</a>
1061 <p>navigate: <small class="navigate"><a href="/log/43c799df6e75/foo?style=spartan">(0)</a> <a href="/log/tip/foo?style=spartan">tip</a> </small></p>
1059 <p>navigate: <small class="navigate"><a href="/log/43c799df6e75/foo?style=spartan">(0)</a> <a href="/log/tip/foo?style=spartan">tip</a> </small></p>
1062 <th class="firstline"><a href="/rev/a7c1559b7bba?style=spartan">second</a></th>
1060 <th class="firstline"><a href="/rev/a7c1559b7bba?style=spartan">second</a></th>
1063 <a href="/file/a7c1559b7bba/foo?style=spartan">a7c1559b7bba</a>
1061 <a href="/file/a7c1559b7bba/foo?style=spartan">a7c1559b7bba</a>
1064 <a href="/diff/a7c1559b7bba/foo?style=spartan">(diff)</a>
1062 <a href="/diff/a7c1559b7bba/foo?style=spartan">(diff)</a>
1065 <a href="/annotate/a7c1559b7bba/foo?style=spartan">(annotate)</a>
1063 <a href="/annotate/a7c1559b7bba/foo?style=spartan">(annotate)</a>
1066 <th class="firstline"><a href="/rev/43c799df6e75?style=spartan">first</a></th>
1064 <th class="firstline"><a href="/rev/43c799df6e75?style=spartan">first</a></th>
1067 <a href="/file/43c799df6e75/foo?style=spartan">43c799df6e75</a>
1065 <a href="/file/43c799df6e75/foo?style=spartan">43c799df6e75</a>
1068 <a href="/diff/43c799df6e75/foo?style=spartan">(diff)</a>
1066 <a href="/diff/43c799df6e75/foo?style=spartan">(diff)</a>
1069 <a href="/annotate/43c799df6e75/foo?style=spartan">(annotate)</a>
1067 <a href="/annotate/43c799df6e75/foo?style=spartan">(annotate)</a>
1070
1068
1071 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'annotate/xyzzy/foo?style=spartan' | egrep $REVLINKS
1069 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'annotate/xyzzy/foo?style=spartan' | egrep $REVLINKS
1072 <a href="/log/xyzzy?style=spartan">changelog</a>
1070 <a href="/log/xyzzy?style=spartan">changelog</a>
1073 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1071 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1074 <a href="/graph/xyzzy?style=spartan">graph</a>
1072 <a href="/graph/xyzzy?style=spartan">graph</a>
1075 <a href="/rev/xyzzy?style=spartan">changeset</a>
1073 <a href="/rev/xyzzy?style=spartan">changeset</a>
1076 <a href="/file/xyzzy/?style=spartan">files</a>
1074 <a href="/file/xyzzy/?style=spartan">files</a>
1077 <a href="/file/xyzzy/foo?style=spartan">file</a>
1075 <a href="/file/xyzzy/foo?style=spartan">file</a>
1078 <a href="/log/xyzzy/foo?style=spartan">revisions</a>
1076 <a href="/log/xyzzy/foo?style=spartan">revisions</a>
1079 <a href="/raw-file/xyzzy/foo">raw</a>
1077 <a href="/raw-file/xyzzy/foo">raw</a>
1080 <td><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
1078 <td><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
1081 <a href="/annotate/43c799df6e75/foo?style=spartan">
1079 <a href="/annotate/43c799df6e75/foo?style=spartan">
1082 <td><a href="/annotate/9d8c40cba617/foo?style=spartan">9d8c40cba617</a></td>
1080 <td><a href="/annotate/9d8c40cba617/foo?style=spartan">9d8c40cba617</a></td>
1083 <a href="/annotate/43c799df6e75/foo?style=spartan#l1">
1081 <a href="/annotate/43c799df6e75/foo?style=spartan#l1">
1084 <a href="/annotate/43c799df6e75/foo?style=spartan#l1">
1082 <a href="/annotate/43c799df6e75/foo?style=spartan#l1">
1085 <a href="/diff/43c799df6e75/foo?style=spartan">diff</a>
1083 <a href="/diff/43c799df6e75/foo?style=spartan">diff</a>
1086 <a href="/rev/43c799df6e75?style=spartan">changeset</a>
1084 <a href="/rev/43c799df6e75?style=spartan">changeset</a>
1087 <a href="/annotate/a7c1559b7bba/foo?style=spartan#l2">
1085 <a href="/annotate/a7c1559b7bba/foo?style=spartan#l2">
1088 <a href="/annotate/a7c1559b7bba/foo?style=spartan#l2">
1086 <a href="/annotate/a7c1559b7bba/foo?style=spartan#l2">
1089 <a href="/annotate/43c799df6e75/foo?style=spartan">0</a></div>
1087 <a href="/annotate/43c799df6e75/foo?style=spartan">0</a></div>
1090 <a href="/diff/a7c1559b7bba/foo?style=spartan">diff</a>
1088 <a href="/diff/a7c1559b7bba/foo?style=spartan">diff</a>
1091 <a href="/rev/a7c1559b7bba?style=spartan">changeset</a>
1089 <a href="/rev/a7c1559b7bba?style=spartan">changeset</a>
1092
1090
1093 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'diff/xyzzy/foo?style=spartan' | egrep $REVLINKS
1091 $ "$TESTDIR/get-with-headers.py" $LOCALIP:$HGPORT 'diff/xyzzy/foo?style=spartan' | egrep $REVLINKS
1094 <a href="/log/xyzzy?style=spartan">changelog</a>
1092 <a href="/log/xyzzy?style=spartan">changelog</a>
1095 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1093 <a href="/shortlog/xyzzy?style=spartan">shortlog</a>
1096 <a href="/graph/xyzzy?style=spartan">graph</a>
1094 <a href="/graph/xyzzy?style=spartan">graph</a>
1097 <a href="/rev/xyzzy?style=spartan">changeset</a>
1095 <a href="/rev/xyzzy?style=spartan">changeset</a>
1098 <a href="/file/xyzzy/foo?style=spartan">file</a>
1096 <a href="/file/xyzzy/foo?style=spartan">file</a>
1099 <a href="/log/xyzzy/foo?style=spartan">revisions</a>
1097 <a href="/log/xyzzy/foo?style=spartan">revisions</a>
1100 <a href="/annotate/xyzzy/foo?style=spartan">annotate</a>
1098 <a href="/annotate/xyzzy/foo?style=spartan">annotate</a>
1101 <a href="/raw-diff/xyzzy/foo">raw</a>
1099 <a href="/raw-diff/xyzzy/foo">raw</a>
1102 <td class="revision"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
1100 <td class="revision"><a href="/rev/a7c1559b7bba?style=spartan">a7c1559b7bba</a></td>
1103 <td class="parent"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
1101 <td class="parent"><a href="/rev/43c799df6e75?style=spartan">43c799df6e75</a></td>
1104 <td class="child"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
1102 <td class="child"><a href="/rev/9d8c40cba617?style=spartan">9d8c40cba617</a></td>
1105
1103
1106 Done
1104 Done
1107
1105
1108 $ cat errors.log
1106 $ cat errors.log
1109 $ "$TESTDIR/killdaemons.py" $DAEMON_PIDS
1107 $ "$TESTDIR/killdaemons.py" $DAEMON_PIDS
1110 $ cd ..
1108 $ cd ..
@@ -1,904 +1,908 b''
1 #require serve
1 #require serve
2
2
3 Some tests for hgweb. Tests static files, plain files and different 404's.
3 Some tests for hgweb. Tests static files, plain files and different 404's.
4
4
5 $ hg init test
5 $ hg init test
6 $ cd test
6 $ cd test
7 $ mkdir da
7 $ mkdir da
8 $ echo foo > da/foo
8 $ echo foo > da/foo
9 $ echo foo > foo
9 $ echo foo > foo
10 $ hg ci -Ambase
10 $ hg ci -Ambase
11 adding da/foo
11 adding da/foo
12 adding foo
12 adding foo
13 $ hg bookmark -r0 '@'
13 $ hg bookmark -r0 '@'
14 $ hg bookmark -r0 'a b c'
14 $ hg bookmark -r0 'a b c'
15 $ hg bookmark -r0 'd/e/f'
15 $ hg bookmark -r0 'd/e/f'
16 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
16 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
17 $ cat hg.pid >> $DAEMON_PIDS
17 $ cat hg.pid >> $DAEMON_PIDS
18
18
19 manifest
19 manifest
20
20
21 $ (get-with-headers.py localhost:$HGPORT 'file/tip/?style=raw')
21 $ (get-with-headers.py localhost:$HGPORT 'file/tip/?style=raw')
22 200 Script output follows
22 200 Script output follows
23
23
24
24
25 drwxr-xr-x da
25 drwxr-xr-x da
26 -rw-r--r-- 4 foo
26 -rw-r--r-- 4 foo
27
27
28
28
29 $ (get-with-headers.py localhost:$HGPORT 'file/tip/da?style=raw')
29 $ (get-with-headers.py localhost:$HGPORT 'file/tip/da?style=raw')
30 200 Script output follows
30 200 Script output follows
31
31
32
32
33 -rw-r--r-- 4 foo
33 -rw-r--r-- 4 foo
34
34
35
35
36
36
37 plain file
37 plain file
38
38
39 $ get-with-headers.py localhost:$HGPORT 'file/tip/foo?style=raw'
39 $ get-with-headers.py localhost:$HGPORT 'file/tip/foo?style=raw'
40 200 Script output follows
40 200 Script output follows
41
41
42 foo
42 foo
43
43
44 should give a 404 - static file that does not exist
44 should give a 404 - static file that does not exist
45
45
46 $ get-with-headers.py localhost:$HGPORT 'static/bogus'
46 $ get-with-headers.py localhost:$HGPORT 'static/bogus'
47 404 Not Found
47 404 Not Found
48
48
49 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
49 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
50 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
50 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
51 <head>
51 <head>
52 <link rel="icon" href="/static/hgicon.png" type="image/png" />
52 <link rel="icon" href="/static/hgicon.png" type="image/png" />
53 <meta name="robots" content="index, nofollow" />
53 <meta name="robots" content="index, nofollow" />
54 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
54 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
55 <script type="text/javascript" src="/static/mercurial.js"></script>
55 <script type="text/javascript" src="/static/mercurial.js"></script>
56
56
57 <title>test: error</title>
57 <title>test: error</title>
58 </head>
58 </head>
59 <body>
59 <body>
60
60
61 <div class="container">
61 <div class="container">
62 <div class="menu">
62 <div class="menu">
63 <div class="logo">
63 <div class="logo">
64 <a href="https://mercurial-scm.org/">
64 <a href="https://mercurial-scm.org/">
65 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
65 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
66 </div>
66 </div>
67 <ul>
67 <ul>
68 <li><a href="/shortlog">log</a></li>
68 <li><a href="/shortlog">log</a></li>
69 <li><a href="/graph">graph</a></li>
69 <li><a href="/graph">graph</a></li>
70 <li><a href="/tags">tags</a></li>
70 <li><a href="/tags">tags</a></li>
71 <li><a href="/bookmarks">bookmarks</a></li>
71 <li><a href="/bookmarks">bookmarks</a></li>
72 <li><a href="/branches">branches</a></li>
72 <li><a href="/branches">branches</a></li>
73 </ul>
73 </ul>
74 <ul>
74 <ul>
75 <li><a href="/help">help</a></li>
75 <li><a href="/help">help</a></li>
76 </ul>
76 </ul>
77 </div>
77 </div>
78
78
79 <div class="main">
79 <div class="main">
80
80
81 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
81 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
82 <h3>error</h3>
82 <h3>error</h3>
83
83
84
84
85 <form class="search" action="/log">
85 <form class="search" action="/log">
86
86
87 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
87 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
88 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
88 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
89 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
89 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
90 </form>
90 </form>
91
91
92 <div class="description">
92 <div class="description">
93 <p>
93 <p>
94 An error occurred while processing your request:
94 An error occurred while processing your request:
95 </p>
95 </p>
96 <p>
96 <p>
97 Not Found
97 Not Found
98 </p>
98 </p>
99 </div>
99 </div>
100 </div>
100 </div>
101 </div>
101 </div>
102
102
103
103
104
104
105 </body>
105 </body>
106 </html>
106 </html>
107
107
108 [1]
108 [1]
109
109
110 should give a 404 - bad revision
110 should give a 404 - bad revision
111
111
112 $ get-with-headers.py localhost:$HGPORT 'file/spam/foo?style=raw'
112 $ get-with-headers.py localhost:$HGPORT 'file/spam/foo?style=raw'
113 404 Not Found
113 404 Not Found
114
114
115
115
116 error: revision not found: spam
116 error: revision not found: spam
117 [1]
117 [1]
118
118
119 should give a 400 - bad command
119 should give a 400 - bad command
120
120
121 $ get-with-headers.py localhost:$HGPORT 'file/tip/foo?cmd=spam&style=raw'
121 $ get-with-headers.py localhost:$HGPORT 'file/tip/foo?cmd=spam&style=raw'
122 400* (glob)
122 400* (glob)
123
123
124
124
125 error: no such method: spam
125 error: no such method: spam
126 [1]
126 [1]
127
127
128 $ get-with-headers.py --headeronly localhost:$HGPORT '?cmd=spam'
128 $ get-with-headers.py --headeronly localhost:$HGPORT '?cmd=spam'
129 400 no such method: spam
129 400 no such method: spam
130 [1]
130 [1]
131
131
132 should give a 400 - bad command as a part of url path (issue4071)
132 should give a 400 - bad command as a part of url path (issue4071)
133
133
134 $ get-with-headers.py --headeronly localhost:$HGPORT 'spam'
134 $ get-with-headers.py --headeronly localhost:$HGPORT 'spam'
135 400 no such method: spam
135 400 no such method: spam
136 [1]
136 [1]
137
137
138 $ get-with-headers.py --headeronly localhost:$HGPORT 'raw-spam'
138 $ get-with-headers.py --headeronly localhost:$HGPORT 'raw-spam'
139 400 no such method: spam
139 400 no such method: spam
140 [1]
140 [1]
141
141
142 $ get-with-headers.py --headeronly localhost:$HGPORT 'spam/tip/foo'
142 $ get-with-headers.py --headeronly localhost:$HGPORT 'spam/tip/foo'
143 400 no such method: spam
143 400 no such method: spam
144 [1]
144 [1]
145
145
146 should give a 404 - file does not exist
146 should give a 404 - file does not exist
147
147
148 $ get-with-headers.py localhost:$HGPORT 'file/tip/bork?style=raw'
148 $ get-with-headers.py localhost:$HGPORT 'file/tip/bork?style=raw'
149 404 Not Found
149 404 Not Found
150
150
151
151
152 error: bork@2ef0ac749a14: not found in manifest
152 error: bork@2ef0ac749a14: not found in manifest
153 [1]
153 [1]
154 $ get-with-headers.py localhost:$HGPORT 'file/tip/bork'
154 $ get-with-headers.py localhost:$HGPORT 'file/tip/bork'
155 404 Not Found
155 404 Not Found
156
156
157 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
157 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
158 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
158 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
159 <head>
159 <head>
160 <link rel="icon" href="/static/hgicon.png" type="image/png" />
160 <link rel="icon" href="/static/hgicon.png" type="image/png" />
161 <meta name="robots" content="index, nofollow" />
161 <meta name="robots" content="index, nofollow" />
162 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
162 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
163 <script type="text/javascript" src="/static/mercurial.js"></script>
163 <script type="text/javascript" src="/static/mercurial.js"></script>
164
164
165 <title>test: error</title>
165 <title>test: error</title>
166 </head>
166 </head>
167 <body>
167 <body>
168
168
169 <div class="container">
169 <div class="container">
170 <div class="menu">
170 <div class="menu">
171 <div class="logo">
171 <div class="logo">
172 <a href="https://mercurial-scm.org/">
172 <a href="https://mercurial-scm.org/">
173 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
173 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
174 </div>
174 </div>
175 <ul>
175 <ul>
176 <li><a href="/shortlog">log</a></li>
176 <li><a href="/shortlog">log</a></li>
177 <li><a href="/graph">graph</a></li>
177 <li><a href="/graph">graph</a></li>
178 <li><a href="/tags">tags</a></li>
178 <li><a href="/tags">tags</a></li>
179 <li><a href="/bookmarks">bookmarks</a></li>
179 <li><a href="/bookmarks">bookmarks</a></li>
180 <li><a href="/branches">branches</a></li>
180 <li><a href="/branches">branches</a></li>
181 </ul>
181 </ul>
182 <ul>
182 <ul>
183 <li><a href="/help">help</a></li>
183 <li><a href="/help">help</a></li>
184 </ul>
184 </ul>
185 </div>
185 </div>
186
186
187 <div class="main">
187 <div class="main">
188
188
189 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
189 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
190 <h3>error</h3>
190 <h3>error</h3>
191
191
192
192
193 <form class="search" action="/log">
193 <form class="search" action="/log">
194
194
195 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
195 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
196 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
196 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
197 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
197 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
198 </form>
198 </form>
199
199
200 <div class="description">
200 <div class="description">
201 <p>
201 <p>
202 An error occurred while processing your request:
202 An error occurred while processing your request:
203 </p>
203 </p>
204 <p>
204 <p>
205 bork@2ef0ac749a14: not found in manifest
205 bork@2ef0ac749a14: not found in manifest
206 </p>
206 </p>
207 </div>
207 </div>
208 </div>
208 </div>
209 </div>
209 </div>
210
210
211
211
212
212
213 </body>
213 </body>
214 </html>
214 </html>
215
215
216 [1]
216 [1]
217 $ get-with-headers.py localhost:$HGPORT 'diff/tip/bork?style=raw'
217 $ get-with-headers.py localhost:$HGPORT 'diff/tip/bork?style=raw'
218 404 Not Found
218 404 Not Found
219
219
220
220
221 error: bork@2ef0ac749a14: not found in manifest
221 error: bork@2ef0ac749a14: not found in manifest
222 [1]
222 [1]
223
223
224 try bad style
224 try bad style
225
225
226 $ (get-with-headers.py localhost:$HGPORT 'file/tip/?style=foobar')
226 $ (get-with-headers.py localhost:$HGPORT 'file/tip/?style=foobar')
227 200 Script output follows
227 200 Script output follows
228
228
229 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
229 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
230 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
230 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
231 <head>
231 <head>
232 <link rel="icon" href="/static/hgicon.png" type="image/png" />
232 <link rel="icon" href="/static/hgicon.png" type="image/png" />
233 <meta name="robots" content="index, nofollow" />
233 <meta name="robots" content="index, nofollow" />
234 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
234 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
235 <script type="text/javascript" src="/static/mercurial.js"></script>
235 <script type="text/javascript" src="/static/mercurial.js"></script>
236
236
237 <title>test: 2ef0ac749a14 /</title>
237 <title>test: 2ef0ac749a14 /</title>
238 </head>
238 </head>
239 <body>
239 <body>
240
240
241 <div class="container">
241 <div class="container">
242 <div class="menu">
242 <div class="menu">
243 <div class="logo">
243 <div class="logo">
244 <a href="https://mercurial-scm.org/">
244 <a href="https://mercurial-scm.org/">
245 <img src="/static/hglogo.png" alt="mercurial" /></a>
245 <img src="/static/hglogo.png" alt="mercurial" /></a>
246 </div>
246 </div>
247 <ul>
247 <ul>
248 <li><a href="/shortlog/tip">log</a></li>
248 <li><a href="/shortlog/tip">log</a></li>
249 <li><a href="/graph/tip">graph</a></li>
249 <li><a href="/graph/tip">graph</a></li>
250 <li><a href="/tags">tags</a></li>
250 <li><a href="/tags">tags</a></li>
251 <li><a href="/bookmarks">bookmarks</a></li>
251 <li><a href="/bookmarks">bookmarks</a></li>
252 <li><a href="/branches">branches</a></li>
252 <li><a href="/branches">branches</a></li>
253 </ul>
253 </ul>
254 <ul>
254 <ul>
255 <li><a href="/rev/tip">changeset</a></li>
255 <li><a href="/rev/tip">changeset</a></li>
256 <li class="active">browse</li>
256 <li class="active">browse</li>
257 </ul>
257 </ul>
258 <ul>
258 <ul>
259
259
260 </ul>
260 </ul>
261 <ul>
261 <ul>
262 <li><a href="/help">help</a></li>
262 <li><a href="/help">help</a></li>
263 </ul>
263 </ul>
264 </div>
264 </div>
265
265
266 <div class="main">
266 <div class="main">
267 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
267 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
268 <h3>
268 <h3>
269 directory / @ 0:<a href="/rev/2ef0ac749a14">2ef0ac749a14</a>
269 directory / @ 0:<a href="/rev/2ef0ac749a14">2ef0ac749a14</a>
270 <span class="phase">draft</span> <span class="branchhead">default</span> <span class="tag">tip</span> <span class="tag">@</span> <span class="tag">a b c</span> <span class="tag">d/e/f</span>
270 <span class="phase">draft</span> <span class="branchhead">default</span> <span class="tag">tip</span> <span class="tag">@</span> <span class="tag">a b c</span> <span class="tag">d/e/f</span>
271 </h3>
271 </h3>
272
272
273
273
274 <form class="search" action="/log">
274 <form class="search" action="/log">
275
275
276 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
276 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
277 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
277 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
278 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
278 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
279 </form>
279 </form>
280
280
281 <table class="bigtable">
281 <table class="bigtable">
282 <thead>
282 <thead>
283 <tr>
283 <tr>
284 <th class="name">name</th>
284 <th class="name">name</th>
285 <th class="size">size</th>
285 <th class="size">size</th>
286 <th class="permissions">permissions</th>
286 <th class="permissions">permissions</th>
287 </tr>
287 </tr>
288 </thead>
288 </thead>
289 <tbody class="stripes2">
289 <tbody class="stripes2">
290
290
291
291
292 <tr class="fileline">
292 <tr class="fileline">
293 <td class="name">
293 <td class="name">
294 <a href="/file/tip/da">
294 <a href="/file/tip/da">
295 <img src="/static/coal-folder.png" alt="dir."/> da/
295 <img src="/static/coal-folder.png" alt="dir."/> da/
296 </a>
296 </a>
297 <a href="/file/tip/da/">
297 <a href="/file/tip/da/">
298
298
299 </a>
299 </a>
300 </td>
300 </td>
301 <td class="size"></td>
301 <td class="size"></td>
302 <td class="permissions">drwxr-xr-x</td>
302 <td class="permissions">drwxr-xr-x</td>
303 </tr>
303 </tr>
304
304
305 <tr class="fileline">
305 <tr class="fileline">
306 <td class="filename">
306 <td class="filename">
307 <a href="/file/tip/foo">
307 <a href="/file/tip/foo">
308 <img src="/static/coal-file.png" alt="file"/> foo
308 <img src="/static/coal-file.png" alt="file"/> foo
309 </a>
309 </a>
310 </td>
310 </td>
311 <td class="size">4</td>
311 <td class="size">4</td>
312 <td class="permissions">-rw-r--r--</td>
312 <td class="permissions">-rw-r--r--</td>
313 </tr>
313 </tr>
314 </tbody>
314 </tbody>
315 </table>
315 </table>
316 </div>
316 </div>
317 </div>
317 </div>
318
318
319
319
320 </body>
320 </body>
321 </html>
321 </html>
322
322
323
323
324 stop and restart
324 stop and restart
325
325
326 $ killdaemons.py
326 $ killdaemons.py
327 $ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log
327 $ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log
328 $ cat hg.pid >> $DAEMON_PIDS
328 $ cat hg.pid >> $DAEMON_PIDS
329
329
330 Test the access/error files are opened in append mode
330 Test the access/error files are opened in append mode
331
331
332 $ $PYTHON -c "print len(open('access.log', 'rb').readlines()), 'log lines written'"
332 $ $PYTHON -c "print len(open('access.log', 'rb').readlines()), 'log lines written'"
333 14 log lines written
333 14 log lines written
334
334
335 static file
335 static file
336
336
337 $ get-with-headers.py --twice localhost:$HGPORT 'static/style-gitweb.css' - date etag server
337 $ get-with-headers.py --twice localhost:$HGPORT 'static/style-gitweb.css' - date etag server
338 200 Script output follows
338 200 Script output follows
339 content-length: 9059
339 content-length: 9059
340 content-type: text/css
340 content-type: text/css
341
341
342 body { font-family: sans-serif; font-size: 12px; border:solid #d9d8d1; border-width:1px; margin:10px; background: white; color: black; }
342 body { font-family: sans-serif; font-size: 12px; border:solid #d9d8d1; border-width:1px; margin:10px; background: white; color: black; }
343 a { color:#0000cc; }
343 a { color:#0000cc; }
344 a:hover, a:visited, a:active { color:#880000; }
344 a:hover, a:visited, a:active { color:#880000; }
345 div.page_header { height:25px; padding:8px; font-size:18px; font-weight:bold; background-color:#d9d8d1; }
345 div.page_header { height:25px; padding:8px; font-size:18px; font-weight:bold; background-color:#d9d8d1; }
346 div.page_header a:visited { color:#0000cc; }
346 div.page_header a:visited { color:#0000cc; }
347 div.page_header a:hover { color:#880000; }
347 div.page_header a:hover { color:#880000; }
348 div.page_nav {
348 div.page_nav {
349 padding:8px;
349 padding:8px;
350 display: flex;
350 display: flex;
351 justify-content: space-between;
351 justify-content: space-between;
352 align-items: center;
352 align-items: center;
353 }
353 }
354 div.page_nav a:visited { color:#0000cc; }
354 div.page_nav a:visited { color:#0000cc; }
355 div.extra_nav {
355 div.extra_nav {
356 padding: 8px;
356 padding: 8px;
357 }
357 }
358 div.extra_nav a:visited {
358 div.extra_nav a:visited {
359 color: #0000cc;
359 color: #0000cc;
360 }
360 }
361 div.page_path { padding:8px; border:solid #d9d8d1; border-width:0px 0px 1px}
361 div.page_path { padding:8px; border:solid #d9d8d1; border-width:0px 0px 1px}
362 div.page_footer { padding:4px 8px; background-color: #d9d8d1; }
362 div.page_footer { padding:4px 8px; background-color: #d9d8d1; }
363 div.page_footer_text { float:left; color:#555555; font-style:italic; }
363 div.page_footer_text { float:left; color:#555555; font-style:italic; }
364 div.page_body { padding:8px; }
364 div.page_body { padding:8px; }
365 div.title, a.title {
365 div.title, a.title {
366 display:block; padding:6px 8px;
366 display:block; padding:6px 8px;
367 font-weight:bold; background-color:#edece6; text-decoration:none; color:#000000;
367 font-weight:bold; background-color:#edece6; text-decoration:none; color:#000000;
368 }
368 }
369 a.title:hover { background-color: #d9d8d1; }
369 a.title:hover { background-color: #d9d8d1; }
370 div.title_text { padding:6px 0px; border: solid #d9d8d1; border-width:0px 0px 1px; }
370 div.title_text { padding:6px 0px; border: solid #d9d8d1; border-width:0px 0px 1px; }
371 div.log_body { padding:8px 8px 8px 150px; }
371 div.log_body { padding:8px 8px 8px 150px; }
372 .age { white-space:nowrap; }
372 .age { white-space:nowrap; }
373 a.title span.age { position:relative; float:left; width:142px; font-style:italic; }
373 a.title span.age { position:relative; float:left; width:142px; font-style:italic; }
374 div.log_link {
374 div.log_link {
375 padding:0px 8px;
375 padding:0px 8px;
376 font-size:10px; font-family:sans-serif; font-style:normal;
376 font-size:10px; font-family:sans-serif; font-style:normal;
377 position:relative; float:left; width:136px;
377 position:relative; float:left; width:136px;
378 }
378 }
379 div.list_head { padding:6px 8px 4px; border:solid #d9d8d1; border-width:1px 0px 0px; font-style:italic; }
379 div.list_head { padding:6px 8px 4px; border:solid #d9d8d1; border-width:1px 0px 0px; font-style:italic; }
380 a.list { text-decoration:none; color:#000000; }
380 a.list { text-decoration:none; color:#000000; }
381 a.list:hover { text-decoration:underline; color:#880000; }
381 a.list:hover { text-decoration:underline; color:#880000; }
382 table { padding:8px 4px; }
382 table { padding:8px 4px; }
383 th { padding:2px 5px; font-size:12px; text-align:left; }
383 th { padding:2px 5px; font-size:12px; text-align:left; }
384 .parity0 { background-color:#ffffff; }
384 .parity0 { background-color:#ffffff; }
385 tr.dark, .parity1, pre.sourcelines.stripes > :nth-child(4n+4) { background-color:#f6f6f0; }
385 tr.dark, .parity1, pre.sourcelines.stripes > :nth-child(4n+4) { background-color:#f6f6f0; }
386 tr.light:hover, .parity0:hover, tr.dark:hover, .parity1:hover,
386 tr.light:hover, .parity0:hover, tr.dark:hover, .parity1:hover,
387 pre.sourcelines.stripes > :nth-child(4n+2):hover,
387 pre.sourcelines.stripes > :nth-child(4n+2):hover,
388 pre.sourcelines.stripes > :nth-child(4n+4):hover,
388 pre.sourcelines.stripes > :nth-child(4n+4):hover,
389 pre.sourcelines.stripes > :nth-child(4n+1):hover + :nth-child(4n+2),
389 pre.sourcelines.stripes > :nth-child(4n+1):hover + :nth-child(4n+2),
390 pre.sourcelines.stripes > :nth-child(4n+3):hover + :nth-child(4n+4) { background-color:#edece6; }
390 pre.sourcelines.stripes > :nth-child(4n+3):hover + :nth-child(4n+4) { background-color:#edece6; }
391 td { padding:2px 5px; font-size:12px; vertical-align:top; }
391 td { padding:2px 5px; font-size:12px; vertical-align:top; }
392 td.closed { background-color: #99f; }
392 td.closed { background-color: #99f; }
393 td.link { padding:2px 5px; font-family:sans-serif; font-size:10px; }
393 td.link { padding:2px 5px; font-family:sans-serif; font-size:10px; }
394 td.indexlinks { white-space: nowrap; }
394 td.indexlinks { white-space: nowrap; }
395 td.indexlinks a {
395 td.indexlinks a {
396 padding: 2px 5px; line-height: 10px;
396 padding: 2px 5px; line-height: 10px;
397 border: 1px solid;
397 border: 1px solid;
398 color: #ffffff; background-color: #7777bb;
398 color: #ffffff; background-color: #7777bb;
399 border-color: #aaaadd #333366 #333366 #aaaadd;
399 border-color: #aaaadd #333366 #333366 #aaaadd;
400 font-weight: bold; text-align: center; text-decoration: none;
400 font-weight: bold; text-align: center; text-decoration: none;
401 font-size: 10px;
401 font-size: 10px;
402 }
402 }
403 td.indexlinks a:hover { background-color: #6666aa; }
403 td.indexlinks a:hover { background-color: #6666aa; }
404 div.pre { font-family:monospace; font-size:12px; white-space:pre; }
404 div.pre { font-family:monospace; font-size:12px; white-space:pre; }
405
405
406 .search {
406 .search {
407 margin-right: 8px;
407 margin-right: 8px;
408 }
408 }
409
409
410 div#hint {
410 div#hint {
411 position: absolute;
411 position: absolute;
412 display: none;
412 display: none;
413 width: 250px;
413 width: 250px;
414 padding: 5px;
414 padding: 5px;
415 background: #ffc;
415 background: #ffc;
416 border: 1px solid yellow;
416 border: 1px solid yellow;
417 border-radius: 5px;
417 border-radius: 5px;
418 }
418 }
419
419
420 #searchform:hover div#hint { display: block; }
420 #searchform:hover div#hint { display: block; }
421
421
422 tr.thisrev a { color:#999999; text-decoration: none; }
422 tr.thisrev a { color:#999999; text-decoration: none; }
423 tr.thisrev pre { color:#009900; }
423 tr.thisrev pre { color:#009900; }
424 td.annotate {
424 td.annotate {
425 white-space: nowrap;
425 white-space: nowrap;
426 }
426 }
427 div.annotate-info {
427 div.annotate-info {
428 z-index: 5;
428 z-index: 5;
429 display: none;
429 display: none;
430 position: absolute;
430 position: absolute;
431 background-color: #FFFFFF;
431 background-color: #FFFFFF;
432 border: 1px solid #d9d8d1;
432 border: 1px solid #d9d8d1;
433 text-align: left;
433 text-align: left;
434 color: #000000;
434 color: #000000;
435 padding: 5px;
435 padding: 5px;
436 }
436 }
437 div.annotate-info a { color: #0000FF; text-decoration: underline; }
437 div.annotate-info a { color: #0000FF; text-decoration: underline; }
438 td.annotate:hover div.annotate-info { display: inline; }
438 td.annotate:hover div.annotate-info { display: inline; }
439
439
440 #diffopts-form {
440 #diffopts-form {
441 padding-left: 8px;
441 padding-left: 8px;
442 display: none;
442 display: none;
443 }
443 }
444
444
445 .linenr { color:#999999; text-decoration:none }
445 .linenr { color:#999999; text-decoration:none }
446 div.rss_logo { float: right; white-space: nowrap; }
446 div.rss_logo { float: right; white-space: nowrap; }
447 div.rss_logo a {
447 div.rss_logo a {
448 padding:3px 6px; line-height:10px;
448 padding:3px 6px; line-height:10px;
449 border:1px solid; border-color:#fcc7a5 #7d3302 #3e1a01 #ff954e;
449 border:1px solid; border-color:#fcc7a5 #7d3302 #3e1a01 #ff954e;
450 color:#ffffff; background-color:#ff6600;
450 color:#ffffff; background-color:#ff6600;
451 font-weight:bold; font-family:sans-serif; font-size:10px;
451 font-weight:bold; font-family:sans-serif; font-size:10px;
452 text-align:center; text-decoration:none;
452 text-align:center; text-decoration:none;
453 }
453 }
454 div.rss_logo a:hover { background-color:#ee5500; }
454 div.rss_logo a:hover { background-color:#ee5500; }
455 pre { margin: 0; }
455 pre { margin: 0; }
456 span.logtags span {
456 span.logtags span {
457 padding: 0px 4px;
457 padding: 0px 4px;
458 font-size: 10px;
458 font-size: 10px;
459 font-weight: normal;
459 font-weight: normal;
460 border: 1px solid;
460 border: 1px solid;
461 background-color: #ffaaff;
461 background-color: #ffaaff;
462 border-color: #ffccff #ff00ee #ff00ee #ffccff;
462 border-color: #ffccff #ff00ee #ff00ee #ffccff;
463 }
463 }
464 span.logtags span.phasetag {
464 span.logtags span.phasetag {
465 background-color: #dfafff;
465 background-color: #dfafff;
466 border-color: #e2b8ff #ce48ff #ce48ff #e2b8ff;
466 border-color: #e2b8ff #ce48ff #ce48ff #e2b8ff;
467 }
467 }
468 span.logtags span.obsoletetag {
468 span.logtags span.obsoletetag {
469 background-color: #dddddd;
469 background-color: #dddddd;
470 border-color: #e4e4e4 #a3a3a3 #a3a3a3 #e4e4e4;
470 border-color: #e4e4e4 #a3a3a3 #a3a3a3 #e4e4e4;
471 }
471 }
472 span.logtags span.instabilitytag {
472 span.logtags span.instabilitytag {
473 background-color: #ffb1c0;
473 background-color: #ffb1c0;
474 border-color: #ffbbc8 #ff4476 #ff4476 #ffbbc8;
474 border-color: #ffbbc8 #ff4476 #ff4476 #ffbbc8;
475 }
475 }
476 span.logtags span.tagtag {
476 span.logtags span.tagtag {
477 background-color: #ffffaa;
477 background-color: #ffffaa;
478 border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
478 border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
479 }
479 }
480 span.logtags span.branchtag {
480 span.logtags span.branchtag {
481 background-color: #aaffaa;
481 background-color: #aaffaa;
482 border-color: #ccffcc #00cc33 #00cc33 #ccffcc;
482 border-color: #ccffcc #00cc33 #00cc33 #ccffcc;
483 }
483 }
484 span.logtags span.inbranchtag {
484 span.logtags span.inbranchtag {
485 background-color: #d5dde6;
485 background-color: #d5dde6;
486 border-color: #e3ecf4 #9398f4 #9398f4 #e3ecf4;
486 border-color: #e3ecf4 #9398f4 #9398f4 #e3ecf4;
487 }
487 }
488 span.logtags span.bookmarktag {
488 span.logtags span.bookmarktag {
489 background-color: #afdffa;
489 background-color: #afdffa;
490 border-color: #ccecff #46ace6 #46ace6 #ccecff;
490 border-color: #ccecff #46ace6 #46ace6 #ccecff;
491 }
491 }
492 span.difflineplus { color:#008800; }
492 span.difflineplus { color:#008800; }
493 span.difflineminus { color:#cc0000; }
493 span.difflineminus { color:#cc0000; }
494 span.difflineat { color:#990099; }
494 span.difflineat { color:#990099; }
495 div.diffblocks { counter-reset: lineno; }
495 div.diffblocks { counter-reset: lineno; }
496 div.diffblock { counter-increment: lineno; }
496 div.diffblock { counter-increment: lineno; }
497 pre.sourcelines { position: relative; counter-reset: lineno; }
497 pre.sourcelines { position: relative; counter-reset: lineno; }
498 pre.sourcelines > span {
498 pre.sourcelines > span {
499 display: inline-block;
499 display: inline-block;
500 box-sizing: border-box;
500 box-sizing: border-box;
501 width: 100%;
501 width: 100%;
502 padding: 0 0 0 5em;
502 padding: 0 0 0 5em;
503 counter-increment: lineno;
503 counter-increment: lineno;
504 vertical-align: top;
504 vertical-align: top;
505 }
505 }
506 pre.sourcelines > span:before {
506 pre.sourcelines > span:before {
507 -moz-user-select: -moz-none;
507 -moz-user-select: -moz-none;
508 -khtml-user-select: none;
508 -khtml-user-select: none;
509 -webkit-user-select: none;
509 -webkit-user-select: none;
510 -ms-user-select: none;
510 -ms-user-select: none;
511 user-select: none;
511 user-select: none;
512 display: inline-block;
512 display: inline-block;
513 margin-left: -6em;
513 margin-left: -6em;
514 width: 4em;
514 width: 4em;
515 color: #999;
515 color: #999;
516 text-align: right;
516 text-align: right;
517 content: counters(lineno,".");
517 content: counters(lineno,".");
518 float: left;
518 float: left;
519 }
519 }
520 pre.sourcelines > a {
520 pre.sourcelines > a {
521 display: inline-block;
521 display: inline-block;
522 position: absolute;
522 position: absolute;
523 left: 0px;
523 left: 0px;
524 width: 4em;
524 width: 4em;
525 height: 1em;
525 height: 1em;
526 }
526 }
527 tr:target td,
527 tr:target td,
528 pre.sourcelines > span:target,
528 pre.sourcelines > span:target,
529 pre.sourcelines.stripes > span:target {
529 pre.sourcelines.stripes > span:target {
530 background-color: #bfdfff;
530 background-color: #bfdfff;
531 }
531 }
532
532
533 .description {
533 .description {
534 font-family: monospace;
534 font-family: monospace;
535 white-space: pre;
535 white-space: pre;
536 }
536 }
537
537
538 /* Followlines */
538 /* Followlines */
539 tbody.sourcelines > tr.followlines-selected,
539 tbody.sourcelines > tr.followlines-selected,
540 pre.sourcelines > span.followlines-selected {
540 pre.sourcelines > span.followlines-selected {
541 background-color: #99C7E9 !important;
541 background-color: #99C7E9 !important;
542 }
542 }
543
543
544 div#followlines {
544 div#followlines {
545 background-color: #FFF;
545 background-color: #FFF;
546 border: 1px solid #d9d8d1;
546 border: 1px solid #d9d8d1;
547 padding: 5px;
547 padding: 5px;
548 position: fixed;
548 position: fixed;
549 }
549 }
550
550
551 div.followlines-cancel {
551 div.followlines-cancel {
552 text-align: right;
552 text-align: right;
553 }
553 }
554
554
555 div.followlines-cancel > button {
555 div.followlines-cancel > button {
556 line-height: 80%;
556 line-height: 80%;
557 padding: 0;
557 padding: 0;
558 border: 0;
558 border: 0;
559 border-radius: 2px;
559 border-radius: 2px;
560 background-color: inherit;
560 background-color: inherit;
561 font-weight: bold;
561 font-weight: bold;
562 }
562 }
563
563
564 div.followlines-cancel > button:hover {
564 div.followlines-cancel > button:hover {
565 color: #FFFFFF;
565 color: #FFFFFF;
566 background-color: #CF1F1F;
566 background-color: #CF1F1F;
567 }
567 }
568
568
569 div.followlines-link {
569 div.followlines-link {
570 margin: 2px;
570 margin: 2px;
571 margin-top: 4px;
571 margin-top: 4px;
572 font-family: sans-serif;
572 font-family: sans-serif;
573 }
573 }
574
574
575 .btn-followlines {
575 .btn-followlines {
576 position: absolute;
576 position: absolute;
577 display: none;
577 display: none;
578 cursor: pointer;
578 cursor: pointer;
579 box-sizing: content-box;
579 box-sizing: content-box;
580 font-size: 11px;
580 font-size: 11px;
581 width: 13px;
581 width: 13px;
582 height: 13px;
582 height: 13px;
583 border-radius: 3px;
583 border-radius: 3px;
584 margin: 0px;
584 margin: 0px;
585 margin-top: -2px;
585 margin-top: -2px;
586 padding: 0px;
586 padding: 0px;
587 background-color: #E5FDE5;
587 background-color: #E5FDE5;
588 border: 1px solid #9BC19B;
588 border: 1px solid #9BC19B;
589 font-family: monospace;
589 font-family: monospace;
590 text-align: center;
590 text-align: center;
591 line-height: 5px;
591 line-height: 5px;
592 }
592 }
593
593
594 span.followlines-select .btn-followlines {
594 span.followlines-select .btn-followlines {
595 margin-left: -1.6em;
595 margin-left: -1.6em;
596 }
596 }
597
597
598 .btn-followlines:hover {
598 .btn-followlines:hover {
599 transform: scale(1.1, 1.1);
599 transform: scale(1.1, 1.1);
600 }
600 }
601
601
602 .btn-followlines .followlines-plus {
602 .btn-followlines .followlines-plus {
603 color: green;
603 color: green;
604 }
604 }
605
605
606 .btn-followlines .followlines-minus {
606 .btn-followlines .followlines-minus {
607 color: red;
607 color: red;
608 }
608 }
609
609
610 .btn-followlines-end {
610 .btn-followlines-end {
611 background-color: #ffdcdc;
611 background-color: #ffdcdc;
612 }
612 }
613
613
614 .sourcelines tr:hover .btn-followlines,
614 .sourcelines tr:hover .btn-followlines,
615 .sourcelines span.followlines-select:hover > .btn-followlines {
615 .sourcelines span.followlines-select:hover > .btn-followlines {
616 display: inline;
616 display: inline;
617 }
617 }
618
618
619 .btn-followlines-hidden,
619 .btn-followlines-hidden,
620 .sourcelines tr:hover .btn-followlines-hidden {
620 .sourcelines tr:hover .btn-followlines-hidden {
621 display: none;
621 display: none;
622 }
622 }
623
623
624 /* Graph */
624 /* Graph */
625 div#wrapper {
625 div#wrapper {
626 position: relative;
626 position: relative;
627 margin: 0;
627 margin: 0;
628 padding: 0;
628 padding: 0;
629 margin-top: 3px;
629 margin-top: 3px;
630 }
630 }
631
631
632 canvas {
632 canvas {
633 position: absolute;
633 position: absolute;
634 z-index: 5;
634 z-index: 5;
635 top: -0.9em;
635 top: -0.9em;
636 margin: 0;
636 margin: 0;
637 }
637 }
638
638
639 ul#graphnodes {
639 ul#graphnodes {
640 list-style: none inside none;
640 list-style: none inside none;
641 padding: 0;
641 padding: 0;
642 margin: 0;
642 margin: 0;
643 }
643 }
644
644
645 ul#graphnodes li {
645 ul#graphnodes li {
646 position: relative;
646 position: relative;
647 height: 37px;
647 height: 37px;
648 overflow: visible;
648 overflow: visible;
649 padding-top: 2px;
649 padding-top: 2px;
650 }
650 }
651
651
652 ul#graphnodes li .fg {
652 ul#graphnodes li .fg {
653 position: absolute;
653 position: absolute;
654 z-index: 10;
654 z-index: 10;
655 }
655 }
656
656
657 ul#graphnodes li .info {
657 ul#graphnodes li .info {
658 font-size: 100%;
658 font-size: 100%;
659 font-style: italic;
659 font-style: italic;
660 }
660 }
661
661
662 /* Comparison */
662 /* Comparison */
663 .legend {
663 .legend {
664 padding: 1.5% 0 1.5% 0;
664 padding: 1.5% 0 1.5% 0;
665 }
665 }
666
666
667 .legendinfo {
667 .legendinfo {
668 border: 1px solid #d9d8d1;
668 border: 1px solid #d9d8d1;
669 font-size: 80%;
669 font-size: 80%;
670 text-align: center;
670 text-align: center;
671 padding: 0.5%;
671 padding: 0.5%;
672 }
672 }
673
673
674 .equal {
674 .equal {
675 background-color: #ffffff;
675 background-color: #ffffff;
676 }
676 }
677
677
678 .delete {
678 .delete {
679 background-color: #faa;
679 background-color: #faa;
680 color: #333;
680 color: #333;
681 }
681 }
682
682
683 .insert {
683 .insert {
684 background-color: #ffa;
684 background-color: #ffa;
685 }
685 }
686
686
687 .replace {
687 .replace {
688 background-color: #e8e8e8;
688 background-color: #e8e8e8;
689 }
689 }
690
690
691 .comparison {
691 .comparison {
692 overflow-x: auto;
692 overflow-x: auto;
693 }
693 }
694
694
695 .header th {
695 .header th {
696 text-align: center;
696 text-align: center;
697 }
697 }
698
698
699 .block {
699 .block {
700 border-top: 1px solid #d9d8d1;
700 border-top: 1px solid #d9d8d1;
701 }
701 }
702
702
703 .scroll-loading {
703 .scroll-loading {
704 -webkit-animation: change_color 1s linear 0s infinite alternate;
704 -webkit-animation: change_color 1s linear 0s infinite alternate;
705 -moz-animation: change_color 1s linear 0s infinite alternate;
705 -moz-animation: change_color 1s linear 0s infinite alternate;
706 -o-animation: change_color 1s linear 0s infinite alternate;
706 -o-animation: change_color 1s linear 0s infinite alternate;
707 animation: change_color 1s linear 0s infinite alternate;
707 animation: change_color 1s linear 0s infinite alternate;
708 }
708 }
709
709
710 @-webkit-keyframes change_color {
710 @-webkit-keyframes change_color {
711 from { background-color: #A0CEFF; } to { }
711 from { background-color: #A0CEFF; } to { }
712 }
712 }
713 @-moz-keyframes change_color {
713 @-moz-keyframes change_color {
714 from { background-color: #A0CEFF; } to { }
714 from { background-color: #A0CEFF; } to { }
715 }
715 }
716 @-o-keyframes change_color {
716 @-o-keyframes change_color {
717 from { background-color: #A0CEFF; } to { }
717 from { background-color: #A0CEFF; } to { }
718 }
718 }
719 @keyframes change_color {
719 @keyframes change_color {
720 from { background-color: #A0CEFF; } to { }
720 from { background-color: #A0CEFF; } to { }
721 }
721 }
722
722
723 .scroll-loading-error {
723 .scroll-loading-error {
724 background-color: #FFCCCC !important;
724 background-color: #FFCCCC !important;
725 }
725 }
726
726
727 #doc {
727 #doc {
728 margin: 0 8px;
728 margin: 0 8px;
729 }
729 }
730 304 Not Modified
730 304 Not Modified
731
731
732
732
733 phase changes are refreshed (issue4061)
733 phase changes are refreshed (issue4061)
734
734
735 $ echo bar >> foo
735 $ echo bar >> foo
736 $ hg ci -msecret --secret
736 $ hg ci -msecret --secret
737 $ get-with-headers.py localhost:$HGPORT 'log?style=raw'
737 $ get-with-headers.py localhost:$HGPORT 'log?style=raw'
738 200 Script output follows
738 200 Script output follows
739
739
740
740
741 # HG changelog
741 # HG changelog
742 # Node ID 2ef0ac749a14e4f57a5a822464a0902c6f7f448f
742 # Node ID 2ef0ac749a14e4f57a5a822464a0902c6f7f448f
743
743
744 changeset: 2ef0ac749a14e4f57a5a822464a0902c6f7f448f
744 changeset: 2ef0ac749a14e4f57a5a822464a0902c6f7f448f
745 revision: 0
745 revision: 0
746 user: test
746 user: test
747 date: Thu, 01 Jan 1970 00:00:00 +0000
747 date: Thu, 01 Jan 1970 00:00:00 +0000
748 summary: base
748 summary: base
749 branch: default
749 branch: default
750 tag: tip
750 tag: tip
751 bookmark: @
751 bookmark: @
752 bookmark: a b c
752 bookmark: a b c
753 bookmark: d/e/f
753 bookmark: d/e/f
754
754
755
755
756 $ hg phase --draft tip
756 $ hg phase --draft tip
757 $ get-with-headers.py localhost:$HGPORT 'log?style=raw'
757 $ get-with-headers.py localhost:$HGPORT 'log?style=raw'
758 200 Script output follows
758 200 Script output follows
759
759
760
760
761 # HG changelog
761 # HG changelog
762 # Node ID a084749e708a9c4c0a5b652a2a446322ce290e04
762 # Node ID a084749e708a9c4c0a5b652a2a446322ce290e04
763
763
764 changeset: a084749e708a9c4c0a5b652a2a446322ce290e04
764 changeset: a084749e708a9c4c0a5b652a2a446322ce290e04
765 revision: 1
765 revision: 1
766 user: test
766 user: test
767 date: Thu, 01 Jan 1970 00:00:00 +0000
767 date: Thu, 01 Jan 1970 00:00:00 +0000
768 summary: secret
768 summary: secret
769 branch: default
769 branch: default
770 tag: tip
770 tag: tip
771
771
772 changeset: 2ef0ac749a14e4f57a5a822464a0902c6f7f448f
772 changeset: 2ef0ac749a14e4f57a5a822464a0902c6f7f448f
773 revision: 0
773 revision: 0
774 user: test
774 user: test
775 date: Thu, 01 Jan 1970 00:00:00 +0000
775 date: Thu, 01 Jan 1970 00:00:00 +0000
776 summary: base
776 summary: base
777 bookmark: @
777 bookmark: @
778 bookmark: a b c
778 bookmark: a b c
779 bookmark: d/e/f
779 bookmark: d/e/f
780
780
781
781
782
782
783 access bookmarks
783 access bookmarks
784
784
785 $ get-with-headers.py localhost:$HGPORT 'rev/@?style=paper' | egrep '^200|changeset 0:'
785 $ get-with-headers.py localhost:$HGPORT 'rev/@?style=paper' | egrep '^200|changeset 0:'
786 200 Script output follows
786 200 Script output follows
787 changeset 0:<a href="/rev/2ef0ac749a14?style=paper">2ef0ac749a14</a>
787 changeset 0:<a href="/rev/2ef0ac749a14?style=paper">2ef0ac749a14</a>
788
788
789 $ get-with-headers.py localhost:$HGPORT 'rev/%40?style=paper' | egrep '^200|changeset 0:'
789 $ get-with-headers.py localhost:$HGPORT 'rev/%40?style=paper' | egrep '^200|changeset 0:'
790 200 Script output follows
790 200 Script output follows
791 changeset 0:<a href="/rev/2ef0ac749a14?style=paper">2ef0ac749a14</a>
791 changeset 0:<a href="/rev/2ef0ac749a14?style=paper">2ef0ac749a14</a>
792
792
793 $ get-with-headers.py localhost:$HGPORT 'rev/a%20b%20c?style=paper' | egrep '^200|changeset 0:'
793 $ get-with-headers.py localhost:$HGPORT 'rev/a%20b%20c?style=paper' | egrep '^200|changeset 0:'
794 200 Script output follows
794 200 Script output follows
795 changeset 0:<a href="/rev/2ef0ac749a14?style=paper">2ef0ac749a14</a>
795 changeset 0:<a href="/rev/2ef0ac749a14?style=paper">2ef0ac749a14</a>
796
796
797 $ get-with-headers.py localhost:$HGPORT 'rev/d%252Fe%252Ff?style=paper' | egrep '^200|changeset 0:'
797 $ get-with-headers.py localhost:$HGPORT 'rev/d%252Fe%252Ff?style=paper' | egrep '^200|changeset 0:'
798 200 Script output follows
798 200 Script output follows
799 changeset 0:<a href="/rev/2ef0ac749a14?style=paper">2ef0ac749a14</a>
799 changeset 0:<a href="/rev/2ef0ac749a14?style=paper">2ef0ac749a14</a>
800
800
801 no '[up]' entry in file view when in root directory
801 no '[up]' entry in file view when in root directory
802
802
803 $ get-with-headers.py localhost:$HGPORT 'file/tip?style=paper' | grep -F '[up]'
803 $ get-with-headers.py localhost:$HGPORT 'file/tip?style=paper' | grep -F '[up]'
804 [1]
804 [1]
805 $ get-with-headers.py localhost:$HGPORT 'file/tip/da?style=paper' | grep -F '[up]'
805 $ get-with-headers.py localhost:$HGPORT 'file/tip/da?style=paper' | grep -F '[up]'
806 <a href="/file/tip/?style=paper">[up]</a>
806 <a href="/file/tip/?style=paper">[up]</a>
807 $ get-with-headers.py localhost:$HGPORT 'file/tip?style=coal' | grep -F '[up]'
807 $ get-with-headers.py localhost:$HGPORT 'file/tip?style=coal' | grep -F '[up]'
808 [1]
808 [1]
809 $ get-with-headers.py localhost:$HGPORT 'file/tip/da?style=coal' | grep -F '[up]'
809 $ get-with-headers.py localhost:$HGPORT 'file/tip/da?style=coal' | grep -F '[up]'
810 <a href="/file/tip/?style=coal">[up]</a>
810 <a href="/file/tip/?style=coal">[up]</a>
811 $ get-with-headers.py localhost:$HGPORT 'file/tip?style=gitweb' | grep -F '[up]'
812 [1]
813 $ get-with-headers.py localhost:$HGPORT 'file/tip/da?style=gitweb' | grep -F '[up]'
814 <a href="/file/tip/?style=gitweb">[up]</a>
811
815
812 no style can be loaded from directories other than the specified paths
816 no style can be loaded from directories other than the specified paths
813
817
814 $ mkdir -p x/templates/fallback
818 $ mkdir -p x/templates/fallback
815 $ cat <<EOF > x/templates/fallback/map
819 $ cat <<EOF > x/templates/fallback/map
816 > default = 'shortlog'
820 > default = 'shortlog'
817 > shortlog = 'fall back to default\n'
821 > shortlog = 'fall back to default\n'
818 > mimetype = 'text/plain'
822 > mimetype = 'text/plain'
819 > EOF
823 > EOF
820 $ cat <<EOF > x/map
824 $ cat <<EOF > x/map
821 > default = 'shortlog'
825 > default = 'shortlog'
822 > shortlog = 'access to outside of templates directory\n'
826 > shortlog = 'access to outside of templates directory\n'
823 > mimetype = 'text/plain'
827 > mimetype = 'text/plain'
824 > EOF
828 > EOF
825
829
826 $ killdaemons.py
830 $ killdaemons.py
827 $ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log \
831 $ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log \
828 > --config web.style=fallback --config web.templates=x/templates
832 > --config web.style=fallback --config web.templates=x/templates
829 $ cat hg.pid >> $DAEMON_PIDS
833 $ cat hg.pid >> $DAEMON_PIDS
830
834
831 $ get-with-headers.py localhost:$HGPORT "?style=`pwd`/x"
835 $ get-with-headers.py localhost:$HGPORT "?style=`pwd`/x"
832 200 Script output follows
836 200 Script output follows
833
837
834 fall back to default
838 fall back to default
835
839
836 $ get-with-headers.py localhost:$HGPORT '?style=..'
840 $ get-with-headers.py localhost:$HGPORT '?style=..'
837 200 Script output follows
841 200 Script output follows
838
842
839 fall back to default
843 fall back to default
840
844
841 $ get-with-headers.py localhost:$HGPORT '?style=./..'
845 $ get-with-headers.py localhost:$HGPORT '?style=./..'
842 200 Script output follows
846 200 Script output follows
843
847
844 fall back to default
848 fall back to default
845
849
846 $ get-with-headers.py localhost:$HGPORT '?style=.../.../'
850 $ get-with-headers.py localhost:$HGPORT '?style=.../.../'
847 200 Script output follows
851 200 Script output follows
848
852
849 fall back to default
853 fall back to default
850
854
851 errors
855 errors
852
856
853 $ cat errors.log
857 $ cat errors.log
854
858
855 Uncaught exceptions result in a logged error and canned HTTP response
859 Uncaught exceptions result in a logged error and canned HTTP response
856
860
857 $ killdaemons.py
861 $ killdaemons.py
858 $ hg serve --config extensions.hgweberror=$TESTDIR/hgweberror.py -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
862 $ hg serve --config extensions.hgweberror=$TESTDIR/hgweberror.py -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
859 $ cat hg.pid >> $DAEMON_PIDS
863 $ cat hg.pid >> $DAEMON_PIDS
860
864
861 $ get-with-headers.py localhost:$HGPORT 'raiseerror' transfer-encoding content-type
865 $ get-with-headers.py localhost:$HGPORT 'raiseerror' transfer-encoding content-type
862 500 Internal Server Error
866 500 Internal Server Error
863 transfer-encoding: chunked
867 transfer-encoding: chunked
864
868
865 Internal Server Error (no-eol)
869 Internal Server Error (no-eol)
866 [1]
870 [1]
867
871
868 $ killdaemons.py
872 $ killdaemons.py
869 $ head -1 errors.log
873 $ head -1 errors.log
870 .* Exception happened during processing request '/raiseerror': (re)
874 .* Exception happened during processing request '/raiseerror': (re)
871
875
872 Uncaught exception after partial content sent
876 Uncaught exception after partial content sent
873
877
874 $ hg serve --config extensions.hgweberror=$TESTDIR/hgweberror.py -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
878 $ hg serve --config extensions.hgweberror=$TESTDIR/hgweberror.py -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
875 $ cat hg.pid >> $DAEMON_PIDS
879 $ cat hg.pid >> $DAEMON_PIDS
876 $ get-with-headers.py localhost:$HGPORT 'raiseerror?partialresponse=1' transfer-encoding content-type
880 $ get-with-headers.py localhost:$HGPORT 'raiseerror?partialresponse=1' transfer-encoding content-type
877 200 Script output follows
881 200 Script output follows
878 transfer-encoding: chunked
882 transfer-encoding: chunked
879 content-type: text/plain
883 content-type: text/plain
880
884
881 partial content
885 partial content
882 Internal Server Error (no-eol)
886 Internal Server Error (no-eol)
883
887
884 $ killdaemons.py
888 $ killdaemons.py
885
889
886 HTTP 304 works with hgwebdir (issue5844)
890 HTTP 304 works with hgwebdir (issue5844)
887
891
888 $ cat > hgweb.conf << EOF
892 $ cat > hgweb.conf << EOF
889 > [paths]
893 > [paths]
890 > /repo = $TESTTMP/test
894 > /repo = $TESTTMP/test
891 > EOF
895 > EOF
892
896
893 $ hg serve --web-conf hgweb.conf -p $HGPORT -d --pid-file hg.pid -E error.log
897 $ hg serve --web-conf hgweb.conf -p $HGPORT -d --pid-file hg.pid -E error.log
894 $ cat hg.pid >> $DAEMON_PIDS
898 $ cat hg.pid >> $DAEMON_PIDS
895
899
896 $ get-with-headers.py --twice --headeronly localhost:$HGPORT 'repo/static/style.css' - date etag server
900 $ get-with-headers.py --twice --headeronly localhost:$HGPORT 'repo/static/style.css' - date etag server
897 200 Script output follows
901 200 Script output follows
898 content-length: 2677
902 content-length: 2677
899 content-type: text/css
903 content-type: text/css
900 304 Not Modified
904 304 Not Modified
901
905
902 $ killdaemons.py
906 $ killdaemons.py
903
907
904 $ cd ..
908 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now