Repository navigation
Watch worktrees with parcel and skip ignored directories - #1086
Merged
Merged
Conversation
Prebuilt per platform; its install script only builds from source, so it stays off.
On Linux, recursive fs.watch adds an inotify watch per file and per directory, including every managed review checkout under .git/dev-fast. Parcel watches directories only. The checkout watch skips .git, and the git directory watch skips objects, logs, lfs and dev-fast.
thesiti92
force-pushed
the
fix/linux-git-watch-budget
branch
from
October 11, 2026 01:38
aa16d4a to
6a4f019
Compare
The checkout watch ignores what git reports as ignored, such as node_modules. A new directory inside a tracked one, or a .gitignore or info/exclude change, rereads that list and resubscribes. Fixes #1073.
thesiti92
force-pushed
the
fix/linux-git-watch-budget
branch
from
October 11, 2026 01:54
6a4f019 to
f9a369e
Compare
sidkmenon
approved these changes
Oct 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #1073.
On Linux, Node's recursive
fs.watchadds an inotify watch for every file and every directory. The git directory watch also covered every managed review checkout under.git/dev-fast, plusobjectsandlogs. The root watch covered gitignored directories such asnode_modules. #982 only filtered events and never cut how many watches were registered, so one review could use upfs.inotify.max_user_watchesfor every process of the user.Change
@parcel/watcher2.6.0, which adds one inotify watch per directory, never per file. It loads on first use, and if it fails to load, the worktree re-inspects on every request, as a failed watcher did before..gitand the gitignored directories git reports (ls-files --others --ignored --exclude-standard --directory), so nested.gitignore,info/excludeandcore.excludesFileall apply.objects,logs,lfsanddev-fast. Events there no longer count either..gitignoreorinfo/excludechange, re-reads the ignored list and re-subscribes.Measured
Fedora 44 (QEMU), the 0.2.4 preview with this runtime swapped in. The fixture repo has a gitignored
node_modulesand three managed checkouts.whiteboard server(headless)target/with 2,000 directoriesEdits to tracked files still update the review in both modes.
Notes
allowBuilds. The prebuilt binaries arrive as optional dependencies. About 1.4 MB per platform.refreshWorktreesnow share a 200 ms wait.