On Wed, Sep 15, 2010 at 08:33:29PM -0400, Jay Soffian wrote: > On Wed, Sep 15, 2010 at 8:16 PM, Jeff King <peff@xxxxxxxx> wrote: > > It's not just the command line. It's also what's in .gitignore files. If > > you disable just half of that, then you get the awful behavior that some > > excludes apply to index files, and some don't. > > Files matched by the standard excludes are not likely to be in the > index in the first place. So in that sense, arguably -x is special. > > But nonetheless, I agree with you, and since the user must > specifically ask ls-files for the various exclusions, I think it makes > sense to apply those even to cached files. But then if somebody asks for both indexed and untracked files together, the behavior is quite confusing. There is no way to say "--exclude-standard just for the untracked files", and having exclusions impact cached files is unlike any other part of git. So the behavior of something like "git ls-files -s -o --exclude-standard" would be broken. I have no idea if people are actually doing that. So I think the best fix would be to leave the default behavior as-is, and add the --exclude-cached-files-too-pretty-please you mentioned. > I'm building a project file for my editor and I want to exclude > certain files that make no sense for it to care about even though they > are part of the repo. So I tried: > > $ git ls-files -x png -x jpg ... > > and was confused by that not working. I've worked around this by just > filtering the ls-files output through grep, but, ick. I certainly have sympathy for you being confused by the behavior of ls-files. It undoubtedly is a mess. But as for having to use grep, I would feel worse for you if you were actually trying to exclude patterns from your .gitignore and you needed to _convert_ them into a grep pattern. But it doesn't seem like: git ls-files | grep -v '\.png$' is really much more work, and it's way more flexible. At one point I proposed a "git check-ignore" similar to "git check-attr", but I never got around to coding it. If you really liked the gitignore-style patterns for some reason, it would be a nice flexible way of doing what you want. -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html