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

3 messages from 2008-03-17 to 2008-03-18. Participants: Dirk Süsserott.
Thread: https://gitlist.dev/t/12727

## Dirk Süsserott, 2008-03-17 19:18

Subject: gitk: how to apply '--color-words' to the diff command
Message-ID: <47DEC41D.9050409@dirk.my1.cc>
URL: https://gitlist.dev/e/47DEC41D.9050409%40dirk.my1.cc

```
Hello,

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.

Dirk

```

## Dirk Süsserott, 2008-03-18 20:55

Subject: Re: gitk: how to apply '--color-words' to the diff command
Message-ID: <47E02C32.10009@suesserott.de>
URL: https://gitlist.dev/e/47E02C32.10009%40suesserott.de
In-Reply-To: <47DEC41D.9050409@dirk.my1.cc>

```
>
> 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

```

## Dirk Süsserott, 2008-03-18 20:58

Subject: Re: gitk: how to apply '--color-words' to the diff command
Message-ID: <47E02D00.2080703@dirk.my1.cc>
URL: https://gitlist.dev/e/47E02D00.2080703%40dirk.my1.cc
In-Reply-To: <47DEC41D.9050409@dirk.my1.cc>

```
>
> 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. Sorry for that.

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.

Sorry for the noise.

Dirk

```
