Subject: Re: gitk: how to apply '--color-words' to the diff command

From: Dirk Süsserott <[email-masked]>
Date: Tue, 18 Mar 2008 21:55:14 +0100

>
> a few days ago I found a patch for gitk that adds a checkbox 'Ignore 
> space change' to the gitk GUI and -- when clicked -- adds the '-w' 
> switch to the diff command. I found that a very convenient way to see 
> 'what has really changed'. The patch was contributed by Steffen 
> Prohaska and has sha1 b9b86007e27d9a06d58feab618a5be1d491ed13e in the
> git://git.kernel.org/pub/scm/git/git.git repository.
>
> Inspired by this, I thought a '--color-words' switch would be even more
> convenient. I took the patch as a template and kinda replaced all
> occurences of '-w' with '--color-words' (do not take this literally).
>
> Unfortunately gitk then shows the diffs not colorized but with those 
> ugly escape sequences instead. I'm not a Python person and just able 
> to 'copy and waste', but probably some of you had the same idea and 
> got it right.
>
I'm not only not a Python person but also not a Tcl person. Did't even 
figure out the difference. :-(

However, what I figured out is that it's not as simple as I thought: The 
colorization in question is hard coded in the last 'else' branch of 
'getblobdiffline'. When a line starts with a '+' or '-', then it's shown 
in green or red. To support the --color-words switch it would be 
neccessary to actually parse diff's output wrt. to the colors. Not that 
easy, I guess.

Sorry for the noise.

Dirk