Subject: [PATCH 0/7] color fixes and configurable diff-highlight

From: Jeff King <[email-masked]>
Date: Thu, 20 Nov 2014 10:14:19 -0500

On Wed, Nov 12, 2014 at 09:59:35AM -0800, Scott Baker wrote:

> It's 2014, most terminals are at least 256 colors. I'm fine if the
> defaults are 16 colors (that's safest), but it would be really cool if
> we could have an option for:
> 
> line add color
> line remove color
> word add color
> word remove color
> 
> I would then configure appropriate colors from the 256 color palette. I
> think the Github style diffs which include the lines/words that are
> changed are very readable and make dealing with diffs easier.

I thought I'd just procrastinate for an hour by doing this, but somehow
it turned into a 7-patch series.

The first few are actual fixes I noticed along the way.

Patches 4 and 5 support RGB-mode, which works on XTerm, at least (we
This is probably excessive over 256-color mode (which we already
supported), but I find the resulting color specifications significantly
easier to understand (quick, what's ANSI color 137?).

Patch 6 implements negative attributes (like "nobold"). This is probably
not all that useful for normal git color specs, but is required for
diff-highlight, which wants to leave some attributes untouched.

Patch 7 is the part you actually asked for. :)

  [1/7]: docs: describe ANSI 256-color mode
  [2/7]: config: fix parsing of "git config --get-color some.key -1"
  [3/7]: t4026: test "normal" color
  [4/7]: parse_color: refactor color storage
  [5/7]: parse_color: support 24-bit RGB values
  [6/7]: parse_color: recognize "no$foo" to clear the $foo attribute
  [7/7]: diff-highlight: allow configurable colors

-Peff