threads / discuss / 33968

Has anyone tried to implement git grep --blame?

Subject: Has anyone tried to implement git grep --blame?

## tl;dr

2 messages between May 29, 2013 and May 30, 2013.

replies: 1people: 2as markdown or json

Ævar Arnfjörð Bjarmason· May 29, 2013, 05:41 UTC · lore
This would be so much more convenient if git-grep supported it natively:

$ git grep -n 'if \(0\)' | perl -pe's/([^:]+):([^:]+).*/`git blame -L $2,$2 $1`/se' d18f76dc (Ævar Arnfjörð Bjarmason 2010-08-17 09:24:38 +0000 2278) if (0) 65648283 (David Brown 2007-12-25 19:56:29 -0800 433) if (0) {

I.e. with all the coloring/pager interaction. Some Googling around reveals people piping things to git-blame like that, but has anyone made a stab at a smarter implementation (that would know to blame the whole file if it had lots of hits etc..).

Don't know if I have time myself, but I'd be very pleased if someone hacked that up.

Jakub Narebski· May 30, 2013, 10:12 UTC · re: Ævar Arnfjörð Bjarmason · lore

Re: Has anyone tried to implement git grep --blame?

Ævar Arnfjörð Bjarmason <avarab <at> gmail.com> writes:
Show 14 quoted lines
> This would be so much more convenient if git-grep supported it natively:
> 
> $ git grep -n 'if \(0\)' | perl -pe's/([^:]+):([^:]+).*/`git blame -L
> $2,$2 $1`/se'
> d18f76dc (Ævar Arnfjörð Bjarmason 2010-08-17 09:24:38 +0000 2278)   if (0)
> 65648283 (David Brown 2007-12-25 19:56:29 -0800 433) if (0) {
> 
> I.e. with all the coloring/pager interaction. Some Googling around
> reveals people piping things to git-blame like that, but has anyone
> made a stab at a smarter implementation (that would know to blame the
> whole file if it had lots of hits etc..).
> 
> Don't know if I have time myself, but I'd be very pleased if someone
> hacked that up.

Errr... 'git blame -L' supports regexps as starting and ending point, see git-blame(1) manpage:

    git blame -L '/^sub hello {/,/^}$/' foo
It does not color matching, though...
-- 
Jakub Narębski

← back to recent threads