Re: BUG: CR marker ^M doesn't show up in '-' lines of diffs when the ending of the removed line is CR+LF
- From
- Frank Schäfer <fschaefer.oss@googlemail.com>
- Date
- Nov 25, 2018, 14:03 UTC
- Message-ID
- <2858f03b-89a7-be52-501f-55b6d281bebc@googlemail.com>
- In-Reply-To
- <80ffe850-b966-a37b-09bd-44e04d769944@kdbg.org>
Am 24.11.18 um 23:07 schrieb Johannes Sixt:
> I don't think that there is anything to fix. If you have a file with > CRLF in it, but you did not declare to Git that CRLF is the expected > end-of-line indicator, then the CR *is* trailing whitespace (because > the line ends at LF), and 'git diff' highlights it.
Sure, it's correct to highlight it. But it doesn't highlight it in removed lines, just in added lines. I can see no good reason why removed and added lines should be treated differently.
Let me give you two real-life examples: 1) If CR+LF line termination is used in a file, changing the content of a line (but not its termination) currently produces a diff like
-something +something_new^M
which causes the user to think he has changed the line ending (added a CR) although he didn't.
2) If someone/something unintentionally changes the line termination from CR+LF to LF, it doesn't show up in the diff:
-something +something
I don't think this behavior makes sense. At least it's IMHO not what users expect to see. They want to see what's really going on, not to get confused.
Regards, Frank