From: David Ripton Date: Tue, 28 Sep 2010 23:22:02 GMT Subject: Re: [PATCH 0/6] Introduce pathspec struct Message-ID: <4CA2789A.7090306@ripton.net> In-Reply-To: <7v7hi6us35.fsf@alter.siamese.dyndns.org> On 09/28/10 04:37, Junio C Hamano wrote: > - David's "git grep --exclude-dir D" topic should be able to internally > use the same negative pathspec mechanism. At the command line level, > it allows (and needs to allow) only the leading prefix (which is how > GNU grep's --exclude-dir works), but it makes tons of sense for us to > allow "--exclude $pattern" from the command line, and share the > mechanism internally between the two. I don't think GNU grep's --exclude-dir only allows the leading prefix. Here the data directory is a level below the top, but --exclude-dir=data effectively excludes it: $ grep -R behemoth_green * Binary file slugathon/util/colors.pyc matches slugathon/util/colors.py: "behemoth_green": (2, 129, 2), Binary file slugathon/data/creaturedata.pyc matches slugathon/data/creaturedata.py:"Behemoth": ("Behemoths", 8, 3, 0, 0, "creature", 0, 0, 18, "behemoth_green"), slugathon/data/creaturedata.py:"Cyclops": ("Cyclopes", 9, 2, 0, 0, "creature", 0, 0, 28, "behemoth_green"), grep -R --exclude-dir=data behemoth_green * Binary file slugathon/util/colors.pyc matches slugathon/util/colors.py: "behemoth_green": (2, 129, 2), IMO it's useful to allow excluding directories below the top like it currently does, because some projects might have a bunch of noise directories with the same name, and having --exclude-dir exclude them all would be handy. That said, if consistency with other exclude patterns is more important than this use case, fine with me. -- David Ripton dripton@ripton.net