Patchwork [2,of,2] show: add basic labels to work template

login
register
mail settings
Submitter Gregory Szorc
Date April 18, 2017, 6:21 p.m.
Message ID <7f5f78179f5f6afc0f4b.1492539709@ubuntu-vm-main>
Download mbox | patch
Permalink /patch/20257/
State Accepted
Headers show

Comments

Gregory Szorc - April 18, 2017, 6:21 p.m.
# HG changeset patch
# User Gregory Szorc <gregory.szorc@gmail.com>
# Date 1492539008 25200
#      Tue Apr 18 11:10:08 2017 -0700
# Node ID 7f5f78179f5f6afc0f4bea52aa03f1431e03d3d9
# Parent  d8d4b4acc68859f90f8759309803b116b67a9371
show: add basic labels to work template

`hg show work` is much more usable if output is colored. This patch
implements coloring via label() in a very hacky way.

In a default Mercurial install, you'll see yellow node labels for all
phases. Branches and bookmarks use the same formatting as the commit
message. So this change doesn't help much in a default install. But if
you have a custom colors defined for these things, output is much more
readable.

The implementation obviously needs some work. But for a minor change
on a feature that isn't convered by BC, this seems like a clear win
for the feature in 4.2.
Sean Farley - April 20, 2017, 5:06 p.m.
Gregory Szorc <gregory.szorc@gmail.com> writes:

> # HG changeset patch
> # User Gregory Szorc <gregory.szorc@gmail.com>
> # Date 1492539008 25200
> #      Tue Apr 18 11:10:08 2017 -0700
> # Node ID 7f5f78179f5f6afc0f4bea52aa03f1431e03d3d9
> # Parent  d8d4b4acc68859f90f8759309803b116b67a9371
> show: add basic labels to work template
>
> `hg show work` is much more usable if output is colored. This patch
> implements coloring via label() in a very hacky way.
>
> In a default Mercurial install, you'll see yellow node labels for all
> phases. Branches and bookmarks use the same formatting as the commit
> message. So this change doesn't help much in a default install. But if
> you have a custom colors defined for these things, output is much more
> readable.
>
> The implementation obviously needs some work. But for a minor change
> on a feature that isn't convered by BC, this seems like a clear win
> for the feature in 4.2.

Do we add this after the rc now? My guess is no but it does seem nice
for 4.2 (shrug)
Gregory Szorc - April 21, 2017, 6:45 a.m.
On Thu, Apr 20, 2017 at 10:06 AM, Sean Farley <sean@farley.io> wrote:

> Gregory Szorc <gregory.szorc@gmail.com> writes:
>
> > # HG changeset patch
> > # User Gregory Szorc <gregory.szorc@gmail.com>
> > # Date 1492539008 25200
> > #      Tue Apr 18 11:10:08 2017 -0700
> > # Node ID 7f5f78179f5f6afc0f4bea52aa03f1431e03d3d9
> > # Parent  d8d4b4acc68859f90f8759309803b116b67a9371
> > show: add basic labels to work template
> >
> > `hg show work` is much more usable if output is colored. This patch
> > implements coloring via label() in a very hacky way.
> >
> > In a default Mercurial install, you'll see yellow node labels for all
> > phases. Branches and bookmarks use the same formatting as the commit
> > message. So this change doesn't help much in a default install. But if
> > you have a custom colors defined for these things, output is much more
> > readable.
> >
> > The implementation obviously needs some work. But for a minor change
> > on a feature that isn't convered by BC, this seems like a clear win
> > for the feature in 4.2.
>
> Do we add this after the rc now? My guess is no but it does seem nice
> for 4.2 (shrug)
>

I thought I would get these in before 4.2 RC. I guess not. Given the highly
experimental nature of show, I'd still like to sneak them in if possible.
Yuya Nishihara - April 21, 2017, 1:15 p.m.
On Thu, 20 Apr 2017 23:45:53 -0700, Gregory Szorc wrote:
> On Thu, Apr 20, 2017 at 10:06 AM, Sean Farley <sean@farley.io> wrote:
> > Gregory Szorc <gregory.szorc@gmail.com> writes:
> > > # HG changeset patch
> > > # User Gregory Szorc <gregory.szorc@gmail.com>
> > > # Date 1492539008 25200
> > > #      Tue Apr 18 11:10:08 2017 -0700
> > > # Node ID 7f5f78179f5f6afc0f4bea52aa03f1431e03d3d9
> > > # Parent  d8d4b4acc68859f90f8759309803b116b67a9371
> > > show: add basic labels to work template
> > >
> > > `hg show work` is much more usable if output is colored. This patch
> > > implements coloring via label() in a very hacky way.
> > >
> > > In a default Mercurial install, you'll see yellow node labels for all
> > > phases. Branches and bookmarks use the same formatting as the commit
> > > message. So this change doesn't help much in a default install. But if
> > > you have a custom colors defined for these things, output is much more
> > > readable.
> > >
> > > The implementation obviously needs some work. But for a minor change
> > > on a feature that isn't convered by BC, this seems like a clear win
> > > for the feature in 4.2.
> >
> > Do we add this after the rc now? My guess is no but it does seem nice
> > for 4.2 (shrug)
> >
> 
> I thought I would get these in before 4.2 RC. I guess not. Given the highly
> experimental nature of show, I'd still like to sneak them in if possible.

