threads / rfc / 53107

[RFC] Representation of diff with trailing spaces

Subject: [RFC] Representation of diff with trailing spaces

## tl;dr

3 messages between Mar 26, 2020 and Mar 26, 2020.

replies: 2people: 2as markdown or json

Sébastien BRUCKERT· Mar 26, 2020, 11:07 UTC · lore
Hello everyone,
This is my first RFC, I hope it is correct. Do not hesitate to correct me.

# Problem Trailing spaces are represented only when added in the diff, and not when removed.

# Abstract Something that always bothered me with git diff was how trailing spaces are represented. If I add spaces, then diff, they are represented in the terminal by a red background. If I then remove them, they are not represented. That's how I can have a diff with two exact lines, and I'm looking for the diff in it, but can't find it. Because it is the non-represented spaces.

# Reproducibility One picture is worth a thousand words, here is a little snippet of shell to see this by yourself: ``` mkdir test cd test

git init

cat << EOF > file This file contains line at the end before fix. EOF

git add file git diff --staged

sed -i 's/[[:blank:]]*$//' file

git add -p ```

# Solution proposed Show the trailing spaces in a diff when removed. No performance impact expected,

# Open point Maybe we could argue on which color for added trailing spaces, and removed ones, to differentiate them quickly in a big diff. For the moment, added spaces are red. Maybe they should be green, and removed should be red. Or the opposite. Or everything in red.

Thank you for taking the time to review my proposal!
Jeff King· Mar 26, 2020, 11:15 UTC · re: Sébastien BRUCKERT · lore

Re: [RFC] Representation of diff with trailing spaces

On Thu, Mar 26, 2020 at 12:07:55PM +0100, Sébastien BRUCKERT wrote:
Show 7 quoted lines
> # Abstract
> Something that always bothered me with git diff was how trailing
> spaces are represented. If I add spaces, then diff, they are
> represented in the terminal by a red background. If I then remove
> them, they are not represented. That's how I can have a diff with two
> exact lines, and I'm looking for the diff in it, but can't find it.
> Because it is the non-represented spaces.

Have you tried setting diff.wsErrorHighlight? By default we only highlight whitespace problems in new lines, but it can be told to show them in old lines or in context.

-Peff
Sébastien BRUCKERT· Mar 26, 2020, 12:40 UTC · re: Jeff King · lore

Re: [RFC] Representation of diff with trailing spaces

Show 13 quoted lines
> > # Abstract
> > Something that always bothered me with git diff was how trailing
> > spaces are represented. If I add spaces, then diff, they are
> > represented in the terminal by a red background. If I then remove
> > them, they are not represented. That's how I can have a diff with two
> > exact lines, and I'm looking for the diff in it, but can't find it.
> > Because it is the non-represented spaces.
>
> Have you tried setting diff.wsErrorHighlight? By default we only
> highlight whitespace problems in new lines, but it can be told to show
> them in old lines or in context.
>
> -Peff
Oh yes, that was what I was looking for, thank you Peff!
Well, if there is a config for it then, no need to change anything.

← back to recent threads