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.
#!/bin/sh
hg init
python -c 'print "confuse str.splitlines\nembedded\rnewline"' > a
hg ci -Ama -d '1 0'
echo clean diff >> a
hg ci -mb -d '2 0'
hg diff -r0 -r1