Is it generally allowed to take this kind of patches during freeze? I don't
want to waste time deciding which is good or bad for stable.

FWIW, these patches look good.
Gregory Szorc - April 21, 2017, 6:34 p.m.
On Fri, Apr 21, 2017 at 6:15 AM, Yuya Nishihara <yuya@tcha.org> wrote:

> On Thu, 20 Apr 2017 23:45:53 -0700, Gregory Szorc wrote:
> > On Thu, Apr 20, 2017 at 10:06 AM, Sean Farley <sean@farley.io> wrote:
> > > Gregory Szorc <gregory.szorc@gmail.com> writes:
> > > > # HG changeset patch
> > > > # User Gregory Szorc <gregory.szorc@gmail.com>
> > > > # Date 1492539008 25200
> > > > #      Tue Apr 18 11:10:08 2017 -0700
> > > > # Node ID 7f5f78179f5f6afc0f4bea52aa03f1431e03d3d9
> > > > # Parent  d8d4b4acc68859f90f8759309803b116b67a9371
> > > > show: add basic labels to work template
> > > >
> > > > `hg show work` is much more usable if output is colored. This patch
> > > > implements coloring via label() in a very hacky way.
> > > >
> > > > In a default Mercurial install, you'll see yellow node labels for all
> > > > phases. Branches and bookmarks use the same formatting as the commit
> > > > message. So this change doesn't help much in a default install. But
> if
> > > > you have a custom colors defined for these things, output is much
> more
> > > > readable.
> > > >
> > > > The implementation obviously needs some work. But for a minor change
> > > > on a feature that isn't convered by BC, this seems like a clear win
> > > > for the feature in 4.2.
> > >
> > > Do we add this after the rc now? My guess is no but it does seem nice
> > > for 4.2 (shrug)
> > >
> >
> > I thought I would get these in before 4.2 RC. I guess not. Given the
> highly
> > experimental nature of show, I'd still like to sneak them in if possible.
>
> Is it generally allowed to take this kind of patches during freeze? I don't
> want to waste time deciding which is good or bad for stable.
>

Generally, no. But `hg show` is extremely experimental and in its current
state barely worth shipping, IMO. So I'm not sure what rules apply.


>
> FWIW, these patches look good.
>
Augie Fackler - April 21, 2017, 7:40 p.m.
On Fri, Apr 21, 2017 at 10:15:40PM +0900, Yuya Nishihara wrote:
> On Thu, 20 Apr 2017 23:45:53 -0700, Gregory Szorc wrote:
> > On Thu, Apr 20, 2017 at 10:06 AM, Sean Farley <sean@farley.io> wrote:
> > > Gregory Szorc <gregory.szorc@gmail.com> writes:
> > > > # HG changeset patch
> > > > # User Gregory Szorc <gregory.szorc@gmail.com>
> > > > # Date 1492539008 25200
> > > > #      Tue Apr 18 11:10:08 2017 -0700
> > > > # Node ID 7f5f78179f5f6afc0f4bea52aa03f1431e03d3d9
> > > > # Parent  d8d4b4acc68859f90f8759309803b116b67a9371
> > > > show: add basic labels to work template
> > > >
> > > > `hg show work` is much more usable if output is colored. This patch
> > > > implements coloring via label() in a very hacky way.
> > > >
> > > > In a default Mercurial install, you'll see yellow node labels for all
> > > > phases. Branches and bookmarks use the same formatting as the commit
> > > > message. So this change doesn't help much in a default install. But if
> > > > you have a custom colors defined for these things, output is much more
> > > > readable.
> > > >
> > > > The implementation obviously needs some work. But for a minor change
> > > > on a feature that isn't convered by BC, this seems like a clear win
> > > > for the feature in 4.2.
> > >
> > > Do we add this after the rc now? My guess is no but it does seem nice
> > > for 4.2 (shrug)
> > >
> >
> > I thought I would get these in before 4.2 RC. I guess not. Given the highly
> > experimental nature of show, I'd still like to sneak them in if possible.
>
> Is it generally allowed to take this kind of patches during freeze? I don't
> want to waste time deciding which is good or bad for stable.

In general, we wouldn't do this, but given the experimental nature of
show, and how this is a much better name, I'm going to take these.

>
> FWIW, these patches look good.
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel@mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

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,3 +1,9 @@ 
-# TODO add label() once we figure out which namespace the labels belong on.
+# TODO there are a few deficiencies in this file:
+# * Due to the way the file is loaded, references to other entities in the
+#   template doesn't work. That requires us to inline.
+# * 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.
 showbookmarks = '{if(active, "*", " ")} {pad(bookmark, longestbookmarklen + 4)}{shortest(node, 5)}\n'
-showwork = '{shortest(node, 5)}{if(branches, " ({branch})")}{if(bookmarks, " ({bookmarks})")} {desc|firstline}'
+showwork = '{label("log.changeset changeset.{phase}", shortest(node, 5))}{if(branches, " ({label("log.branch", branch)})")}{if(bookmarks, " ({label("log.bookmarks", bookmarks)})")} {label("log.description", desc|firstline)}'