# HG changeset patch # User Anton Shestakov <a...@dwimlabs.net> # Date 1522054812 -28800 # Mon Mar 26 17:00:12 2018 +0800 # Node ID 987c05eac1801d0b919c874280d03f9e8cccb411 # Parent 8bacc09814ba5500d15fb40c472e84cb95ae2f99 templates: add whyunstable template keyword
diff --git a/mercurial/templatekw.py b/mercurial/templatekw.py --- a/mercurial/templatekw.py +++ b/mercurial/templatekw.py @@ -793,6 +793,28 @@ def showverbosity(context, mapping): return 'verbose' return '' +@templatekeyword('whyunstable', requires={'repo', 'ctx'}) +def showwhyunstable(context, mapping): + """List of dicts explaining all instabilities of a changeset. + (EXPERIMENTAL) + """ + repo = context.resource(mapping, 'repo') + ctx = context.resource(mapping, 'ctx') + + def formatnode(ctx): + return ' %s (%s)' % (scmutil.formatchangeid(ctx), ctx.phasestr()) + + entries = obsutil.whyunstable(repo, ctx) + + for entry in entries: + if entry.get('divergentnodes'): + dnodes = entry['divergentnodes'] + entry['divergentnodes'] = ''.join(formatnode(dnode) + for dnode in dnodes) + + tmpl = '{instability}:{divergentnodes} {reason} {node|short}' + return templateutil.mappinglist(entries, tmpl=tmpl, sep='\n') + def loadkeyword(ui, extname, registrarobj): """Load template keyword from specified registrarobj """ diff --git a/tests/test-obsolete-divergent.t b/tests/test-obsolete-divergent.t --- a/tests/test-obsolete-divergent.t +++ b/tests/test-obsolete-divergent.t @@ -721,6 +721,11 @@ Use scmutil.cleanupnodes API to create d $ hg debugwhyunstable 1a2a9b5b0030 content-divergent: 70d5a63ca112acb3764bc1d7320ca90ea688d671 (draft) predecessor a178212c3433c4e77b573f6011e29affb8aefa33 + $ hg log -r 1a2a9b5b0030 --hidden -T '{whyunstable}\n' + content-divergent: 4:70d5a63ca112 (draft) predecessor a178212c3433 + $ hg log -r 1a2a9b5b0030 --hidden -T '{whyunstable%"{instability}:{divergentnodes} {reason} {node}\n"}' + content-divergent: 4:70d5a63ca112 (draft) predecessor a178212c3433c4e77b573f6011e29affb8aefa33 + #if serve $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log diff --git a/tests/test-obsolete.t b/tests/test-obsolete.t --- a/tests/test-obsolete.t +++ b/tests/test-obsolete.t @@ -1044,6 +1044,15 @@ test debugwhyunstable output orphan: obsolete parent 3de5eca88c00aa039da7399a220f4a5221faa585 phase-divergent: immutable predecessor 245bde4270cd1072a27757984f9cda8ba26f08ca +test whyunstable template keyword + + $ hg log -r 50c51b361e60 -T '{whyunstable}\n' + orphan: obsolete parent 3de5eca88c00 + phase-divergent: immutable predecessor 245bde4270cd + $ hg log -r 50c51b361e60 -T '{whyunstable%"{instability}: {reason} {node}\n"}' + orphan: obsolete parent 3de5eca88c00aa039da7399a220f4a5221faa585 + phase-divergent: immutable predecessor 245bde4270cd1072a27757984f9cda8ba26f08ca + #if serve $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel