After the last round toying with .gitignore mechanism as a way to exclude paths, I have finally got back to the negative pathspec. I'm still struggling with read_directory() rewrite so that struct pathspec can be used throughout git, but now realized we can at least enable magic for certain commands and die() on those that don't. This may help move magic pathspec patches forward. The nice thing about this series is that negative pathspec patch is small and simple, much less headache to review than the previous version (and as a consequence, not as powerful). So here it is to gather comments whether we should go this way. Very much WIP, I have not even run "make test". Nguyễn Thái Ngọc Duy (6): Recognize magic pathspec as filenames Replace has_wildcard with PATHSPEC_NOGLOB Convert prefix_pathspec() to produce struct pathspec_item Implement parse_pathspec() Convert simple init_pathspec() cases to parse_pathspec() Implement negative pathspec Documentation/glossary-content.txt | 8 ++-- builtin/grep.c | 4 +- builtin/ls-files.c | 2 +- builtin/ls-tree.c | 6 +- builtin/reset.c | 2 +- cache.h | 29 +++++++++++- dir.c | 85 +++++++++++++++++++++++++++-------- revision.c | 9 ++-- setup.c | 56 +++++++++++------------- tree-walk.c | 44 ++++++++++++++++--- 10 files changed, 169 insertions(+), 76 deletions(-) -- 1.7.3.1.256.g2539c.dirty -- 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