Re: multiple source file extensions
- From
Jeff King <peff@peff.net>
- Date
- May 5, 2015, 19:12 UTC
- Message-ID
- <20150505191238.GC10463@peff.net>
- In-Reply-To
- <CAHYJk3TzZd8N6E+=nNi1jR36Zc5A7be8ZPL9jLU7c8uAdQJYBw@mail.gmail.com>
On Tue, May 05, 2015 at 07:30:00PM +0200, Mikael Magnusson wrote:
Show 17 quoted lines
> >> ".*\.[cChH]\(pp\)?" > > > > No, pathspecs are globs, not regexps. I think the idea has been floated > > for supporting regexps, which you would activate something like: > > > > git grep pattern -- :(regexp)$your_regex_here > > > > but nobody has implemented it. I'm not sure it actually saves you any > > typing (besides which, your regexp does not match ".cc", which was in > > the original). > > Remember that the more bells and whistles you add to pathspecs, the > less actual filenames can be conveniently tracked by git; *.c will be > expanded by the shell and passed literally to git, and if git then > interprets a bunch of stuff again, you could end up with a false > negative or positive match. Obviously files with * and ? in them are > already unsupported, try not to add more.
I agree this is a problem, but I think we have already crossed that bridge, and going forward:
1. Any new bells and whistles will have to be activated explicitly
(that's what the ":(regexp)" syntax is). 2. The ":()" magic is already there, so add it to "*" and "?" in the
list of obstacles. 3. There is ":(literal)", "--literal-pathspecs", and $GIT_LITERAL_PATHSPECS
to turn off all magic.-Peff