##// END OF EJS Templates
hgweb: allow symbolic revisions with forward slashes in urls...
hgweb: allow symbolic revisions with forward slashes in urls It's possible to have a branch/tag/bookmark with all kinds of special characters, such as {}/\!?. While not very conveniently, symbolic revisions with such characters work from command line if user correctly quotes the characters. These characters also work in hgweb, when they are properly encoded, with one exception: '/' (forward slash, urlencoded as '%2F'), which was getting decoded before hgweb could parse it as a part of PATH_INFO. Because of that, hgweb was seeing it as any other forward slash, that is, as just another url parts separator. For example, if user wanted to see the content of dir/file at bookmark 'feature/eggs', url could be: '/file/feature%2Feggs/dir/file'. But hgweb tried to find a revision 'feature' and get contents of 'eggs/dir/file'. To fix this, let's assume forward slashes are doubly-urlencoded (%252F), so CGI/WSGI server decodes it into %2F. Then we can decode %2F in the revision part of the url into an actual '/' character. Making hgweb produce such urls will be done in the next 2 patches.

File last commit:

r25605:dd893046 default
r25777:1c2a8db3 default
Show More
filerevision.tmpl
70 lines | 2.5 KiB | application/x-cheetah | CheetahLexer
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 {header}
<title>{repo|escape}: {file|escape}@{node|short}</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}"/>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 <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}"/>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </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} / file revision
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </div>
<div class="page_nav">
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> |
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 file |
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> |
<a href="{url|urlescape}comparison/{symrev}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
<a href="{url|urlescape}raw-file/{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>
Augie Fackler
hgweb: add help link to templates missed in ead4e21f49f1
r12680 <br/>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </div>
<div class="title">{file|escape}</div>
<div class="title_text">
<table cellspacing="0">
<tr>
<td>author</td>
Anton Shestakov
hgweb: clearly outline <tr> block in gitweb and spartan styles...
r24999 <td>{author|obfuscate}</td>
</tr>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 <tr>
<td></td>
Anton Shestakov
hgweb: clearly outline <tr> block in gitweb and spartan styles...
r24999 <td class="date age">{date|rfc822date}</td>
</tr>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 {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>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 {parent%filerevparent}
{child%filerevchild}
<tr>
<td>permissions</td>
Anton Shestakov
hgweb: clearly outline <tr> block in gitweb and spartan styles...
r24999 <td style="font-family:monospace">{permissions|permissions}</td>
</tr>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </table>
</div>
<div class="page_path">
Angel Ezquerra
hgweb: apply the websub filter to revision descriptions...
r18628 {desc|strip|escape|websub|addbreaks|nonempty}
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </div>
<div class="page_body">
{text%fileline}
</div>
{footer}