color: colorize based on output labels instead of parsing output
By overriding ui.write(), ui.write_err(), ui.popbuffer(), and ui.label(),
the color extension can avoid parsing command output and simply colorize
output based on labels.
As before, the color extension provides a list of default colors for
core commands/labels. Other extensions can provide their own defaults by
specifying a colortable dict (similar to cmdtable).
In this process, --color is promoted to a global option and the deprecated
--no-color option is removed.
% no repo
abort: There is no Mercurial repository here (.hg not found)
% create repo
adding a
% basic id usage
cb9a9f314b8b tip
cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b tip
cb9a9f314b8b
cb9a9f314b8b tip
% with options
cb9a9f314b8b tip
0
tip
default
cb9a9f314b8b
cb9a9f314b8b 0 default tip
% with modifications
cb9a9f314b8b+ 0+ default tip
% other local repo
cb9a9f314b8b+ tip
cb9a9f314b8b+ tip
% with remote http repo
cb9a9f314b8b
% remote with tags?
abort: can't query remote revision number, branch, or tags