Solves several issues, generally through delivering signals before filesystem events, preventing situations where an overwhelming amount of events makes it impossible to quit.
Does _not_ solve the problem of a queue full of lower-priority events not accepting an urgent message, but that's a rarer issue that's more complicated to overcome.
Changes the Filterer trait: adds Priority to `check_event()`
Makes some events unfilterable (Urgent priority): SIGINT, SIGTERM, and CTRL_C to the main process. These still need to be handled by `on_action` to do anything, but cannot be stopped before reaching that.
This dependency cannot be sent between threads.
Instead use git-config which is a pure rust implementation to read git config files.
Uses the builtin values::Path struct to extract ignore paths.
It takes care of all the corner cases with how git interprets paths.
I did not realise that Cargo considers -pre.1 and -pre.2 to be
compatible, so the latest Notify prerelease broke all existing
releases, and whenever I release a new lib it may break all CLI
versions if the API changes.
This is buggy behaviour that exists in <=1.17, and this patch restores it*
Per gitignore rules, this glob:
*/somefile
Will match:
foo/somefile
bar/somefile
But not:
somefile
However, so far we’ve accepted this. As this is a breaking change, this patch
introduces a hack which lets us accept this behaviour, but clearly marks it as
a compatibility exception. In 2.0, this will be gone.
Fixes#258
* It only restores it on unices, because the behaviour cannot be restored in
any reasonable manner on Windows. Ah well. It's not for long anyway.
These two options are meant to work together: they are a union of filters
rather than competing. Thus:
--exts toml,py --filter Gemfile
will match all of:
foo.toml
bar.py
Gemfile
rather than matching no files at all because Gemfile doesn’t have an extension.
Fixes#259