show: use labelcset() template alias for work (and stack) views
By reusing labelcset() template alias from map-cmdline.default we can now
display obsolescence information in `hg show work/stack`.
--- a/mercurial/templates/map-cmdline.show Wed Oct 18 12:19:53 2017 -0500
+++ b/mercurial/templates/map-cmdline.show Tue Oct 17 20:25:43 2017 +0200
@@ -1,8 +1,8 @@
# TODO there are a few deficiencies in this file:
# * The "namespace" of the labels needs to be worked out. We currently
# piggyback on existing values so color works.
-# * Obsolescence isn't considered for node labels. See _cset_labels in
-# map-cmdline.default.
+
+%include map-cmdline.default
[templates]
showbookmarks = '{if(active, "*", " ")} {pad(bookmark, longestbookmarklen + 4)}{shortest(node, nodelen)}\n'
@@ -10,7 +10,7 @@
showwork = '{cset_shortnode}{namespaces % cset_namespace} {cset_shortdesc}'
showstack = '{showwork}'
-cset_shortnode = '{label("log.changeset changeset.{phase}", shortest(node, nodelen))}'
+cset_shortnode = '{labelcset(shortest(node, nodelen))}'
# Treat branch and tags specially so we don't display "default" or "tip"
cset_namespace = '{ifeq(namespace, "branches", names_branches, ifeq(namespace, "tags", names_tags, names_others))}'
--- a/tests/test-show-work.t Wed Oct 18 12:19:53 2017 -0500
+++ b/tests/test-show-work.t Tue Oct 17 20:25:43 2017 +0200
@@ -234,6 +234,20 @@
o 6a75 (r1) commit 2
o 97fc (r0) commit 1
+Obsolescence information appears in labels.
+
+ $ cat >> .hg/hgrc << EOF
+ > [experimental]
+ > evolution=createmarkers
+ > EOF
+ $ hg debugobsolete `hg log -r 'desc("commit 2")' -T "{node}"`
+ obsoleted 1 changesets
+ $ hg show work --color=debug
+ @ [log.changeset changeset.draft changeset.unstable instability.orphan|32f3] [log.description|commit 3]
+ x [log.changeset changeset.draft changeset.obsolete|6a75] [log.description|commit 2]
+ |
+ ~
+
$ cd ..
Prefix collision on hashes increases shortest node length