Nguyễn Thái Ngọc Duy  <> writes:

> +For each pathname given via the command-line or from a file via
> +`--stdin`, this command will list the first exclude pattern found (if
> +any) which explicitly excludes or includes that pathname.  Note that
> +within any given exclude file, later patterns take precedence over
> +earlier ones, so any matching pattern which this command outputs may
> +not be the one you would immediately expect.

"The first exclude pattern" is very misleading, isn't it?  For
example, with these in $GIT_DIR/info/exclude, I would get:

        $ cat -n .git/info/exclude
          1 *~
          2 Makefile~
        $ git check-ignore -v Makefile~
        .git/info/exclude:2:Makefile~   Makefile~

which is the correct result (the last one in a single source decides
the fate of the path), but it hardly is "first one found" and the
matching pattern in the output would not be something unexpected for
the users, either.

The reason it is "the first one found" is because the implementation
arranges the loop in such a way that it can stop early when it finds
a match---it simply checks matches from the end of the source.

But that is not visible to end-users, and they will find the above
description just wrong, no?

> +------
> +
> +By default, any of the given pathnames which match an ignore pattern
> +will be output, one per line.  If no pattern matches a given path,
> +nothing will be output for that path; this means that path will not be
> +ignored.
> +
> +If `--verbose` is specified, the output is a series of lines of the form:
> +
> +<source> <COLON> <linenum> <COLON> <pattern> <HT> <pathname>
> +
> +<pathname> is the path of a file being queried, <pattern> is the
> +matching pattern, <source> is the pattern's source file, and <linenum>
> +is the line number of the pattern within that source.  If the pattern
> +contained a `!` prefix or `/` suffix, it will be preserved in the
> +output.  <source> will be an absolute path when referring to the file
> +configured by `core.excludesfile`, or relative to the repository root
> +when referring to `.git/info/exclude` or a per-directory exclude file.
> +
> +If `-z` is specified, the output is a series of lines of the form:
> +

Hmph... the remainder of the paragraph seems to have been chopped off.

> +-----------
> +
> +0::
> +     One or more of the provided paths is ignored.
> +
> +1::
> +     None of the provided paths are ignored.
> +
> +128::
> +     A fatal error was encountered.
> +
> +--------
> +linkgit:gitignore[5]
> +linkgit:gitconfig[5]
> +linkgit:git-ls-files[5]
> +
> +GIT
> +---
> +Part of the linkgit:git[1] suite
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to
More majordomo info at

Reply via email to