[PATCH] color: enable branches support
Brodie Rao
brodie at bitheap.org
Tue Aug 17 18:01:19 CDT 2010
Hi Jeremy,
On Aug 2, 2010, at 1:31 PM, Jeremy Whitlock wrote:
> # HG changeset patch
> # User Jeremy Whitlock <jcscoobyrs at gmail.com>
> # Date 1280379903 21600
> # Node ID be71293070b9de8b3b88df54ae344c4b673fb06b
> # Parent b43cfaf571d600a3b0699c4a077b3cf9d8c3975e
> 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.
This looks good, thanks!
Unfortunately, the test format for test-branches has changed just
recently. I'll patchbomb a version of your patch that uses the new
unified test format.
> diff -r b43cfaf571d6 -r be71293070b9 hgext/color.py
> --- a/hgext/color.py Mon Aug 02 10:55:51 2010 -0500
> +++ 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',
> diff -r b43cfaf571d6 -r be71293070b9 mercurial/commands.py
> --- a/mercurial/commands.py Mon Aug 02 10:55:51 2010 -0500
> +++ 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
> diff -r b43cfaf571d6 -r be71293070b9 tests/test-branches
> --- a/tests/test-branches Mon Aug 02 10:55:51 2010 -0500
> +++ b/tests/test-branches Wed Jul 28 23:05:03 2010 -0600
> @@ -92,3 +92,28 @@
> echo '% branch b'
> hg heads b
> hg heads --closed b
> +
> +echo "[extensions]" >> $HGRCPATH
> +echo "color =" >> $HGRCPATH
> +
> +hg up -C c
> +hg commit -d '9 0' --close-branch -m 'reclosing this branch'
> +hg up -C b
> +echo '--- test default branch colors'
> +hg branches --color=always
> +echo '--- test default closed branch color'
> +hg branches --color=always --closed
> +
> +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
> +
> +echo '--- test custom branch colors'
> +hg branches --color=always
> +echo '--- test custom closed branch color'
> +hg branches --color=always --closed
> diff -r b43cfaf571d6 -r be71293070b9 tests/test-branches.out
> --- a/tests/test-branches.out Mon Aug 02 10:55:51 2010 -0500
> +++ b/tests/test-branches.out Wed Jul 28 23:05:03 2010 -0600
> @@ -242,3 +242,27 @@
> date: Thu Jan 01 00:00:09 1970 +0000
> summary: prune bad branch
>
> +3 files updated, 0 files merged, 2 files removed, 0 files unresolved
> +2 files updated, 0 files merged, 3 files removed, 0 files unresolved
> +--- test default branch colors
> +[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)
> +--- test default closed branch color
> +[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)
> +--- test custom branch colors
> +[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)
> +--- test custom closed branch color
> +[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)
More information about the Mercurial-devel
mailing list