##// 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:

r25664:ebdfca23 default
r25777:1c2a8db3 default
Show More
map
242 lines | 8.5 KiB | text/plain | TextLexer
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 default = 'shortlog'
mimetype = 'text/html; charset={encoding}'
header = header.tmpl
footer = ../paper/footer.tmpl
search = ../paper/search.tmpl
changelog = ../paper/shortlog.tmpl
shortlog = ../paper/shortlog.tmpl
shortlogentry = ../paper/shortlogentry.tmpl
graph = ../paper/graph.tmpl
Augie Fackler
web: add a help view for getting hg help output
r12666 help = ../paper/help.tmpl
helptopics = ../paper/helptopics.tmpl
Dan Villiom Podlaski Christiansen
hgweb help: split up long lines (in generated output)
r18745 helpentry = '
<tr><td>
<a href="{url|urlescape}help/{topic|escape}{sessionvars%urlparameter}">
{topic|escape}
</a>
</td><td>
{summary|escape}
</td></tr>'
Augie Fackler
web: add a help view for getting hg help output
r12666
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 naventry = '<a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
navshortentry = '<a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
navgraphentry = '<a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> '
filenaventry = '<a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> '
filedifflink = '<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
filenodelink = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 filenolink = '{file|escape} '
fileellipses = '...'
Steven Brown
paper, coal: define the diffstat templates...
r14563 diffstatlink = ../paper/diffstat.tmpl
diffstatnolink = ../paper/diffstat.tmpl
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 changelogentry = ../paper/shortlogentry.tmpl
searchentry = ../paper/shortlogentry.tmpl
changeset = ../paper/changeset.tmpl
manifest = ../paper/manifest.tmpl
Nicolas Dumazet
hgweb: changenav: separate pages before and after the current position...
r10254 nav = '{before%naventry} {after%naventry}'
navshort = '{before%navshortentry}{after%navshortentry}'
navgraph = '{before%navgraphentry}{after%navgraphentry}'
filenav = '{before%filenaventry}{after%filenaventry}'
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 direntry = '
av6
hgweb: use css for stripey background in coal...
r25664 <tr class="fileline">
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 <td class="name">
av6
hgweb: don't dereference symbolic revision in paper & coal style (issue2296)...
r25606 <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <img src="{staticurl|urlescape}coal-folder.png" alt="dir."/> {basename|escape}/
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </a>
av6
hgweb: don't dereference symbolic revision in paper & coal style (issue2296)...
r25606 <a href="{url|urlescape}file/{symrev}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}">
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 {emptydirs|escape}
</a>
</td>
<td class="size"></td>
<td class="permissions">drwxr-xr-x</td>
</tr>'
fileentry = '
av6
hgweb: use css for stripey background in coal...
r25664 <tr class="fileline">
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 <td class="filename">
av6
hgweb: don't dereference symbolic revision in paper & coal style (issue2296)...
r25606 <a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <img src="{staticurl|urlescape}coal-file.png" alt="file"/> {basename|escape}
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </a>
</td>
<td class="size">{size}</td>
<td class="permissions">{permissions|permissions}</td>
</tr>'
filerevision = ../paper/filerevision.tmpl
fileannotate = ../paper/fileannotate.tmpl
filediff = ../paper/filediff.tmpl
wujek srujek
hgweb: side-by-side comparison functionality...
r17202 filecomparison = ../paper/filecomparison.tmpl
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 filelog = ../paper/filelog.tmpl
fileline = '
av6
hgweb: use css for stripey background in coal...
r25664 <div class="source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</div>'
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 filelogentry = ../paper/filelogentry.tmpl
annotateline = '
av6
hgweb: use css for stripey background in coal...
r25664 <tr>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 <td class="annotate">
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#{targetline}"
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
</td>
<td class="source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</td>
</tr>'
av6
hgweb: use css for stripey background in coal...
r25664 diffblock = '<div class="source bottomline"><pre>{lines}</pre></div>'
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 difflineplus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="plusline">{line|escape}</span>'
difflineminus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="minusline">{line|escape}</span>'
difflineat = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="atline">{line|escape}</span>'
diffline = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}'
wujek srujek
hgweb: side-by-side comparison functionality...
r17202 comparisonblock ='
<tbody class="block">
{lines}
</tbody>'
comparisonline = '
<tr>
<td class="source {type}"><a href="#{lineid}" id="{lineid}">{leftlinenumber}</a> {leftline|escape}</td>
<td class="source {type}"><a href="#{lineid}" id="{lineid}">{rightlinenumber}</a> {rightline|escape}</td>
</tr>'
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 changelogparent = '
<tr>
<th class="parent">parent {rev}:</th>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <td class="parent"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </tr>'
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 changesetparent = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> '
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999
Anton Shestakov
hgweb: allow viewing diffs against p1 or p2 for merge commits (issue3904)...
r23740 changesetparentdiff = '
{changesetparent}
{ifeq(node, basenode, '(current diff)', '({difffrom})')}'
difffrom = '<a href="{url|urlescape}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">diff</a>'
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 filerevparent = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rename%filerename}{node|short}</a> '
filerevchild = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> '
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999
filerename = '{file|escape}@'
filelogrename = '
Kevin Gessner
hgweb: add base link to file log for paper and coal styles (issue2452)
r13850 <span class="base">
base
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
Kevin Gessner
hgweb: add base link to file log for paper and coal styles (issue2452)
r13850 {file|escape}@{node|short}
</a>
</span>'
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 fileannotateparent = '
<tr>
<td class="metatag">parent:</td>
<td>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 {rename%filerename}{node|short}
</a>
</td>
</tr>'
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 changesetchild = ' <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>'
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 changelogchild = '
<tr>
<th class="child">child</th>
<td class="child">
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 {node|short}
</a>
</td>
</tr>'
fileannotatechild = '
<tr>
<td class="metatag">child:</td>
<td>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 {node|short}
</a>
</td>
</tr>'
tags = ../paper/tags.tmpl
tagentry = '
av6
hgweb: use css for stripey background in coal...
r25664 <tr class="tagEntry">
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 <td>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 {tag|escape}
</a>
</td>
<td class="node">
{node|short}
</td>
</tr>'
Yuya Nishihara
hgweb: add missing bookmarks definition to coal/map...
r13865 bookmarks = ../paper/bookmarks.tmpl
bookmarkentry = '
av6
hgweb: use css for stripey background in coal...
r25664 <tr class="tagEntry">
Yuya Nishihara
hgweb: add missing bookmarks definition to coal/map...
r13865 <td>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">
Yuya Nishihara
hgweb: add missing bookmarks definition to coal/map...
r13865 {bookmark|escape}
</a>
</td>
<td class="node">
{node|short}
</td>
</tr>'
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 branches = ../paper/branches.tmpl
branchentry = '
av6
hgweb: use css for stripey background in coal...
r25664 <tr class="tagEntry">
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 <td>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}">
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 {branch|escape}
</a>
</td>
<td class="node">
{node|short}
</td>
</tr>'
changelogtag = '<span class="tag">{name|escape}</span> '
changesettag = '<span class="tag">{tag|escape}</span> '
Yuya Nishihara
hgweb: add missing bookmarks definition to coal/map...
r13865 changesetbookmark = '<span class="tag">{bookmark|escape}</span> '
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 changelogbranchhead = '<span class="branchhead">{name|escape}</span> '
Thomas Arendsen Hein
trailing spaces (and one stray tab)
r10575 changelogbranchname = '<span class="branchname">{name|escape}</span> '
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999
filediffparent = '
<tr>
<th class="parent">parent {rev}:</th>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <td class="parent"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </tr>'
filelogparent = '
<tr>
<th>parent {rev}:</th>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </tr>'
filediffchild = '
<tr>
<th class="child">child {rev}:</th>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <td class="child"><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </td>
</tr>'
filelogchild = '
<tr>
<th>child {rev}:</th>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <td><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </tr>'
indexentry = '
av6
hgweb: use css for stripey background in coal...
r25664 <tr>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <td><a href="{url|urlescape}{sessionvars%urlparameter}">{name|escape}</a></td>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 <td>{description}</td>
<td>{contact|obfuscate}</td>
Brodie Rao
hgweb: fix dynamic date calculation not working under Safari...
r15375 <td class="age">{lastchange|rfc822date}</td>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 <td class="indexlinks">{archives%indexarchiveentry}</td>
</tr>\n'
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 indexarchiveentry = '<a href="{url|urlescape}archive/{node|short}{extension|urlescape}">&nbsp;&darr;{type|escape}</a>'
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 index = ../paper/index.tmpl
archiveentry = '
<li>
av6
hgweb: don't dereference symbolic revision in paper & coal style (issue2296)...
r25606 <a href="{url|urlescape}archive/{symrev}{extension|urlescape}{ifeq(path,'/','',path|urlescape)}">{type|escape}</a>
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 </li>'
notfound = ../paper/notfound.tmpl
error = ../paper/error.tmpl
urlparameter = '{separator}{name}={value|urlescape}'
hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />'
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 breadcrumb = '&gt; <a href="{url|urlescape}">{name|escape}</a> '
Anton Shestakov
hgweb: add searchhint to templates/coal/map...
r23783
searchhint = 'Find changesets by keywords (author, files, the commit message), revision
number or hash, or <a href="{url|urlescape}help/revsets">revset expression</a>.'