Mercurial > hg
view mercurial/templates/paper/changeset.tmpl @ 35485:1721ce06100a
hgweb: display fate of obsolete changesets
Operations that obsolete changesets store enough metadata to explain what
happened after the fact. One way to get that metadata is showsuccsandmarkers
function, which returns a list of successors of a particular changeset and
appropriate obsolescence markers.
Templates have a set of experimental functions that have names starting with
obsfate. This patch uses some of these functions to interpret output of
succsandmarkers() and produce human-friendly messages that describe what
happened to an obsolete changeset, e.g. "pruned" or "rewritten as
6:3de5eca88c00".
In commonentry(), succsandmarkers property is made callable so it's only
executed on demand; this saves time when changeset is not obsolete, and also in
e.g. /shortlog view, where there are a lot of changesets, but we don't need to
show each and every one in detail.
In spartan theme, succsandmarkers is used instead of the simple "obsolete:
yes", in other themes a new line is added to /rev page.
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Tue, 21 Nov 2017 17:03:41 +0800 |
parents | 9acc0360ff67 |
children | f3fd4fe0506f |
line wrap: on
line source
{header} <title>{repo|escape}: {node|short}</title> </head> <body> <div class="container"> <div class="menu"> <div class="logo"> <a href="{logourl}"> <img src="{staticurl|urlescape}{logoimg}" alt="mercurial" /></a> </div> <ul> <li><a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">log</a></li> <li><a href="{url|urlescape}graph/{symrev}{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> </ul> <ul> <li class="active">changeset</li> <li><a href="{url|urlescape}raw-rev/{symrev}{sessionvars%urlparameter}">raw</a></li> <li><a href="{url|urlescape}file/{symrev}{sessionvars%urlparameter}">browse</a></li> </ul> <ul> {archives%archiveentry} </ul> <ul> <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li> </ul> </div> <div class="main"> <h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2> <h3> changeset {rev}:<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> {alltags} </h3> {searchform} <div class="description">{desc|strip|escape|websub|nonempty}</div> <table id="changesetEntry"> <tr> <th class="author">author</th> <td class="author">{author|obfuscate}</td> </tr> <tr> <th class="date">date</th> <td class="date age">{date|rfc822date}</td> </tr> {if(obsolete, '<tr> <th>obsolete</th> <td>{succsandmarkers%obsfateentry}</td> </tr>')} <tr> <th class="author">parents</th> <td class="author">{ifeq(count(parent), '2', parent%changesetparentdiff, parent%changesetparent)}</td> </tr> <tr> <th class="author">children</th> <td class="author">{child%changesetchild}</td> </tr> <tr> <th class="files">files</th> <td class="files">{files}</td> </tr> <tr> <th class="diffstat">diffstat</th> <td class="diffstat"> {diffsummary} <a id="diffstatexpand" href="javascript:toggleDiffstat()">[<tt>+</tt>]</a> <div id="diffstatdetails" style="display:none;"> <a href="javascript:toggleDiffstat()">[<tt>-</tt>]</a> <table class="diffstat-table stripes2">{diffstat}</table> </div> </td> </tr> </table> <div class="overflow"> <div class="sourcefirst linewraptoggle">line wrap: <a class="linewraplink" href="javascript:toggleLinewrap()">on</a></div> <div class="sourcefirst"> line diff</div> <div class="stripes2 diffblocks"> {diff} </div> </div> </div> </div> {footer}