##// END OF EJS Templates
tests: add tests for poorly behaving HTTP server...
tests: add tests for poorly behaving HTTP server I've spent several hours over the past few weeks investigating networking failures involving hg.mozilla.org. As part of this, it has become clear that the Mercurial client's error handling when it encounters network failures is far from robust. To prove this is true, I've devised a battery of tests simulating various network failures, notably premature connection closes. To achieve this, I've implemented an extension that monkeypatches the built-in HTTP server and hooks in at the socket level and allows various events to occur based on config options. For example, you can refuse to accept() a client socket or you can close() the socket after N bytes have been sent or received. The latter effectively simulates an unexpected connection drop (and these occur all the time in the real world). The new test file launches servers exhibiting various "bad" behaviors and points a client at them. As the many TODO comments in the test call attention to, Mercurial often displays unhelpful errors when network-related failures occur. This makes it difficult for users to understand what's going on and difficult for server administrators to pinpoint root causes without packet tracing. Upcoming patches will attempt to fix these error handling deficiencies.

File last commit:

r30708:011122b3 default
r32001:c85f19c6 default
Show More
fileannotate.tmpl
88 lines | 2.7 KiB | application/x-cheetah | CheetahLexer
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 {header}
<title>{repo|escape}: {file|escape} annotate</title>
</head>
<body>
<div class="container">
<div class="menu">
<div class="logo">
Steven Stallion
hgweb: support alternate logo url...
r13964 <a href="{logourl}">
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <img src="{staticurl|urlescape}{logoimg}" alt="mercurial" /></a>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </div>
<ul>
av6
hgweb: don't dereference symbolic revision in paper & coal style (issue2296)...
r25606 <li><a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">log</a></li>
<li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li>
<li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li>
<li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </ul>
<ul>
av6
hgweb: don't dereference symbolic revision in paper & coal style (issue2296)...
r25606 <li><a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a></li>
<li><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </ul>
<ul>
av6
hgweb: don't dereference symbolic revision in paper & coal style (issue2296)...
r25606 <li><a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <li><a href="{url|urlescape}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li>
av6
hgweb: don't dereference symbolic revision in paper & coal style (issue2296)...
r25606 <li><a href="{url|urlescape}diff/{symrev}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
<li><a href="{url|urlescape}comparison/{symrev}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 <li class="active">annotate</li>
av6
hgweb: don't dereference symbolic revision in paper & coal style (issue2296)...
r25606 <li><a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li>
Gregory Szorc
hgweb: link to raw-file on annotation page (BC)...
r30708 <li><a href="{url|urlescape}raw-file/{symrev}/{file|urlescape}">raw</a></li>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </ul>
Augie Fackler
hgweb: add help link to templates missed in ead4e21f49f1
r12680 <ul>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>
Augie Fackler
hgweb: add help link to templates missed in ead4e21f49f1
r12680 </ul>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </div>
<div class="main">
Angel Ezquerra <angel.ezquerra at gmail.com>
hgweb: add a "URL breadcrumb" to the index and repository pages...
r18258 <h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
av6
hgweb: link to revision by node hash in paper & coal...
r25617 <h3>
annotate {file|escape} @ {rev}:<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
{branch%changelogbranchname}{tags%changelogtag}{bookmarks%changelogtag}
</h3>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <form class="search" action="{url|urlescape}log">
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 {sessionvars%hiddenformentry}
<p><input name="rev" id="search1" type="text" size="30" /></p>
Alexander Plavin
paper: define searchhint message in map file and use it in other templates
r19795 <div id="hint">{searchhint}</div>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </form>
Angel Ezquerra
hgweb: apply the websub filter to revision descriptions...
r18628 <div class="description">{desc|strip|escape|websub|nonempty}</div>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999
<table id="changesetEntry">
<tr>
<th class="author">author</th>
<td class="author">{author|obfuscate}</td>
</tr>
<tr>
<th class="date">date</th>
Brodie Rao
hgweb: fix dynamic date calculation not working under Safari...
r15375 <td class="date age">{date|rfc822date}</td>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </tr>
<tr>
<th class="author">parents</th>
<td class="author">{parent%filerevparent}</td>
</tr>
<tr>
<th class="author">children</th>
<td class="author">{child%filerevchild}</td>
</tr>
</table>
<div class="overflow">
<table class="bigtable">
Anton Shestakov
hgweb: replace implicit <tbody> with explicit <thead> where appropriate...
r24054 <thead>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 <tr>
<th class="annotate">rev</th>
<th class="line">&nbsp;&nbsp;line source</th>
</tr>
Anton Shestakov
hgweb: replace implicit <tbody> with explicit <thead> where appropriate...
r24054 </thead>
Alexander Plavin
hgweb: make stripes in file annotate view with CSS
r19449 <tbody class="stripes2">
{annotate%annotateline}
</tbody>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </table>
</div>
</div>
</div>
{footer}