diff options
author | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2010-12-15 22:02:44 +0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-02-03 14:08:30 -0800 |
commit | bc96cc87dbb229cbdabfd93391e24ef168713a74 (patch) | |
tree | 9ff90a888efab369476fe4003fe1e36fa0fbd9ba /tree-diff.c | |
parent | 58c4d66619eb21fa23a1305401e0ec4988c1c17e (diff) | |
download | git-bc96cc87dbb229cbdabfd93391e24ef168713a74.tar.gz |
tree_entry_interesting(): support depth limit
This is needed to replace pathspec_matches() in builtin/grep.c.
max_depth == -1 means infinite depth. Depth limit is only effective
when pathspec.recursive == 1. When pathspec.recursive == 0, the
behavior depends on match functions: non-recursive for
tree_entry_interesting() and recursive for match_pathspec{,_depth}
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'tree-diff.c')
-rw-r--r-- | tree-diff.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/tree-diff.c b/tree-diff.c index 45a3845c0a..03dc5c8e70 100644 --- a/tree-diff.c +++ b/tree-diff.c @@ -146,6 +146,10 @@ int diff_tree(struct tree_desc *t1, struct tree_desc *t2, int all_t1_interesting = 0; int all_t2_interesting = 0; + /* Enable recursion indefinitely */ + opt->pathspec.recursive = DIFF_OPT_TST(opt, RECURSIVE); + opt->pathspec.max_depth = -1; + strbuf_init(&base, PATH_MAX); strbuf_add(&base, base_str, baselen); |