##// END OF EJS Templates
hgweb: use a capped reader for WSGI input stream...
hgweb: use a capped reader for WSGI input stream Per PEP 3333, the input stream from WSGI should respect EOF and prevent reads past the end of the request body. However, not all WSGI servers guarantee this. Notably, our BaseHTTPServer based built-in HTTP server doesn't. Instead, it exposes the raw socket and you can read() from it all you want, getting the connection in a bad state by doing so. We have a "cappedreader" utility class that proxies a file object and prevents reading past a limit. This commit converts the WSGI input stream into a capped reader when the input length is advertised via Content-Length headers. "cappedreader" only exposes a read() method. PEP 3333 states that the input stream MUST also support readline(), readlines(hint), and __iter__(). However, since our WSGI application code only calls read() and since we're not manipulating the stream exposed by the WSGI server, we're not violating the spec here. Differential Revision: https://phab.mercurial-scm.org/D2768

File last commit:

r32762:2d93d215 default
r36870:290fc4c3 default
Show More
filecomparison.tmpl
75 lines | 2.6 KiB | application/x-cheetah | CheetahLexer
wujek srujek
hgweb: side-by-side comparison functionality...
r17202 {header}
<title>{repo|escape}: comparison {file|escape}</title>
<link rel="alternate" type="application/atom+xml"
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
wujek srujek
hgweb: side-by-side comparison functionality...
r17202 <link rel="alternate" type="application/rss+xml"
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
wujek srujek
hgweb: side-by-side comparison functionality...
r17202 </head>
<body>
<div class="page_header">
Angel Ezquerra <angel.ezquerra at gmail.com>
hgweb: add a "URL breadcrumb" to the index and repository pages...
r18258 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
<a href="/">Mercurial</a> {pathdef%breadcrumb} / comparison
wujek srujek
hgweb: side-by-side comparison functionality...
r17202 </div>
<div class="page_nav">
Gregory Szorc
hgweb: refresh styling of gitweb's search form...
r32762 <div>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a> |
<a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a> |
<a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a> |
<a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a> |
<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> |
<a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
<a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> |
av6
hgweb: don't dereference symbolic revision in gitweb style...
r25605 <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">files</a> |
<a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a> |
<a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <a href="{url|urlescape}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a> |
av6
hgweb: don't dereference symbolic revision in gitweb style...
r25605 <a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> |
<a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
<a href="{url|urlescape}diff/{symrev}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
wujek srujek
hgweb: side-by-side comparison functionality...
r17202 comparison |
av6
hgweb: don't dereference symbolic revision in gitweb style...
r25605 <a href="{url|urlescape}raw-diff/{symrev}/{file|urlescape}">raw</a> |
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
Gregory Szorc
hgweb: refresh styling of gitweb's search form...
r32762 </div>
{searchform}
wujek srujek
hgweb: side-by-side comparison functionality...
r17202 </div>
<div class="title">{file|escape}</div>
<table>
{branch%filerevbranch}
<tr>
<td>changeset {rev}</td>
Anton Shestakov
hgweb: clearly outline <tr> block in gitweb and spartan styles...
r24999 <td style="font-family:monospace"><a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
</tr>
wujek srujek
hgweb: side-by-side comparison functionality...
r17202 {parent%filecompparent}
{child%filecompchild}
</table>
<div class="list_head"></div>
<div class="page_body">
<div class="legend">
<span class="legendinfo equal">equal</span>
<span class="legendinfo delete">deleted</span>
<span class="legendinfo insert">inserted</span>
<span class="legendinfo replace">replaced</span>
</div>
<div class="comparison">
wujek srujek
hgweb: fixes traceback for invalid files by removing top-level template...
r17302 <table style="border-collapse:collapse;">
<thead class="header">
<tr>
<th>{leftrev}:{leftnode|short}</th>
<th>{rightrev}:{rightnode|short}</th>
</tr>
</thead>
{comparison}
</table>
wujek srujek
hgweb: side-by-side comparison functionality...
r17202 </div>
</div>
{footer}