From: Nguyen Thai Ngoc Duy Date: Tue, 14 Dec 2010 05:07:12 GMT Subject: Re: [PATCH 15/19] pathspec: add match_pathspec_depth() Message-ID: In-Reply-To: <7vzks9zd3f.fsf@alter.siamese.dyndns.org> 2010/12/14 Junio C Hamano : > Nguyễn Thái Ngọc Duy writes: > >> match_pathspec_depth() is similar to match_pathspec() except that it >> can take depth limit. >> >> In long term, match_pathspec() should be removed in favor of this >> function. > > Hmm, this strongly suggests that match_pathspec() should take "const > struct pathspec *" which already contains the necessary information and > more, including the depth limit, no? Good idea. Thanks! >> +int match_pathspec_depth(const char **pathspec, int max_depth, >> +                      const char *name, int namelen, >> +                      int prefix, char *seen) >> +{ >> +     int i, retval = 0; >> + >> +     if (!pathspec) { >> +             if (max_depth == -1) >> +                     return MATCHED_RECURSIVELY; >> + >> +             if (within_depth(name, namelen, 0, max_depth)) >> +                     return MATCHED_EXACTLY; > > Why the difference between _RECURSIVELY and _EXACTLY here?  If you have a > five-level deep project and give max-depth of 1000, shouldn't you get the > same result as you run the same command with unlimited depth? But if max-depth is 5 and the project is 1000-level deep, it should return _EXACTLY, not _RECURSIVELY, right? -- Duy