The rule described by v1.7.1.1~31^2 (gitignore.5: Clarify matching rules, 2010-03-05) is just false: simple gitignore patterns without a slash like "foo" and "cscope*" have always matched files in all directories, not just the toplevel, and a question mark cannot be used to match the slash separating path components. For example: foo/ - matches directories named "foo" throughout the tree Documentation?foo - does not match Documentation/foo Reported-by: Y.G. <yamomo1@xxxxxxxxxxx> Signed-off-by: Jonathan Nieder <jrnieder@xxxxxxxxx> --- Documentation/gitignore.txt | 19 ++++++++++--------- 1 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Documentation/gitignore.txt b/Documentation/gitignore.txt index c7c948dd..e5715a27 100644 --- a/Documentation/gitignore.txt +++ b/Documentation/gitignore.txt @@ -80,18 +80,19 @@ PATTERN FORMAT - If the pattern does not contain a slash '/' at the beginning or in the middle, git treats it as a shell glob pattern and - matches the entire pathname including slashes, relative to the - location of the `.gitignore` file (or relative to the toplevel - of the work tree if the pattern is not from a `.gitignore` - file), against it. - For example, "{asterisk}.html" matches HTML files in the - directory containing the `.gitignore` file and in its - subdirectories. + checks if the pathname with leading path components + removed matches it. + For example, "x{asterisk}.html" matches HTML files whose + filename begins with an "x" in the directory containing + the `.gitignore` file and in its subdirectories. - If the pattern contains a slash '/' at the beginning or in the middle, git imitates the behavior of fnmatch(3) with the - FNM_PATHNAME flag: wildcards in the pattern will not match a / - in the pathname. + FNM_PATHNAME flag. The pattern is used to match the entire + pathname, relative to the location of the `.gitignore` file + (or relative to the toplevel of the work tree if the pattern + is not from a `.gitignore` file). Wildcards in the pattern + do not match a / in the pathname. For example, "Documentation/{asterisk}.html" matches "Documentation/git.html" but not "Documentation/ppc/ppc.html" or "tools/perf/Documentation/perf.html". -- 1.7.8.rc0 -- 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