diff -r 2e949ede7350 -r d5121df04808 mercurial/templatekw.py --- a/mercurial/templatekw.py Fri Jan 28 11:33:01 2022 +0100 +++ b/mercurial/templatekw.py Fri Jan 28 11:35:41 2022 +0100 @@ -304,6 +304,21 @@ ) +@templatekeyword(b'_fast_rank', requires={b'ctx'}) +def fast_rank(context, mapping): + """the rank of a changeset if cached + + The rank of a revision is the size of the sub-graph it defines as a head. + Equivalently, the rank of a revision `r` is the size of the set + `ancestors(r)`, `r` included. + """ + ctx = context.resource(mapping, b'ctx') + rank = ctx.fast_rank() + if rank is None: + return None + return b"%d" % rank + + def _getfilestatus(context, mapping, listall=False): ctx = context.resource(mapping, b'ctx') revcache = context.resource(mapping, b'revcache')