Re: git grep -F (fixed string) requires matching parenthesis?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Aug 13, 2019 at 03:01:04PM +0900, nanaya wrote:

> I observed this today:
> 
> $ git grep -F '('
> fatal: unmatched parenthesis
> 
> Which doesn't make sense and I believe shouldn't happen.

At first glance this looks like we're feeding a fixed-string pattern to
the regex compiler, which would indeed be a bug.

But I think it's actually happening at a level above that. git-grep
supports multiple patterns, which can be joined with --and, --or, --not,
etc. And they can be grouped with parentheses.

What you're seeing is the argument parser thinking your '(' is part of
the construction of a boolean match formula, and complaining about the
lack of closing ')'. You can use "-e" to make it clear that it's a
pattern (just as you'd need to for a pattern that starts with "-"):

  git grep -F -e '('

So I think everything is working as designed, though I admit the
implication was slightly surprising to me (and note that it only happens
with that _specific_ pattern; something like "(foo" would not be matched
by the option parser).

-Peff



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux