I tracked a bug today using git blame and had a vague idea when the bug appeared, so I was mostly interested by changes introduced during the last 30 days.

Perusing git blame output to filter out too old lines was tedious, and so tonight I searched for a way to improve the output by highlighting lines in the desired period of time.

Here is an example, highlighting changes that happened from 2017 onward :

The command is thus of the form :

git blame FILE | ack --nogroup --passthru '.*(?:DATE_1|...|DATE_N).*?\)'

Few explanations :

passthru option prints all lines, whether or not they match the expression

option prints all lines, whether or not they match the expression a non capturing group is used (?:...) so that the highlight selection matches the whole regex, not just the date group

so that the highlight selection matches the whole regex, not just the date group we use a lazy quantifier .*? to stop the highlighting at the first ) delimiter, in case the line of code contains some others

As usual, I don’t need to remember the exact command, as I rely on my zsh history to autocomplete my typing, or my git cheatsheet when the history fails me.