Re: [PATCH 3/6] dir: fix confusion based on variable tense
From: Derrick Stolee <hidden>
Date: 2020-01-30 15:20:06
On 1/29/2020 5:03 PM, Elijah Newren via GitGitGadget wrote:
From: Elijah Newren <redacted>
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