I promise I won't send anything dir.c-related till the end of this month :) These three series all touch the same code in dir.c and cause a bunch of conflicts. So I rebase nd/wildmatch and as/check-ignore on top of nd/attr-match-more-optim and resolve all conflicts. nd/attr-match-more-optim ------------------------ A lot of refactoring in dir.c leads to a cleaner last patch to port many exclude optimizations to attr. We can extend EXC_FLAGS_ENDSWITH optimization further, from "^*.[ch]" to "path/to/*.[ch]", but not in this series. Nguyễn Thái Ngọc Duy (6): exclude: stricten a length check in EXC_FLAG_ENDSWITH case exclude: split basename matching code into a separate function exclude: fix a bug in prefix compare optimization exclude: split pathname matching code into a separate function gitignore: make pattern parsing code a separate function attr: more matching optimizations from .gitignore Documentation/gitattributes.txt | 1 + attr.c | 52 ++++++---- dir.c | 192 ++++++++++++++++++++++++------------- dir.h | 13 ++- t/t0003-attributes.sh | 10 ++ t/t3001-ls-files-others-exclude.sh | 6 ++ 6 files changed, 186 insertions(+), 88 deletions(-) nd/wildmatch ------------ new ctype patches that no longer introduce sane_ctype2[]. I also re-indent wildmatch.c to follow Git's coding style with the intention of making more changes in future (e.g. case insensitive support in pathspec means we cannot rely on GNU extension FNM_CASEFOLD). Thanks to nd/attr-match-more-optim we don't need to make any changes to attr.c. Depends on nd/attr-match-more-optim. Nguyễn Thái Ngọc Duy (13): ctype: make sane_ctype[] const array ctype: support iscntrl, ispunct, isxdigit and isprint Import wildmatch from rsync wildmatch: remove unnecessary functions wildmatch: follow Git's coding convention Integrate wildmatch to git t3070: disable unreliable fnmatch tests wildmatch: make wildmatch's return value compatible with fnmatch wildmatch: remove static variable force_lower_case wildmatch: fix case-insensitive matching wildmatch: adjust "**" behavior wildmatch: make /**/ match zero or more directories Support "**" wildcard in .gitignore and .gitattributes .gitignore | 1 + Documentation/gitignore.txt | 19 +++ Makefile | 3 + ctype.c | 15 ++- dir.c | 4 +- git-compat-util.h | 15 ++- t/t0003-attributes.sh | 37 ++++++ t/t3001-ls-files-others-exclude.sh | 18 +++ t/t3070-wildmatch.sh | 195 +++++++++++++++++++++++++++++++ test-wildmatch.c | 14 +++ wildmatch.c | 234 +++++++++++++++++++++++++++++++++++++ wildmatch.h | 9 ++ 12 files changed, 556 insertions(+), 8 deletions(-) create mode 100755 t/t3070-wildmatch.sh create mode 100644 test-wildmatch.c create mode 100644 wildmatch.c create mode 100644 wildmatch.h as/check-ignore --------------- Conflict resolution and cleanups. A lot of matching code sharing between exclude and attr means we might be able to bring check-ignore functionality to check-attr. But let's leave it for now. Depends on nd/attr-match-more-optim. Adam Spiers (12): 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: keep track of where patterns came from dir.c: refactor treat_gitlinks() pathspec.c: move reusable code from builtin/add.c dir.c: provide free_directory() for reclaiming dir_struct memory Add git-check-ignore sub-command .gitignore | 1 + Documentation/git-check-ignore.txt | 85 ++++ Documentation/gitignore.txt | 6 +- Documentation/technical/api-directory-listing.txt | 2 + Makefile | 3 + attr.c | 2 +- builtin.h | 1 + builtin/add.c | 84 +--- builtin/check-ignore.c | 170 +++++++ builtin/clean.c | 2 +- builtin/ls-files.c | 5 +- command-list.txt | 1 + contrib/completion/git-completion.bash | 1 + dir.c | 185 +++++-- dir.h | 21 +- git.c | 1 + pathspec.c | 98 ++++ pathspec.h | 6 + t/t0007-ignores.sh | 587 ++++++++++++++++++++++ unpack-trees.c | 10 +- 20 files changed, 1135 insertions(+), 136 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/t0007-ignores.sh -- 1.8.0.rc0.29.g1fdd78f -- 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