Fine-grained: Treat files changed only if md5 changes #4505
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.
Previously the daemon could do a lot of extra work if you switched
to another git branch and immediately back to the original branch,
since many file timestamps would change. Now this isn't sufficient
to consider a file as changed.
Also add a new cached file system abstraction (that is currently only
used in dmypy) to avoid redundant file system operations and to make
file system state easier to reason about. The idea is that we cache
output of previous file system operations during a single increment,
for both consistency and performance. My plan is to eventually use it
about everywhere.
This should also make it slightly easier to switch to listening to
file system events instead of stat()ing everything, but that's not
a priority yet.
Fixes #4499.