Faster globbing by respecting root .gitignore. #1209
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Addresses part of #1182 by implementing this snippet.
I'm not sure, whether this is the right place for the change, would it have been better to implement this purescript/registry-dev since that's where Glob.match' is implemented? Although then again, Glob.match' is just a wrapper for fast-glob.
On my laptop and repo mentioned in #1182 this change reduces the time spent globbing for spago.yaml from 600ms to 30ms :)
Description of the change
Instead of globbing everything for **/spago.yaml and then filtering the matches against .gitignore files, use every entry in the root .gitignore as a negative match (ignore) while globbing.
The resulting matches still need to be checked seperately using
Git.isIgnored
, because the new function only considers the root .gitignore file, .gitignore files in subdirectories are ignored.Checklist:
README