]> git.ipfire.org Git - thirdparty/git.git/commit - list-objects-filter.c
unpack-trees: rename 'is_excluded_from_list()'
authorDerrick Stolee <dstolee@microsoft.com>
Tue, 3 Sep 2019 18:04:58 +0000 (11:04 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 5 Sep 2019 21:05:12 +0000 (14:05 -0700)
commit468ce99b77a0efaf1ace4c31a7b0a7d036fd9ca1
tree7399ea6e2d1eea755b78587f2c9a9c6f3fe7365f
parent65edd96aecdee2cd4d16a7c17ae9f723c3fe61a4
unpack-trees: rename 'is_excluded_from_list()'

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!

Now that this library is renamed to use 'struct pattern_list'
and 'struct pattern', we can now rename the method used by
the sparse-checkout feature to determine which paths should
appear in the working directory.

The method is_excluded_from_list() is only used by the
sparse-checkout logic in unpack-trees and list-objects-filter.
The confusing part is that it returned 1 for "excluded" (i.e.
it matches the list of exclusions) but that really manes that
the path matched the list of patterns for _inclusion_ in the
working directory.

Rename the method to be path_matches_pattern_list() and have
it return an explicit 'enum pattern_match_result'. Here, the
values MATCHED = 1, UNMATCHED = 0, and UNDECIDED = -1 agree
with the previous integer values. This shift allows future
consumers to better understand what the retur values mean,
and provides more type checking for handling those values.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
dir.c
dir.h
list-objects-filter.c
unpack-trees.c