[PATCH 3 of 4] templates: add 'bisect' keyword to return a cset's bisect status
Yann E. MORIN
yann.morin.1998 at anciens.enib.fr
Wed Sep 21 19:10:19 CDT 2011
# HG changeset patch
# User "Yann E. MORIN" <yann.morin.1998 at anciens.enib.fr>
# Date 1316648161 -7200
# Node ID b06397d18c1bef158b180cd30bc887d6f77ee62f
# Parent 38490dd8eadf5c5e8b77ad2582328d6a4caf1f86
templates: add 'bisect' keyword to return a cset's bisect status
This new 'bisect' keyword expands to a cset's bisection status (good, bad
and so on...). There is also a new 'shortbisect' filter that yields a
single char representing the cset's bisection status.
It uses the two recently-added hbisect.label() and .shortlabel() functions.
Example output using the repository in test-bisect2.t, and some made-up
state of the 'end at merge' test (with graphlog, it's so explicit):
$ hg glog --template '{rev}:{node|short} {bisect}\n' \
-r 'bisect(range)|bisect(ignored)'
o 17:228c06deef46: bad
|
o 16:609d82a7ebae: bad (implicit)
|
o 15:857b178a7cf3: bad
|\
| o 13:b0a32c86eb31: good
| |
| o 12:9f259202bbe7: good (implicit)
| |
| o 11:82ca6f06eccd: good
| |
@ | 10:429fcd26f52d: untested
|\ \
| o | 9:3c77083deb4a: skipped
| |/
| o 8:dab8161ac8fc: good
| |
o | 6:a214d5d3811a: ignored
|\ \
| o | 5:385a529b6670: ignored
| | |
o | | 4:5c668c22234f: ignored
| | |
o | | 3:0950834f0a9c: ignored
|/ /
o / 2:051e12f87bf1: ignored
|/
And now the same with the short label:
$ hg log --template '{bisect|shortbisect} {rev}:{node|short}\n'
18:d42e18c7bc9b
- 17:228c06deef46
- 16:609d82a7ebae
- 15:857b178a7cf3
14:faa450606157
+ 13:b0a32c86eb31
+ 12:9f259202bbe7
+ 11:82ca6f06eccd
? 10:429fcd26f52d
< 9:3c77083deb4a
+ 8:dab8161ac8fc
7:50c76098bbf2
! 6:a214d5d3811a
! 5:385a529b6670
! 4:5c668c22234f
! 3:0950834f0a9c
! 2:051e12f87bf1
1:4ca5088da217
0:33b1f9bc8bc5
Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at anciens.enib.fr>
diff --git a/mercurial/templatefilters.py b/mercurial/templatefilters.py
--- a/mercurial/templatefilters.py
+++ b/mercurial/templatefilters.py
@@ -7,6 +7,7 @@
import cgi, re, os, time, urllib
import encoding, node, util
+import hbisect
def addbreaks(text):
""":addbreaks: Any text. Add an XHTML "<br />" tag before the end of
@@ -268,6 +269,14 @@
"""
return text[:12]
+def shortbisect(text):
+ """:shortbisect: Any text. Treats `text` as a bisection status, and
+ returns a single-character representing the status (+: good, -: bad,
+ <: skipped, ?: untested, !: ignored). Returns single space if `text`
+ is not a valid bisection status.
+ """
+ return hbisect.shortlabel(text) or ' '
+
def shortdate(text):
""":shortdate: Date. Returns a date like "2006-09-18"."""
return util.shortdate(text)
@@ -347,6 +356,7 @@
"rfc3339date": rfc3339date,
"rfc822date": rfc822date,
"short": short,
+ "shortbisect": shortbisect,
"shortdate": shortdate,
"stringescape": stringescape,
"stringify": stringify,
diff --git a/mercurial/templatekw.py b/mercurial/templatekw.py
--- a/mercurial/templatekw.py
+++ b/mercurial/templatekw.py
@@ -7,6 +7,7 @@
from node import hex
import patch, util, error
+import hbisect
def showlist(name, values, plural=None, **args):
'''expand set of values.
@@ -145,6 +146,10 @@
""":author: String. The unmodified author of the changeset."""
return ctx.user()
+def showbisect(repo, ctx, templ, **args):
+ """:bisect: String. The changeset bisection status."""
+ return hbisect.label(repo, ctx.node())
+
def showbranch(**args):
""":branch: String. The name of the branch on which the changeset was
committed.
@@ -288,6 +293,7 @@
# revcache - a cache dictionary for the current revision
keywords = {
'author': showauthor,
+ 'bisect': showbisect,
'branch': showbranch,
'branches': showbranches,
'bookmarks': showbookmarks,
More information about the Mercurial-devel
mailing list