Scope the git diff worktree walk - #145
Merged
Merged
Conversation
🦋 Changeset detectedLatest commit: c815262 The changes in this PR will be included in the next version bump. This PR includes changesets to release 4 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
commit: |
diff({ paths }) filtered after statusMatrix had already walked the whole
worktree and handed every path to its map callback. Once a synced
node_modules is in the tree that walk dominates a diff that the caller
scoped to a handful of files.
Pass the requested paths to isomorphic-git's filepaths so the traversal
is pruned up front. filepaths uses the same "exact path or directory
prefix" rule as makePathFilter, so this is a traversal hint only: the
filter stays the authority on what is emitted and results are unchanged.
normalizeFilepaths returns undefined when the caller asked for no
scoping, or when a path normalizes to the repo root, so isomorphic-git's
own default of ['.'] stands rather than scoping to everything.
aron-cf
force-pushed
the
git-diff-scoped-status
branch
from
September 14, 2026 12:21
805035c to
c815262
Compare
Merged
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.
The
diff()function now previously walked the entire file tree when thepathsargument was provided. Now it walks only the list applicable to the filter.To see the difference, take a repository with one source file and three thousand vendor files, change the source file, and diff just that directory: