This v3 re-roll of my check-ignore series is a reasonably substantial revamp over v2, and applies on top of Junio's current nd/attr-match-optim-more branch (82dce998c202). All feedback and patches from the v2 series has been incorporated, and several other improvements too, including: - composite exclude_lists have been split up into exclude_list_groups each containing one exclude_list per source - smaller commits for easier review - minor memory leaks have been fixed and verified via valgrind - t0007-ignores.sh has been renumbered to t0008-ignores.sh to avoid a conflict with t0007-git-var.sh - improvements to documentation and comments For reference, the v2 series was announced here: http://thread.gmane.org/gmane.comp.version-control.git/204661/focus=206074 All tests pass except for t91*, since there seems to be some pre-existing breakage in 82dce998c202 relating to git-svn. Adam Spiers (19): api-directory-listing.txt: update to match code Improve documentation and comments regarding directory traversal API dir.c: rename cryptic 'which' variable to more consistent name dir.c: rename path_excluded() to is_path_excluded() dir.c: rename excluded_from_list() to is_excluded_from_list() dir.c: rename excluded() to is_excluded() dir.c: refactor is_excluded_from_list() dir.c: refactor is_excluded() dir.c: refactor is_path_excluded() dir.c: rename free_excludes() to clear_exclude_list() dir.c: use a single struct exclude_list per source of excludes dir.c: keep track of where patterns came from dir.c: provide clear_directory() for reclaiming dir_struct memory add.c: refactor treat_gitlinks() add.c: remove unused argument from validate_pathspec() pathspec.c: move reusable code from builtin/add.c pathspec.c: extract new validate_path() for reuse setup.c: document get_pathspec() Add git-check-ignore sub-command .gitignore | 1 + Documentation/git-check-ignore.txt | 89 ++++ Documentation/gitignore.txt | 6 +- Documentation/technical/api-directory-listing.txt | 35 +- Makefile | 3 + attr.c | 2 +- builtin.h | 1 + builtin/add.c | 84 +-- builtin/check-ignore.c | 170 +++++++ builtin/clean.c | 3 +- builtin/ls-files.c | 11 +- command-list.txt | 1 + contrib/completion/git-completion.bash | 1 + dir.c | 243 +++++++-- dir.h | 87 +++- git.c | 1 + pathspec.c | 107 ++++ pathspec.h | 6 + setup.c | 15 + t/t0008-ignores.sh | 595 ++++++++++++++++++++++ unpack-trees.c | 14 +- 21 files changed, 1305 insertions(+), 170 deletions(-) create mode 100644 Documentation/git-check-ignore.txt create mode 100644 builtin/check-ignore.c create mode 100644 pathspec.c create mode 100644 pathspec.h create mode 100755 t/t0008-ignores.sh -- 1.7.11.2.249.g31c7954 -- 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