Changes from previous version [1] - fixes depth limit and overlapping pathspecs, by checking deepest pathspecs first. struct pathspec is now sorted (raw[] untouched) - match_pathspec_depth depends on new match_pathspec_item() (a clone of match_one(), but takes advantage of struct pathspec) - ce_path_match uses struct pathspec - strbuf is used instead of fixed length "base" buffer. This introduces the weird strbuf_offset() function. - never_interesting is disabled if any wildcards is present - struct pathspec * == NULL is unacceptable, callers must pass non-NULL. - a bit more tests [1] http://mid.gmane.org/1292233616-27692-1-git-send-email-pclouds@xxxxxxxxx Jonathan Nieder (1): glossary: define pathspec Nguyán ThÃi Ngác Duy (20): Add struct pathspec diff-no-index: use diff_tree_setup_paths() Convert struct diff_options to use struct pathspec tree_entry_interesting(): remove dependency on struct diff_options Move tree_entry_interesting() to tree-walk.c and export it diff-tree: convert base+baselen to writable strbuf tree_entry_interesting(): refactor into separate smaller functions tree_entry_interesting(): support depth limit tree_entry_interesting(): fix depth limit with overlapping pathspecs tree_entry_interesting(): support wildcard matching tree_entry_interesting(): optimize wildcard matching when base is matched pathspec: add match_pathspec_depth() Convert ce_path_match() to use struct pathspec Convert ce_path_match() to use match_pathspec_depth() grep: convert to use struct pathspec grep: use match_pathspec_depth() for cache/worktree grepping strbuf: allow "buf" to point to the middle of the allocated buffer grep: use writable strbuf from caller for grep_tree() grep: drop pathspec_matches() in favor of tree_entry_interesting() t7810: overlapping pathspecs and depth limit Documentation/glossary-content.txt | 23 +++ builtin/diff-files.c | 2 +- builtin/diff.c | 4 +- builtin/grep.c | 197 +++++++------------------- builtin/log.c | 2 +- builtin/update-index.c | 8 +- cache.h | 17 ++- diff-lib.c | 12 ++- diff-no-index.c | 13 +- diff.h | 4 +- dir.c | 151 ++++++++++++++++++++ dir.h | 4 + preload-index.c | 5 +- read-cache.c | 25 +--- revision.c | 11 +- strbuf.c | 36 ++++-- strbuf.h | 10 +- t/t4010-diff-pathspec.sh | 32 ++++ t/t7810-grep.sh | 18 +++ tree-diff.c | 277 +++++++++--------------------------- tree-walk.c | 180 +++++++++++++++++++++++ tree-walk.h | 2 + wt-status.c | 5 +- 23 files changed, 615 insertions(+), 423 deletions(-) -- 1.7.3.3.476.g10a82 -- 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