Re: [PATCH 15/19] pathspec: add match_pathspec_depth()
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Dec 13, 2010, 19:28 UTC
- Message-ID
- <7vzks9zd3f.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <1292233616-27692-16-git-send-email-pclouds@gmail.com>
Nguyễn Thái Ngọc Duy <pclouds@gmail.com> writes:
Show 5 quoted lines
> 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?
Show 26 quoted lines
> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
> ---
> dir.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
> dir.h | 3 +++
> 2 files changed, 48 insertions(+), 0 deletions(-)
>
> diff --git a/dir.c b/dir.c
> index bb5076c..e12dbdd 100644
> --- a/dir.c
> +++ b/dir.c
> @@ -169,6 +169,51 @@ int match_pathspec(const char **pathspec, const char *name, int namelen,
> return retval;
> }
>
> +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?