From patchwork Tue Apr 18 18:21:49 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [2,of,2] show: add basic labels to work template From: Gregory Szorc X-Patchwork-Id: 20257 Message-Id: <7f5f78179f5f6afc0f4b.1492539709@ubuntu-vm-main> To: mercurial-devel@mercurial-scm.org Date: Tue, 18 Apr 2017 11:21:49 -0700 # HG changeset patch # User Gregory Szorc # 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. 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)}'