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