From: Elazar Leibovich Date: Wed, 25 May 2011 11:40:19 GMT Subject: Re: Supporting "-v" option for git-log Message-ID: In-Reply-To: On Wed, May 25, 2011 at 2:35 PM, Tim Mazid wrote: > >> git log --all --not --grep A --grep B >> >> Would mean find all commits without A and with B, in SQL "SELECT * >> FROM COMMITS WHERE message NOT LIKE '%A%' AND message LIKE '%B%'". > > But how do you know which "--grep" the "--not" applies to? Does it have > to go directly before the "--grep" option? Exactly, just like the ! operator in C. > Can it be a few options before > as long is it's still before? No, only directly before the --grep, like the ! operator. > If you want to find commits not matching two > patterns, do you have to do "--not --grep A --not --grep B"? Yes, we can add a --negate-all option if you think it's usefull. > > I can see this as being a possible source of confusion; people doing > "--not grep A --grep B" and expecting it to mean NOT A AND NOT B. You can add another option --negate which negates everything. But this is a price to pay for being extra expressive.