Maybe once ignore files are parsed they could be cached until changed or full scan ?
What about if during full scan all ignore files are parsed and converted to job exclusions but saved separately in sqlite db ? Now we would have for the job two sets of exclusions:
- generated exclusions (from ignore files) unmodifiable in UI
- normal (current) job exclusions modifiable by user in UI
Generated exclusions will be applied before normal exclusions and will be purged and regenerated during each full scan. They should be also regenerated when the ignore file is modified (or created/moved/deleted) - probably the path of ignore file (relative to job’s folder) will have to be saved for each generated exclusion to be able to evict only relevant exclusions.