Junio C Hamano wrote:
>The list of patterns that is in effect at a given time is
>built and ordered in the following way:
> * --exclude=<pattern> and lines read from --exclude-from=<file>
> come at the beginning of the list of patterns, in the order
> given on the command line. Patterns that come from the file
> specified with --exclude-from are ordered in the same order
> as they appear in the file.
> * When --exclude-per-directory=<name> is specified, upon
> entering a directory that has such a file, its contents are
> appended at the end of the current "list of patterns". They
> are popped off when leaving the directory.
Are really necessary to have both --exclude-from=<file> and
Peraphs, if the file name of excluded list is the same for each directory,
e.g. .gitignore or something similar, instead of --exclude-per-directory
we can use a concept of file validity 'scope' and just use
If entering in a directory <file> is found its contents are appended and
removed when leaving directory. A bad analogy can be with the use of
>A pattern specified on the command line with --exclude or read
>from the file specified with --exclude-from is relative to the
>top of the directory tree. A pattern read from a file specified
>by --exclude-per-directory is relative to the directory that the
>pattern file appears in.
If we use the 'scope' logic we can just prepend path when adding entries
and serach with with FNM_PATHNAME flag.
> - if it does not contain a slash '/', it is a shell glob
> pattern and used to match against the filename without
> leading directories (i.e. the same way as the current
> - otherwise, it is a shell glob pattern, suitable for
> consumption by fnmatch(3) with FNM_PATHNAME flag. I.e. a
> slash in the pattern must match a slash in the pathname.
> "Documentation/*.html" matches "Documentation/git.html" but
> not "ppc/ppc.html". As a natural exception, "/*.c" matches
> "cat-file.c" but not "mozilla-sha1/sha1.c".
Same comment as above, if prepending path when adding per
directory contents we can simplify to always use FNM_PATHNAME flag.
We don't have even to special case base directory global
scope <file> if we use realtive paths so that we prepend its contents
with ./ and we have what we expect.
I am sorry to not be able to send a patch, better explaining what
proposed but I am just leaving today and I will be off line
for a couple of weeks.
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html