##// END OF EJS Templates
revset: introduce new operator "##" to concatenate strings/symbols at runtime...
revset: introduce new operator "##" to concatenate strings/symbols at runtime Before this patch, there is no way to concatenate strings at runtime. For example, to search for the issue ID "1234" in descriptions against all of "issue 1234", "issue:1234", issue1234" and "bug(1234)" patterns, the revset below should be written fully from scratch for each issue ID. grep(r"\bissue[ :]?1234\b|\bbug\(1234\)") This patch introduces new infix operator "##" to concatenate strings/symbols at runtime. Operator symbol "##" comes from the same one of C pre-processor. This concatenation allows parametrizing a part of strings in revset queries. In the case of example above, the definition of the revset alias using operator "##" below can search issue ID "1234" in complicated patterns by "issue(1234)" simply: issue($1) = grep(r"\bissue[ :]?" ## $1 ## r"\b|\bbug\(" ## $1 ## r"\)") "##" operator does: - concatenate not only strings but also symbols into the string Exact distinction between strings and symbols seems not to be convenience, because it is tiresome for users (and "revset.getstring" treats both similarly) For example of revset alias "issue()", "issue(1234)" is easier than "issue('1234')". - have higher priority than any other prefix, infix and postfix operators (like as "##" of C pre-processor) This patch (re-)assigns the priority 20 to "##", and 21 to "(", because priority 19 is already assigned to "-" as prefix "negate".

File last commit:

r19795:ac08ff37 default
r23742:3a4d8a6c default
Show More
filecomparison.tmpl
91 lines | 2.8 KiB | application/x-cheetah | CheetahLexer
wujek srujek
hgweb: side-by-side comparison functionality...
r17202 {header}
<title>{repo|escape}: {file|escape} comparison</title>
</head>
<body>
<div class="container">
<div class="menu">
<div class="logo">
<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>
wujek srujek
hgweb: side-by-side comparison functionality...
r17202 </div>
<ul>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <li><a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">log</a></li>
<li><a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">graph</a></li>
<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>
wujek srujek
hgweb: side-by-side comparison functionality...
r17202 </ul>
<ul>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <li><a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a></li>
<li><a href="{url|urlescape}file/{node|short}{path|urlescape}{sessionvars%urlparameter}">browse</a></li>
wujek srujek
hgweb: side-by-side comparison functionality...
r17202 </ul>
<ul>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <li><a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a></li>
<li><a href="{url|urlescape}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li>
<li><a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li>
wujek srujek
hgweb: side-by-side comparison functionality...
r17202 <li class="active">comparison</li>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <li><a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li>
<li><a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file log</a></li>
<li><a href="{url|urlescape}raw-file/{node|short}/{file|urlescape}">raw</a></li>
wujek srujek
hgweb: side-by-side comparison functionality...
r17202 </ul>
<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>
wujek srujek
hgweb: side-by-side comparison functionality...
r17202 </ul>
</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>
wujek srujek
hgweb: side-by-side comparison functionality...
r17202 <h3>comparison {file|escape} @ {rev}:{node|short}</h3>
Thomas Arendsen Hein
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names...
r18526 <form class="search" action="{url|urlescape}log">
wujek srujek
hgweb: side-by-side comparison functionality...
r17202 <p>{sessionvars%hiddenformentry}</p>
<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>
wujek srujek
hgweb: side-by-side comparison functionality...
r17202 </form>
Angel Ezquerra
hgweb: apply the websub filter to revision descriptions...
r18628 <div class="description">{desc|strip|escape|websub|nonempty}</div>
wujek srujek
hgweb: side-by-side comparison functionality...
r17202
<table id="changesetEntry">
<tr>
<th>author</th>
<td>{author|obfuscate}</td>
</tr>
<tr>
<th>date</th>
<td class="date age">{date|rfc822date}</td>
</tr>
<tr>
<th>parents</th>
<td>{parent%filerevparent}</td>
</tr>
<tr>
<th>children</th>
<td>{child%filerevchild}</td>
</tr>
</table>
<div class="overflow">
<div class="sourcefirst"> comparison</div>
<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>
wujek srujek
hgweb: fixes traceback for invalid files by removing top-level template...
r17302 <table class="bigtable">
<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>
</div>
{footer}