Re: [GIT PULL for v5.8-rc1] media updates

From: Mauro Carvalho Chehab
Date: Thu Jun 04 2020 - 02:13:09 EST


Em Wed, 3 Jun 2020 21:13:21 -0700
Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> escreveu:

> On Wed, Jun 3, 2020 at 1:06 AM Mauro Carvalho Chehab
> <mchehab+huawei@xxxxxxxxxx> wrote:
> >
> > PS.: The diffstat is so big that I almost dropped it, as it is almost
> > useless for humans to read. I ended by not doing it just because perhaps
> > you could be using some sort of script to check diffstat.
>
> No, but I do compare the basics, and you don't have to more than scan
> it to see that "ok, it only touches area xyz".

Ok.

> And it turns out that it is huge for you partly because you have the
> default (fairly low) git rename detection limits, in order to avoid
> using a lot of CPU or memory for rename detection.
>
> So you get:
>
> > 2181 files changed, 260633 insertions(+), 106012 deletions(-)
>
> while I get
>
> 1698 files changed, 161922 insertions(+), 7301 deletions(-)
>
> which is a noticeable difference. Still a big diffstat, but quite a
> bit smaller than yours.
>
> You also get a _lot_ more noise in the form of "create mode xyz" and
> "delete mode abc" notices, while for me a lot of them are just "rename
> abc => xyz". So there's a double whammy for you.
>
> The reason is that your diff only has renames for the 100% matches like this:
>
> > rename Documentation/{media/v4l-drivers => admin-guide/media}/au0828-cardlist.rst (100%)
>
> which git can detect purely by seeing "oh, same exact SHA1".
>
> But you don't have any non-100% renames.
>
> In contrast, the diffstat I see also has the inexact renames like
>
> rename Documentation/{media/v4l-drivers =>
> admin-guide/media}/bttv-cardlist.rst (99%)
> rename Documentation/{media/v4l-drivers => admin-guide/media}/bttv.rst (79%)
>
> because I have done
>
> git config diff.renamelimit 0
>
> to make the rename detection limit be infinite (alternatively, just
> edit your ~/.gitconfig file manually - it's often easier than
> remembering what the "git config" syntax is).
>
> You want to see
>
> [diff]
> renamelimit = 0
>
> in your ~/.gitconfig file (or, alternatively, if you want the setting
> to be per-repo, in your .git/config file in your repository).
>
> The default git limits for "should I spend CPU time and memory on
> detecting inexact renames" are fairly low, because people use git on
> fairly low-end machines.

I'm using renamelimit = 0 on one of my trees (the one I'm using for
the ReST conversion), and I even use -M1 there when sending patches
to docs (as some of the conversions require lots of indentation
changes, for example, on files with lots of ascii artwork), but on
my merge tree, I was using some limit, as it is not common to have
this huge amount of changes.

> I bet your development machine isn't some kind of low-end toy, and
> rename detection is not _that_ expensive.

Probably not as nice as yours, but it is a comfortable machine,
with 32 GB RAM, an i7-8705G CPU and a fast SSD disk.

Changing it to unlimited limit costed almost nothing here:

real 0m1,210s
user 0m1,009s
sys 0m0,190s

I'll use this from now on. Thanks for the tip!

Thanks,
Mauro