hgweb: add a status property to file list context
The web templates merely indicate if files touched by this revision
are in the commit or not, i.e. if they are removed. It would be
helpful to have more context and also indicate whether the files are
added, modified, or removed.
--- a/mercurial/hgweb/webutil.py Fri Nov 15 14:50:13 2019 -0800
+++ b/mercurial/hgweb/webutil.py Fri Nov 15 16:02:01 2019 -0500
@@ -541,8 +541,15 @@
def _listfilesgen(context, ctx, stripecount):
parity = paritygen(stripecount)
+ filesadded = ctx.filesadded()
for blockno, f in enumerate(ctx.files()):
- template = b'filenodelink' if f in ctx else b'filenolink'
+ if f not in ctx:
+ status = b'removed'
+ elif f in filesadded:
+ status = b'added'
+ else:
+ status = b'modified'
+ template = b'filenolink' if status == b'removed' else b'filenodelink'
yield context.process(
template,
{
@@ -550,6 +557,7 @@
b'file': f,
b'blockno': blockno + 1,
b'parity': next(parity),
+ b'status': status,
},
)