On Wed, Jun 02, 2021 at 03:29:44PM +0000, Al Viro wrote: > On Wed, Jun 02, 2021 at 11:20:35AM -0400, Mathieu Desnoyers wrote: > > Hi, > > > > Following a discussion with Peter Zijlstra about whether code cleanup > > and functional changes done to the Linux kernel scheduler belong to separate > > patches or should be folded together, the argument for folding cleanup > > and function changes came to be mainly motivated by the current behavior > > of git blame: code cleanup patches end up burying the important changes so > > it becomes cumbersome to find them using git blame. > > > > Considering the added value brought by splitting cleanups from functional changes > > from a maintainer perspective (easier reverts) and from a reviewer perspective > > (easier to focus on the functional changes), I think it would be good to improve > > the git tooling to allow easily filtering out the noise from git blame. > > > > Perhaps a new git blame "--ignore-trivial" and/or "--ignore-cleanup" could solve > > this by filtering out "trivial" and "cleanup" patches from the history it considers. > > > > Tagging patches as trivial and cleanup should be done in the patch commit message > > (possibly in the title), and enforcing proper tagging of commits is already the > > responsibility of the maintainer merging those cleanup/trivial commits into the > > Linux kernel anyway. > > > > Under the hood, I suspect it could use something similar to git log --grep=<pattern> > > --invert-grep. > > > > This should allow git blame users to easily filter out the noise and focus on the relevant > > functional changes. > > > > Any maybe the patterns associated to "cleanup" and "trivial" commits should be something > > that can be configured through a git config file. > > > > Thoughts ? > > Just an observation: quite a few subtle bugs arise from mistakes in > what should've been a trivial cleanup. I was about to write such comment. Cleanups that are eg. mechanically switching names/types/variables/... and need some manual fixup are hot candidates for buggy patches.