threads / bug / 36979

bug: git grep -P and multiline mode

Subject: bug: git grep -P and multiline mode

## tl;dr

3 messages between Jun 23, 2014 and Jun 24, 2014.

replies: 2people: 2as markdown or json

Noel Grandin· Jun 23, 2014, 06:54 UTC · lore
Hi
It looks like the perl regular expression multiline mode does not work with 'git grep'
for example, something like
    git grep -P '(?s)foo.*?bar"
will not match a file in the repo where it has something like
    foo
    bar
ie. split across two lines
Regards, Noel Grandin
Junio C Hamano· Jun 23, 2014, 17:42 UTC · re: Noel Grandin · lore

Re: bug: git grep -P and multiline mode

Noel Grandin <noelgrandin@gmail.com> writes:
> It looks like the perl regular expression multiline mode does not work with 'git grep'

Yes, and deliberately so, to avoid having to think about things like "how would a multi-line match interact with 'grep -n'?"

We behave as if we feed each line of the contents one line at a time to the matching engine that is chosen by the -P/-E/-G/-F optoins, so this limitation is unlikely to change.

Noel Grandin· Jun 24, 2014, 07:34 UTC · re: Junio C Hamano · lore

Re: bug: git grep -P and multiline mode

On 2014-06-23 07:42 PM, Junio C Hamano wrote:
Show 7 quoted lines
> Noel Grandin <noelgrandin@gmail.com> writes:
>
>> It looks like the perl regular expression multiline mode does not work with 'git grep'
> Yes, and deliberately so, to avoid having to think about things like
> "how would a multi-line match interact with 'grep -n'?"
>
>
Ah, that is a pity.
I find the multi-line mode very useful for finding code problems that span multiple lines.

I'm sure there are other options that conflict, and the solution is to normally write out some kind of informative error message?

Anyhow, since I'm too busy working on LibreOffice right now to work up a patch for git, I'll stick to using
     find | xargs grep
:-)

← back to recent threads