Re: git feature request: git blame --ignore-cleanup/--ignore-trivial
From: David Sterba
Date: Thu Jun 03 2021 - 06:16:37 EST
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.