Subject: Re: gitignore broken in git 1.7.0.1: slash checks leading dirs

From: Johannes Sixt <[email-masked]>
Date: Fri, 05 Mar 2010 16:34:01 +0100

Jonathan Nieder schrieb:
>  · Otherwise, git treats the pattern as a shell glob suitable for
>    consumption by fnmatch(3) with the FNM_PATHNAME flag: wildcards in the
>    pattern will not match a / in the pathname. For example,
>    "Documentation/*.html" matches "Documentation/git.html" and
>    "tools/perf/Documentation/perf-diff.html" but not
>    "Documentation/ppc/ppc.html".

This is not correct: When the pattern "Documentation/*.html" matches
"Documentation/git.html", then it cannot match
"tools/perf/Documentation/perf-diff.html". This is because patterns that
contain a slash (after stripping a trailing slash) are anchored at the
directory that contains the .gitignore.

Said pattern would match the latter name only if it appeared in
tools/perf/.gitignore (but in this case it wouldn't match the former name,
of course).

-- Hannes