Mercurial > hg
view mercurial/templates/gitweb/fileannotate.tmpl @ 31276:cd29673cebdb
hgweb: use patch.diffhunks in webutil.diffs to simplify the algorithm
Function patch.diffhunks yields items for a "block" (i.e. a file) as a whole
so take advantage of this to simplify the algorithm and avoid parsing diff
lines to determine whether we're starting a new "block" or not. Thus we drop
to external block counter and rely on diffhunks iterations instead.
We also take advantage of the fact that patch.diffhunks() yields *lines* of
hunks (instead of a string) to avoid building a list that is ''.join-ed into a
string that is then split.
As lines in 'header' returned by patch.diffhunks() have no trailing new line,
we need to insert it ourselves to match template expectations.
author | Denis Laxalde <denis.laxalde@logilab.fr> |
---|---|
date | Mon, 06 Mar 2017 09:28:33 +0100 |
parents | 011122b3b1c4 |
children | c208bc65318a |
line wrap: on
line source
{header} <title>{repo|escape}: {file|escape}@{node|short} (annotated)</title> <link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/> <link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/> </head> <body> <div class="page_header"> <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a> <a href="/">Mercurial</a> {pathdef%breadcrumb} / annotate </div> <div class="page_nav"> <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> | <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> | <a href="{url|urlescape}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a> | <a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">revisions</a> | annotate | <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> | <a href="{url|urlescape}help{sessionvars%urlparameter}">help</a> <br/> </div> <div class="title">{file|escape}</div> <div class="title_text"> <table cellspacing="0"> <tr> <td>author</td> <td>{author|obfuscate}</td> </tr> <tr> <td></td> <td class="date age">{date|rfc822date}</td> </tr> {branch%filerevbranch} <tr> <td>changeset {rev}</td> <td style="font-family:monospace"><a class="list" href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a></td> </tr> {parent%fileannotateparent} {child%fileannotatechild} <tr> <td>permissions</td> <td style="font-family:monospace">{permissions|permissions}</td> </tr> </table> </div> <div class="page_path"> {desc|strip|escape|websub|addbreaks|nonempty} </div> <div class="page_body"> <table> {annotate%annotateline} </table> </div> {footer}