Patchwork show: use labelcset() template alias for work (and stack) views

login
register
mail settings
Submitter Denis Laxalde
Date Oct. 17, 2017, 7:01 p.m.
Message ID <9af9aa26a601cf26aca9.1508266908@marimba>
Download mbox | patch
Permalink /patch/25133/
State Accepted
Headers show

Comments

Denis Laxalde - Oct. 17, 2017, 7:01 p.m.
# HG changeset patch
# User Denis Laxalde <denis@laxalde.org>
# Date 1508264743 -7200
#      Tue Oct 17 20:25:43 2017 +0200
# Node ID 9af9aa26a601cf26aca9320d0384857fe09fa28b
# Parent  68e0bcb903572cb3641c1b1ac11bdcf47d4ff5ac
# EXP-Topic show-obs-info
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`.
Augie Fackler - Oct. 18, 2017, 7:21 p.m.
On Tue, Oct 17, 2017 at 09:01:48PM +0200, Denis Laxalde wrote:
> # HG changeset patch
> # User Denis Laxalde <denis@laxalde.org>
> # Date 1508264743 -7200
> #      Tue Oct 17 20:25:43 2017 +0200
> # Node ID 9af9aa26a601cf26aca9320d0384857fe09fa28b
> # Parent  68e0bcb903572cb3641c1b1ac11bdcf47d4ff5ac
> # EXP-Topic show-obs-info
> show: use labelcset() template alias for work (and stack) views

queued, thanks
Yuya Nishihara - Oct. 19, 2017, 2:10 p.m.
On Tue, 17 Oct 2017 21:01:48 +0200, Denis Laxalde wrote:
> # HG changeset patch
> # User Denis Laxalde <denis@laxalde.org>
> # Date 1508264743 -7200
> #      Tue Oct 17 20:25:43 2017 +0200
> # Node ID 9af9aa26a601cf26aca9320d0384857fe09fa28b
> # Parent  68e0bcb903572cb3641c1b1ac11bdcf47d4ff5ac
> # EXP-Topic show-obs-info
> 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`.
> 
> diff --git a/mercurial/templates/map-cmdline.show b/mercurial/templates/map-cmdline.show
> --- a/mercurial/templates/map-cmdline.show
> +++ b/mercurial/templates/map-cmdline.show
> @@ -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

As a side effect, 'hg log -Tshow' becomes an alias for -Tdefault. Perhaps,
map-cmdline.show should be merged into map-cmdline.default.
Gregory Szorc - Oct. 19, 2017, 9:19 p.m.
On Thu, Oct 19, 2017 at 4:10 PM, Yuya Nishihara <yuya@tcha.org> wrote:

> On Tue, 17 Oct 2017 21:01:48 +0200, Denis Laxalde wrote:
> > # HG changeset patch
> > # User Denis Laxalde <denis@laxalde.org>
> > # Date 1508264743 -7200
> > #      Tue Oct 17 20:25:43 2017 +0200
> > # Node ID 9af9aa26a601cf26aca9320d0384857fe09fa28b
> > # Parent  68e0bcb903572cb3641c1b1ac11bdcf47d4ff5ac
> > # EXP-Topic show-obs-info
> > 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`.
> >
> > diff --git a/mercurial/templates/map-cmdline.show
> b/mercurial/templates/map-cmdline.show
> > --- a/mercurial/templates/map-cmdline.show
> > +++ b/mercurial/templates/map-cmdline.show
> > @@ -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
>
> As a side effect, 'hg log -Tshow' becomes an alias for -Tdefault. Perhaps,
> map-cmdline.show should be merged into map-cmdline.default.
>

I agree. map-cmdline.show's existence is mostly a side-effect of me a) not
fully understanding the templating code b) wanting to draw a clear boundary
between show's templates (which aren't covered by BC). We can call out
show's templates via inline code comments :)
Yuya Nishihara - Oct. 20, 2017, 1:19 p.m.
On Thu, 19 Oct 2017 23:19:35 +0200, Gregory Szorc wrote:
> On Thu, Oct 19, 2017 at 4:10 PM, Yuya Nishihara <yuya@tcha.org> wrote:
> > On Tue, 17 Oct 2017 21:01:48 +0200, Denis Laxalde wrote:
> > > # HG changeset patch
> > > # User Denis Laxalde <denis@laxalde.org>
> > > # Date 1508264743 -7200
> > > #      Tue Oct 17 20:25:43 2017 +0200
> > > # Node ID 9af9aa26a601cf26aca9320d0384857fe09fa28b
> > > # Parent  68e0bcb903572cb3641c1b1ac11bdcf47d4ff5ac
> > > # EXP-Topic show-obs-info
> > > 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`.
> > >
> > > diff --git a/mercurial/templates/map-cmdline.show
> > b/mercurial/templates/map-cmdline.show
> > > --- a/mercurial/templates/map-cmdline.show
> > > +++ b/mercurial/templates/map-cmdline.show
> > > @@ -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
> >
> > As a side effect, 'hg log -Tshow' becomes an alias for -Tdefault. Perhaps,
> > map-cmdline.show should be merged into map-cmdline.default.
> 
> I agree. map-cmdline.show's existence is mostly a side-effect of me a) not
> fully understanding the templating code b) wanting to draw a clear boundary
> between show's templates (which aren't covered by BC). We can call out
> show's templates via inline code comments :)

Thanks. Let's fix that after 4.4 release. Just merging them would make
the map file a bit messier.

Patch

diff --git a/mercurial/templates/map-cmdline.show b/mercurial/templates/map-cmdline.show
--- a/mercurial/templates/map-cmdline.show
+++ b/mercurial/templates/map-cmdline.show
@@ -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 @@  showbookmarks = '{if(active, "*", " ")} 
 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))}'
diff --git a/tests/test-show-work.t b/tests/test-show-work.t
--- a/tests/test-show-work.t
+++ b/tests/test-show-work.t
@@ -234,6 +234,20 @@  Extra namespaces are rendered
   o  6a75 (r1) commit 2
   o  97fc (r0) commit 1
 
+Obsolescence information appears in labels.
+
+  $ cat >> .hg/hgrc << EOF
+  > [experimental]
+  > stabilization=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