Better: change watcher to properly filter ignored directories #1597
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.
Lately I started to work on a node project with a lot of dependencies, when opening this project in ungit I started to get this error:
So far I was able to get ungit running by changing the limit of inotify nodes doing
And when checking the number of used inotify nodes, It is really big (263k):
After investigating, I noticed that since node 20, native support for recursive has been added to fs.watch and the current watcher library used in ungit uses the native watcher when available (https://github.com/yuanchuan/node-watch/blob/main/lib/has-native-recursive.js#L6). The problem is that the filtering (to remove .gitignore files and node_modules files) is done only when the non native version is used.
I couldn't find a way to improve the current library to get it to work with native, so I just changed it for another one, there are a lot so I took one of them without benchmarking.
With the new watcher library the number of inotify nodes for the same project is now normal: