threads / discuss / 53956

Diff --stat for files that differ only in whitespace

Subject: Diff --stat for files that differ only in whitespace

## tl;dr

7 messages between Jul 31, 2020 and Jul 31, 2020.

replies: 6people: 3as markdown or json

Matt Rogers· Jul 31, 2020, 13:10 UTC · lore

When using a repository with "core.autocrlf=false" I'm trying to run a diff between two commits that have many files (~1000) changed that differ mostly in line endings or other whitespace. When I run `git diff --stat --ignore-all-space <commit-1> <commit-2>` I'm getting an output that has many files listed like:

some-file.txt | 0

This is easy enough to parse through when it's a small number of files but when there is ~1000 files with only maybe 1500 insertions/deletions showing it's not really useful to me to see a list of those 1000 files, if there was a way to sort by number of insertion/deletions or filter out the files that had 0 effective changes that would solve my problem.

Simple example:

``` mkdir example && cd example git init git config --local core.autocrlf false echo HELLO > file.txt echo WORLD >> file.txt git add file.txt git commit -m "first kind of line endings"

<use an editor to swap out the line endings> git add file.txt git commit -m "second kind of line endings"

git diff --stat --ignore-all-space HEAD~1 HEAD ```

Thanks, Matthew Rogers

Junio C Hamano· Jul 31, 2020, 17:32 UTC · re: Matt Rogers · lore

Re: Diff --stat for files that differ only in whitespace

Matt Rogers <mattr94@gmail.com> writes:
Show 7 quoted lines
> some-file.txt | 0
>
> This is easy enough to parse through when it's a small number of files but when
> there is ~1000 files with only maybe 1500 insertions/deletions showing it's not
> really useful to me to see a list of those 1000 files, if there was a way to
> sort by number of insertion/deletions or filter out the files that had 0
> effective changes that would solve my problem.

Whether you are interested in whitespace or not, if you are processing the diff output with scripts, --numstat (not --stat) may be simpler to work with.

Jeff King· Jul 31, 2020, 17:41 UTC · re: Matt Rogers · lore

Re: Diff --stat for files that differ only in whitespace

On Fri, Jul 31, 2020 at 09:10:44AM -0400, Matt Rogers wrote:
Show 7 quoted lines
> When using a repository with "core.autocrlf=false" I'm trying to run a diff
> between two commits that have many files (~1000) changed that differ mostly
> in line endings or other whitespace.  When I run
> `git diff --stat --ignore-all-space <commit-1> <commit-2>` I'm getting an output
> that has many files listed like:
> 
> some-file.txt | 0
This seemed familiar, so I dug up some prior discussion here:
  https://lore.kernel.org/git/1484704915.2096.16.camel@mattmccutchen.net/

We didn't come to a resolution there, but there is a patch to play with, and I think nobody was opposed to the notion that with the right code change we could be suppressing these whitespace-only stat lines

-Peff
Matt Rogers· Jul 31, 2020, 19:26 UTC · re: Jeff King · lore

Re: Diff --stat for files that differ only in whitespace

On Fri, Jul 31, 2020 at 1:41 PM Jeff King <peff@peff.net> wrote:
Show 10 quoted lines
>
> This seemed familiar, so I dug up some prior discussion here:
>
>   https://lore.kernel.org/git/1484704915.2096.16.camel@mattmccutchen.net/
>
> We didn't come to a resolution there, but there is a patch to play with,
> and I think nobody was opposed to the notion that with the right
> code change we could be suppressing these whitespace-only stat lines
>
> -Peff

I think for now I'm going to feed --numstat into a script like Junio suggested. Out of curiosity what would it take to get that patch into git? Is it just a matter of someone just verifying it and submitting it?

-- Matthew Rogers

Jeff King· Jul 31, 2020, 19:48 UTC · re: Matt Rogers · lore

Re: Diff --stat for files that differ only in whitespace

On Fri, Jul 31, 2020 at 03:26:16PM -0400, Matt Rogers wrote:
Show 14 quoted lines
> > This seemed familiar, so I dug up some prior discussion here:
> >
> >   https://lore.kernel.org/git/1484704915.2096.16.camel@mattmccutchen.net/
> >
> > We didn't come to a resolution there, but there is a patch to play with,
> > and I think nobody was opposed to the notion that with the right
> > code change we could be suppressing these whitespace-only stat lines
> >
> > -Peff
> 
> 
> I think for now I'm going to feed --numstat into a script like Junio suggested.
> Out of curiosity what would it take to get that patch into git? Is it just a
> matter of someone just verifying it and submitting it?

Yeah, I think it would require making an argument that the patch covers the correct set of cases (or fixing it if it doesn't), and probably adding some tests.

-Peff
Junio C Hamano· Jul 31, 2020, 20:25 UTC · re: Matt Rogers · lore

Re: Diff --stat for files that differ only in whitespace

Matt Rogers <mattr94@gmail.com> writes:
Show 16 quoted lines
> On Fri, Jul 31, 2020 at 1:41 PM Jeff King <peff@peff.net> wrote:
>>
>> This seemed familiar, so I dug up some prior discussion here:
>>
>>   https://lore.kernel.org/git/1484704915.2096.16.camel@mattmccutchen.net/
>>
>> We didn't come to a resolution there, but there is a patch to play with,
>> and I think nobody was opposed to the notion that with the right
>> code change we could be suppressing these whitespace-only stat lines
>>
>> -Peff
>
>
> I think for now I'm going to feed --numstat into a script like Junio suggested.
> Out of curiosity what would it take to get that patch into git? Is it just a
> matter of someone just verifying it and submitting it?

After re-reading the thread, I think it takes a bit more than just re-reading and testing, because even the author of the patch said (and I think I still agree with the assessment) that the patch does one thing that is not exactly what we want it to do. So we'd need to tweak it more to do what we want to do, I would suspect.

Matt Rogers· Jul 31, 2020, 20:43 UTC · re: Junio C Hamano · lore

Re: Diff --stat for files that differ only in whitespace

On Fri, Jul 31, 2020 at 4:25 PM Junio C Hamano <gitster@pobox.com> wrote:
Show 7 quoted lines
>
>
> After re-reading the thread, I think it takes a bit more than just
> re-reading and testing, because even the author of the patch said
> (and I think I still agree with the assessment) that the patch does
> one thing that is not exactly what we want it to do.  So we'd need
> to tweak it more to do what we want to do, I would suspect.

Got it, I'll try to look into this more over the weekend then if there's no problems with that

-- 
Matthew Rogers

← back to recent threads