On Fri, Jul 06, 2018 at 03:15:22PM -0500, Taylor Blau wrote: > On Fri, Jul 06, 2018 at 11:21:06AM -0700, Junio C Hamano wrote: > > Taylor Blau <me@xxxxxxxxxxxx> 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). > > 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