Mercurial > public > mercurial-scm > hg
view mercurial/templates/gitweb/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 | e9a8a941950a |
children | f3fd4fe0506f |
line wrap: on
line source
{header} <title>{repo|escape}: changeset {rev}:{node|short}</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} / changeset </div> <div class="page_nav"> <div> <a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a> | <a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">shortlog</a> | <a href="{url|urlescape}log/{symrev}{sessionvars%urlparameter}">changelog</a> | <a href="{url|urlescape}graph/{symrev}{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}{sessionvars%urlparameter}">files</a> | changeset | <a href="{url|urlescape}raw-rev/{symrev}">raw</a> {archives%archiveentry} | <a href="{url|urlescape}help{sessionvars%urlparameter}">help</a> </div> {searchform} </div> <div> <a class="title" href="{url|urlescape}raw-rev/{node|short}"> {desc|strip|escape|firstline|nonempty} {alltags} </a> </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%changesetbranch} <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> {if(obsolete, '<tr><td>obsolete</td><td>{succsandmarkers%obsfateentry}</td></tr>')} {ifeq(count(parent), '2', parent%changesetparentdiff, parent%changesetparent)} {child%changesetchild} </table></div> <div class="page_body description">{desc|strip|escape|websub|nonempty}</div> <div class="list_head"></div> <div class="title_text"> <table cellspacing="0"> {files} </table></div> <div class="page_body diffblocks">{diff}</div> {footer}