threads / discuss / 13651

git-diff cr/nl files on linux

Subject: git-diff cr/nl files on linux

## tl;dr

6 messages between May 24, 2008 and May 26, 2008.

replies: 5people: 4as markdown or json

Dirk Süsserott· May 24, 2008, 13:01 UTC · re: Nguyen Thai Ngoc Duy · lore

Re: git-diff cr/nl files on linux

Nguyen Thai Ngoc Duy schrieb:
Show 7 quoted lines
> Hi,
>
> Is there any way that can make git-diff show cr/nl ending files on
> linux without ^M at the end?
>
> Thanks
>   

What about 'git diff -w'? It drops any whitespace changes, including ^M's. Not sure whether that is what you meant.

Nguyen Thai Ngoc Duy· May 26, 2008, 04:15 UTC · re: Dirk Süsserott · lore

Re: git-diff cr/nl files on linux

On Sat, May 24, 2008 at 8:01 PM, Dirk Süsserott <newsletter@dirk.my1.cc> wrote:
Show 12 quoted lines
> Nguyen Thai Ngoc Duy schrieb:
>>
>> Hi,
>>
>> Is there any way that can make git-diff show cr/nl ending files on
>> linux without ^M at the end?
>>
>> Thanks
>>
>
> What about 'git diff -w'? It drops any whitespace changes, including ^M's.
> Not sure whether that is what you meant.
That won't help. Here is a snippet of what I see:
diff --git a/abc.c b/abc.c
index 064a769..647b9ae 100644
--- a/abc.c
+++ b/abc.c
@@ -859,7 +859,10 @@ int def
     )
     {
     FAST int asdsa;
-    FAST int dsdsad;
+    FAST int dsadadd;          /* ERROR also means AASAS */^M
+#ifndef JHASHJJH^M
+    struct sdddd dasdada;^M
+#endif^M
     union sddd asdsdad;
     FAST STATUS dsadadad;
     unsigned int sdadadad = 0;

With color turning off, it does not show ^M so probably something to
do with the coloring. less is at version 394.
-- 
Duy
Junio C Hamano· May 26, 2008, 04:37 UTC · re: Nguyen Thai Ngoc Duy · lore

Re: git-diff cr/nl files on linux

"Nguyen Thai Ngoc Duy" <pclouds@gmail.com> writes:
Show 6 quoted lines
> On Sat, May 24, 2008 at 8:01 PM, Dirk Süsserott <newsletter@dirk.my1.cc> wrote:
> ...
>> What about 'git diff -w'? It drops any whitespace changes, including ^M's.
>> Not sure whether that is what you meant.
>
> That won't help.

Just like GNU diff, the only thing -w (and -b) does is to omit hunks whose changes consist of _only whitespace changes_ and nothing else.

In your quoted example, you have changes other than whitespace changes, so it is unsurprising that you will see the whole change, together with your whitespace changes.

Johannes Sixt· May 26, 2008, 06:34 UTC · re: Nguyen Thai Ngoc Duy · lore

Re: git-diff cr/nl files on linux

Nguyen Thai Ngoc Duy schrieb:
Show 33 quoted lines
> On Sat, May 24, 2008 at 8:01 PM, Dirk Süsserott <newsletter@dirk.my1.cc> wrote:
>> Nguyen Thai Ngoc Duy schrieb:
>>> Hi,
>>>
>>> Is there any way that can make git-diff show cr/nl ending files on
>>> linux without ^M at the end?
>>>
>>> Thanks
>>>
>> What about 'git diff -w'? It drops any whitespace changes, including ^M's.
>> Not sure whether that is what you meant.
> 
> That won't help. Here is a snippet of what I see:
> 
> diff --git a/abc.c b/abc.c
> index 064a769..647b9ae 100644
> --- a/abc.c
> +++ b/abc.c
> @@ -859,7 +859,10 @@ int def
>      )
>      {
>      FAST int asdsa;
> -    FAST int dsdsad;
> +    FAST int dsadadd;          /* ERROR also means AASAS */^M
> +#ifndef JHASHJJH^M
> +    struct sdddd dasdada;^M
> +#endif^M
>      union sddd asdsdad;
>      FAST STATUS dsadadad;
>      unsigned int sdadadad = 0;
> 
> With color turning off, it does not show ^M so probably something to
> do with the coloring. less is at version 394.

less does not show \r if it comes right before \n. But with diff-coloring turned on, the 'reset color' sequence is inserted between \r and \n; now less shows ^M for the \r because it's not next to the \n anymore.

-- Hannes
Nguyen Thai Ngoc Duy· May 26, 2008, 08:04 UTC · re: Johannes Sixt · lore

Re: git-diff cr/nl files on linux

On Mon, May 26, 2008 at 1:34 PM, Johannes Sixt <j.sixt@viscovery.net> wrote:
Show 39 quoted lines
> Nguyen Thai Ngoc Duy schrieb:
>> On Sat, May 24, 2008 at 8:01 PM, Dirk Süsserott <newsletter@dirk.my1.cc> wrote:
>>> Nguyen Thai Ngoc Duy schrieb:
>>>> Hi,
>>>>
>>>> Is there any way that can make git-diff show cr/nl ending files on
>>>> linux without ^M at the end?
>>>>
>>>> Thanks
>>>>
>>> What about 'git diff -w'? It drops any whitespace changes, including ^M's.
>>> Not sure whether that is what you meant.
>>
>> That won't help. Here is a snippet of what I see:
>>
>> diff --git a/abc.c b/abc.c
>> index 064a769..647b9ae 100644
>> --- a/abc.c
>> +++ b/abc.c
>> @@ -859,7 +859,10 @@ int def
>>      )
>>      {
>>      FAST int asdsa;
>> -    FAST int dsdsad;
>> +    FAST int dsadadd;          /* ERROR also means AASAS */^M
>> +#ifndef JHASHJJH^M
>> +    struct sdddd dasdada;^M
>> +#endif^M
>>      union sddd asdsdad;
>>      FAST STATUS dsadadad;
>>      unsigned int sdadadad = 0;
>>
>> With color turning off, it does not show ^M so probably something to
>> do with the coloring. less is at version 394.
>
> less does not show \r if it comes right before \n. But with diff-coloring
> turned on, the 'reset color' sequence is inserted between \r and \n; now
> less shows ^M for the \r because it's not next to the \n anymore.
>

Right. And setting core.whitespace = cr-at-eol fixes it (although difficult to find). Thank you all.

> -- Hannes
>
-- 
Duy

← back to recent threads