Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Implement handling of diffs which can skip ancestor directories.
Implement a new diff checker which deduces affected `FileStateValue` and `DirectoryListingStateValue` keys from diffs which can skip ancestor directories in them. An extreme example of such diff would be one which only lists the leaf files when adding/deleting them (e.g. adding `a/b/c/d/file` where `a` does not currently exist). Use the new algorithm for diffs marked as potentially missing ancestor directory entries. The new logic has a very similar performance to the existing one with the difference of: - adding new file with within new directories -- it does less stats since it deduces the directory from the leaf existence - deleting a file -- it performs 1 extra stat since it cannot assume that the parent of a deleted file still exists - unknown entries -- it tries to be lazy about stating those; we would only do that if that can prevent invalidation of a directory listing. PiperOrigin-RevId: 389301057
- Loading branch information