diff --git a/mercurial/templatekw.py b/mercurial/templatekw.py --- a/mercurial/templatekw.py +++ b/mercurial/templatekw.py @@ -809,8 +809,10 @@ def showwhyunstable(context, mapping): for entry in entries: if entry.get('divergentnodes'): dnodes = entry['divergentnodes'] - entry['divergentnodes'] = ''.join(formatnode(dnode) - for dnode in dnodes) + dnhybrid = _hybrid(None, [dnode.hex() for dnode in dnodes], + lambda x: {'ctx': repo[x]}, + lambda x: formatnode(repo[x])) + entry['divergentnodes'] = dnhybrid tmpl = '{instability}:{divergentnodes} {reason} {node|short}' return templateutil.mappinglist(entries, tmpl=tmpl, sep='\n') 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 @@ -725,6 +725,8 @@ Use scmutil.cleanupnodes API to create d 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 + $ hg log -r 1a2a9b5b0030 --hidden -T '{whyunstable%"{instability}:{divergentnodes % " {node} ({phase})"} {reason} {node}\n"}' + content-divergent: 70d5a63ca112acb3764bc1d7320ca90ea688d671 (draft) predecessor a178212c3433c4e77b573f6011e29affb8aefa33 #if serve