On 10/15/2016 02:36 PM, Yuya Nishihara wrote:
On Mon, 10 Oct 2016 14:33:18 +0200, Denis Laxalde wrote:
# HG changeset patch
# User Denis Laxalde <denis.laxa...@logilab.fr>
# Date 1476094018 -7200
#      Mon Oct 10 12:06:58 2016 +0200
# Node ID d9f7776c40b8c82bf438322f2442d99c4e116161
# Parent  6c916ce602f5c92c5a5a4de954629670b8c7ca8c
# EXP-Topic evolve-ui
cmdutil: add support for evolution "troubles" display in changeset_printer

Add a "troubles" line in changeset header along with a couple of labels on
"log.changeset" line to indicate whether a changeset is troubled or not and
which kind trouble occurs.

Extract a _changesetlabels function to be reused in summary command.

diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -1204,6 +1204,14 @@ def diffordiffstat(ui, repo, diffopts, n
             sub.diff(ui, diffopts, tempnode2, submatch, changes=changes,
                      stat=stat, fp=fp, prefix=prefix)

+def _changesetlabels(ctx):
+    labels = ['log.changeset', 'changeset.%s' % ctx.phasestr()]
+    if ctx.troubled():
+        labels.append('changeset.troubled')
+        for trouble in ctx.troubles():
+            labels.append('trouble.%s' % trouble)
+    return ' '.join(labels)
 class changeset_printer(object):
     '''show changeset information when templating not requested.'''

@@ -1264,7 +1272,7 @@ class changeset_printer(object):

         # i18n: column positioning for "hg log"
         self.ui.write(_("changeset:   %d:%s\n") % revnode,
-                      label='log.changeset changeset.%s' % ctx.phasestr())
+                      label=_changesetlabels(ctx))

         # branches are shown first before any other names due to backwards
         # compatibility
@@ -1309,6 +1317,10 @@ class changeset_printer(object):
         self.ui.write(_("date:        %s\n") % date,

+        if ctx.troubled():
+            self.ui.write(_("troubles:    %s\n") % ', '.join(ctx.troubles()),
+                          label='ui.note log.troubles')

The change looks good, but I have no idea if we can expose "troubles",
"troubled", etc. as a public API. I have a vague memory someone saying
"trouble" sounds trange to native speakers.

There have been discussion about the name of the trouble them-self too.

My personal opinion about this is:

- concerns have been expressed for years without actual progress made, so I think we should take this change at the beginning of the 4.1 cycle. This should give time to adjust naming if necessary.

- As long as Evolution and its bits are flagged as experimental we have some room to make change there.

And we'll need to update templates/map-cmdline.default to reflect this change.

+1, we could have some special mode that use the default cmdline template instead of the dedicated code and run the tests for it in a buildbot.

Pierre-Yves David
Mercurial-devel mailing list

Reply via email to