]> git.ipfire.org Git - thirdparty/git.git/commit - dir.c
treewide: rename 'exclude' methods to 'pattern'
authorDerrick Stolee <dstolee@microsoft.com>
Tue, 3 Sep 2019 18:04:57 +0000 (11:04 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 5 Sep 2019 21:05:12 +0000 (14:05 -0700)
commit65edd96aecdee2cd4d16a7c17ae9f723c3fe61a4
treebd91b97a0abd9a03d446a8b5dbcc016bcef897c5
parent4ff89ee52cd3cf6e38a11bb94e43df1b53c56eec
treewide: rename 'exclude' methods to 'pattern'

The first consumer of pattern-matching filenames was the
.gitignore feature. In that context, storing a list of patterns
as a 'struct exclude_list'  makes sense. However, the
sparse-checkout feature then adopted these structures and methods,
but with the opposite meaning: these patterns match the files
that should be included!

It would be clearer to rename this entire library as a "pattern
matching" library, and the callers apply exclusion/inclusion
logic accordingly based on their needs.

This commit renames several methods defined in dir.h to make
more sense with the renamed 'struct exclude_list' to 'struct
pattern_list' and 'struct exclude' to 'struct path_pattern':

 * last_exclude_matching() -> last_matching_pattern()
 * parse_exclude() -> parse_path_pattern()

In addition, the word 'exclude' was replaced with 'pattern'
in the methods below:

 * add_exclude_list()
 * add_excludes_from_file_to_list()
 * add_excludes_from_file()
 * add_excludes_from_blob_to_list()
 * add_exclude()
 * clear_exclude_list()

A few methods with the word "exclude" remain. These will
be handled seperately. In particular, the method
"is_excluded()" is concretely about the .gitignore file
relative to a specific directory. This is the important
boundary between library and consumer: is_excluded() cares
about .gitignore, but is_excluded() calls
last_matching_pattern() to make that decision.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/RelNotes/2.7.1.txt
Documentation/RelNotes/2.8.0.txt
Documentation/technical/api-directory-listing.txt
attr.c
builtin/check-ignore.c
builtin/clean.c
builtin/ls-files.c
dir.c
dir.h
list-objects-filter.c
unpack-trees.c