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.