Mercurial > public > mercurial-scm > hg-stable
diff mercurial/hgweb/webutil.py @ 35489: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 | 786289423e97 |
children | 4c7ae95e1c71 |
line wrap: on
line diff
--- a/mercurial/hgweb/webutil.py Sat Dec 16 18:58:02 2017 -0500 +++ b/mercurial/hgweb/webutil.py Tue Nov 21 17:03:41 2017 +0800 @@ -32,6 +32,7 @@ pathutil, pycompat, templatefilters, + templatekw, ui as uimod, util, ) @@ -351,6 +352,9 @@ def formatlinerange(fromline, toline): return '%d:%d' % (fromline + 1, toline) +def succsandmarkers(repo, ctx): + return templatekw.showsuccsandmarkers(repo, ctx) + def commonentry(repo, ctx): node = ctx.node() return { @@ -362,6 +366,7 @@ 'extra': ctx.extra(), 'phase': ctx.phasestr(), 'obsolete': ctx.obsolete(), + 'succsandmarkers': lambda **x: succsandmarkers(repo, ctx), 'instabilities': [{"instability": i} for i in ctx.instabilities()], 'branch': nodebranchnodefault(ctx), 'inbranch': nodeinbranch(repo, ctx),