Subject: git grep feature: boolean logic

From: Kevin Connor Arpe <[email-masked]>
Date: Tue, 28 Dec 2021 22:55:32 +0800

Hello,

Recently, I was stumped with a difficult grep problem: I needed to filter
files containing more than one regex (think: logical-and).  I didn't know
how to do this using only a single invocation of GNU grep.  (Please correct
me if I am wrong.)

A bunch of Googling led me to discover that git has a grep sub-command that
implements boolean logic with and/or/not/parens operators.  Manpage:
https://git-scm.com/docs/git-grep, Source:
https://github.com/git/git/blob/master/grep.c

At the moment, it's not possible to use git grep very well outside of git
repositories.  There are some issues around absolute and relative paths,
plus "git working directory".

Eventually, I settled on writing a crude shell script that wraps GNU grep
to provide similar functionality.  However, I am aware of its inefficiency,
as it requires multiple invocations of grep.

Are people aware of this very cool grep feature with boolean logic?  I
tried to search the GNU grep message archive, but I didn't see any
discussion about it.  I'm curious what the GNU grep team thinks about this
feature.

Kind regards,
Kevin Arpe
Hongkong