Re: git feature request: git blame --ignore-cleanup/--ignore-trivial
- From
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
- Date
- Jun 3, 2021, 15:33 UTC
- Message-ID
- <654904857.6915.1622734437354.JavaMail.zimbra@efficios.com>
- In-Reply-To
- <YLfe+HXl4hkzs44b@nand.local>
----- On Jun 2, 2021, at 3:41 PM, Taylor Blau me@ttaylorr.com wrote:
Show 20 quoted lines
> On Wed, Jun 02, 2021 at 03:29:44PM +0000, Al Viro wrote: >> > Any maybe the patterns associated to "cleanup" and "trivial" commits >> > should be something that can be configured through a git config >> > file. >> >> Just an observation: quite a few subtle bugs arise from mistakes in >> what should've been a trivial cleanup. Hell, I've seen bugs coming >> from rebase of provably no-op patches - with commit message unchanged. >> So IME this is counterproductive... > > Yes, I find excluding revisions from 'git blame' to be rarely useful, > exactly for this reason. > > You could probably use the '--ignore-revs-file' option of 'git blame' to > exclude commits you consider trivial ahead of time. If you had an > 'Is-trivial' trailer, I would probably do something like: > > $ git log --format='%H %(trailers:key=Is-trivial)' | > grep "Is-trivial: true" | cut -d" " -f1 >exclude > $ git blame --ignore-revs-file exclude ...
Nice trick! So within a project which standardize on a "Cleanup: " prefix at the beginning of the patch subject, this would look like:
git log --format='%H Subject=("%s")' file.c | grep 'Subject=(\"Cleanup: ' | cut -d" " -f1 > exclude.txt git blame --ignore-revs-file exclude.txt file.c
I fully understand that in many cases having the entire set of revisions is needed, because even a cleanup patch could be buggy, but IMHO it's nice to have a way to achieve this in situations where the cleanup patches get in the way of figuring out the most recent behavior changes in a given area of the code.
Thanks,
Mathieu
-- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com