git feature request: git blame --ignore-cleanup/--ignore-trivial

From: Mathieu Desnoyers
Date: Wed Jun 02 2021 - 11:20:53 EST


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 ?

Thanks,

Mathieu

--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com