Re: [PATCH v3 0/2] grep.c: teach --only-matching to 'git-grep(1)'
- From
Jeff King <peff@peff.net>
- Date
- Jul 6, 2018, 20:33 UTC
- Message-ID
- <20180706203339.GB4648@sigill.intra.peff.net>
- In-Reply-To
- <20180706201522.GA657@syl.attlocal.net>
On Fri, Jul 06, 2018 at 03:15:22PM -0500, Taylor Blau wrote:
Show 19 quoted lines
> On Fri, Jul 06, 2018 at 11:21:06AM -0700, Junio C Hamano wrote: > > Taylor Blau <me@ttaylorr.com> writes: > > > > > I think that this might be clear enough on its own, especially since > > > this is the same as BSD grep on my machine. I think that part_s_ of a > > > line indicates that behavior, but perhaps not. On GNU grep, this is: > > > > > > Print only the matched (non-empty) parts of a matching line, with each > > > such part on a separate output line. > > > > Interesting. I wonder what "git grep -o '^'" would do ;-) > > That invocation prints nothing, but on BSD grep it prints quite a few > blank lines :-). > > I'm hesitant on sending a patch per the hunk of your reply below because > of this. Should we mirror BSD grep's behavior exactly here? I suppose > that we could somehow, but it seems like we might be doing too much to > support what appears to me to be an odd use-case.
IMHO the GNU behavior (omitting non-empty matches) makes more sense. And it's also what your patch already does. ;)
Although amusingly "git grep -o ^" will still print a ton of "Binary file ... matches". That _also_ matches what GNU grep does. I'm not sure if there's a saner behavior (it really has nothing to do with the funny empty match; any binary file with -o cannot show the normal text line).
Show 6 quoted lines
> > In any case, I find that the GNU phrasing is the most clear among > > the ones I've seen in this thread so far. > > OK. I'm happy to re-send that patch with the GNU phrasing depending on > what others think (and the above). I'll let this cook and collect some > thoughts over the weekend.
FWIW, I like the GNU phrasing. I thought the "non-empty" part was not all that interesting, but after hearing that BSD behaves differently, it is probably worth mentioning.
I think the actual behavior of your patch matches GNU grep, and does not need changing.
-Peff