On 1/29/2020 5:03 PM, Elijah Newren via GitGitGadget wrote: > From: Elijah Newren <newren@xxxxxxxxx> > > Despite having contributed several fixes in this area, I have for months > (years?) assumed that the "exclude" variable was a directive; this > caused me to think of it as a different mode we operate in and left me > confused as I tried to build up a mental model around why we'd need such > a directive. I mostly tried to ignore it while focusing on the pieces I > was trying to understand. > > Then I finally traced this variable all back to a call to is_excluded(), > meaning it was actually functioning as an adjective. In particular, it > was a checked property ("Does this path match a rule in .gitignore?"), > rather than a mode passed in from the caller. Change the variable name > to match the part of speech used by the function called to define it, > which will hopefully make these bits of code slightly clearer to the > next reader. I agree that some of the terminology in the .gitignore is confusing, especially when the terminology was used in the opposite sense for the sparse-checkout feature. I think this rename is worth the noise. For reference, here are some commits from ds/include-exclude that performed similar refactors: 468ce99b77 unpack-trees: rename 'is_excluded_from_list()' 65edd96aec treewide: rename 'exclude' methods to 'pattern' 4ff89ee52c treewide: rename 'EXCL_FLAG_' to 'PATTERN_FLAG_' caa3d55444 treewide: rename 'struct exclude_list' to 'struct pattern_list' ab8db61390 treewide: rename 'struct exclude' to 'struct path_pattern' Thanks, -Stolee