Mercurial > hg
changeset 11969:52ec5c813723
color: enable branches support
This commit updates the branches command to use ui.label for the branch names
and the changeset. This implementation allows assigning colors to the four
states of a branch: active, closed, current and inactive. While you can
configure color for the four states, only current and closed have default colors
of green and black bold respectively.
author | Jeremy Whitlock <jcscoobyrs@gmail.com> |
---|---|
date | Wed, 28 Jul 2010 23:05:03 -0600 |
parents | 66521d25c2a6 |
children | fca15617721c |
files | hgext/color.py mercurial/commands.py tests/test-branches.t |
diffstat | 3 files changed, 67 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/color.py Wed Aug 18 23:37:26 2010 +0200 +++ b/hgext/color.py Wed Jul 28 23:05:03 2010 -0600 @@ -62,6 +62,11 @@ bookmarks.current = green + branches.active = none + branches.closed = black bold + branches.current = green + branches.inactive = none + The color extension will try to detect whether to use ANSI codes or Win32 console APIs, unless it is made explicit:: @@ -87,6 +92,10 @@ 'cyan_background': 46, 'white_background': 47} _styles = {'grep.match': 'red bold', + 'branches.active': 'none', + 'branches.closed': 'black bold', + 'branches.current': 'green', + 'branches.inactive': 'none', 'diff.changed': 'white', 'diff.deleted': 'red', 'diff.diffline': 'bold',
--- a/mercurial/commands.py Wed Aug 18 23:37:26 2010 +0200 +++ b/mercurial/commands.py Wed Jul 28 23:05:03 2010 -0600 @@ -512,16 +512,22 @@ else: hn = repo.lookup(node) if isactive: + label = 'branches.active' notice = '' elif hn not in repo.branchheads(tag, closed=False): if not closed: continue + label = 'branches.closed' notice = _(' (closed)') else: + label = 'branches.inactive' notice = _(' (inactive)') + if tag == repo.dirstate.branch(): + label = 'branches.current' rev = str(node).rjust(31 - encoding.colwidth(encodedtag)) - data = encodedtag, rev, hexfunc(hn), notice - ui.write("%s %s:%s%s\n" % data) + rev = ui.label('%s:%s' % (rev, hexfunc(hn)), 'log.changeset') + encodedtag = ui.label(encodedtag, label) + ui.write("%s %s%s\n" % (encodedtag, rev, notice)) def bundle(ui, repo, fname, dest=None, **opts): """create a changegroup file
--- a/tests/test-branches.t Wed Aug 18 23:37:26 2010 +0200 +++ b/tests/test-branches.t Wed Jul 28 23:05:03 2010 -0600 @@ -341,3 +341,53 @@ date: Thu Jan 01 00:00:09 1970 +0000 summary: prune bad branch +default branch colors: + + $ echo "[extensions]" >> $HGRCPATH + $ echo "color =" >> $HGRCPATH + + $ hg up -C c + 3 files updated, 0 files merged, 2 files removed, 0 files unresolved + $ hg commit -d '9 0' --close-branch -m 'reclosing this branch' + $ hg up -C b + 2 files updated, 0 files merged, 3 files removed, 0 files unresolved + $ hg branches --color=always + [0;32mb[0m [0;33m 13:6ac12926b8c3[0m + [0;0ma branch name much longer than the default justification used by branches[0m [0;33m7:10ff5895aa57[0m + [0;0ma[0m [0;33m 5:d8cbc61dbaa6[0m (inactive) + [0;0mdefault[0m [0;33m 0:19709c5a4e75[0m (inactive) + +default closed branch color: + + $ hg branches --color=always --closed + [0;32mb[0m [0;33m 13:6ac12926b8c3[0m + [0;0ma branch name much longer than the default justification used by branches[0m [0;33m7:10ff5895aa57[0m + [0;30;1mc[0m [0;33m 14:717d2e6fabe1[0m (closed) + [0;0ma[0m [0;33m 5:d8cbc61dbaa6[0m (inactive) + [0;0mdefault[0m [0;33m 0:19709c5a4e75[0m (inactive) + + $ echo "[extensions]" >> $HGRCPATH + $ echo "color =" >> $HGRCPATH + $ echo "[color]" >> $HGRCPATH + $ echo "branches.active = green" >> $HGRCPATH + $ echo "branches.closed = blue" >> $HGRCPATH + $ echo "branches.current = red" >> $HGRCPATH + $ echo "branches.inactive = magenta" >> $HGRCPATH + $ echo "log.changeset = cyan" >> $HGRCPATH + +custom branch colors: + + $ hg branches --color=always + [0;31mb[0m [0;36m 13:6ac12926b8c3[0m + [0;32ma branch name much longer than the default justification used by branches[0m [0;36m7:10ff5895aa57[0m + [0;35ma[0m [0;36m 5:d8cbc61dbaa6[0m (inactive) + [0;35mdefault[0m [0;36m 0:19709c5a4e75[0m (inactive) + +custom closed branch color: + + $ hg branches --color=always --closed + [0;31mb[0m [0;36m 13:6ac12926b8c3[0m + [0;32ma branch name much longer than the default justification used by branches[0m [0;36m7:10ff5895aa57[0m + [0;34mc[0m [0;36m 14:717d2e6fabe1[0m (closed) + [0;35ma[0m [0;36m 5:d8cbc61dbaa6[0m (inactive) + [0;35mdefault[0m [0;36m 0:19709c5a4e75[0m (inactive)