From: Junio C Hamano Date: Mon, 18 Jan 2010 03:35:23 GMT Subject: Re: [PATCH] grep --no-index: allow use of "git grep" outside a git repository Message-ID: <7v8wbwultw.fsf@alter.siamese.dyndns.org> In-Reply-To: <20100118015140.GB6831@coredump.intra.peff.net> Jeff King writes: > Agreed. That is the most common log grep pattern for me (author + grep), > and I always want all-match. I see from later in the thread, though, > that implementing it is not as straightforward as we might hope. I haven't looked at the codepath for quite some time but I have a feeling that it probably won't be too bad. It just won't be as simple as flipping the all_match bit with a one-liner. Before calling compile_grep_patterns() in revision.c::setup_revisions(), we probably would want to massage revs->grep_filter to result in the desired grep expression parse tree, i.e. from GREP_PATTERN_HEAD("^author .*davvid") GREP_PATTERN_HEAD("^committer .*gitster") GREP_PATTERN_BODY("difftool") GREP_PATTERN_BODY("mergetool") to GREP_PATTERN_HEAD("^author .*davvid") GREP_PATTERN_HEAD("^committer .*gitster") GREP_NODE_OR( GREP_PATTERN_BODY("difftool") GREP_PATTERN_BODY("mergetool") )