Repository navigation
feat(desktop): warn about tracked files that match .gitignore, offer to untrack - #264
Merged
Merged
Conversation
devlint
force-pushed
the
feat/tracked-ignored-warning
branch
from
October 14, 2026 07:42
4a1af79 to
dd6eb5a
Compare
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.
Roadmap › Later: "Tracked files matching
.gitignore— warn when tracked paths match an ignore rule (git ls-files -ci --exclude-standard) and offer to untrack them (git rm --cached, files kept on disk)."What
git_tracked_ignoredrunsgit ls-files -z -c -i --exclude-standard. It returns the first 500 paths plustotal/truncated.git_untrack_pathsrunsgit --literal-pathspecs rm --cached --quiet --ignore-unmatch --pathspec-from-file=- --pathspec-file-nul, with paths on stdin (no argv limit, no glob expansion). Each path goes throughsafe_repo_path().BaseModal..gitignoreat any depth or.git/info/exclude, move HEAD, or arrive truncated. Debounced to 400 ms. Never on the 30 s status poll..git/info/excludeis now classified asconfigby the watcher; nothing else reacts to that kind.commandRegistryentries, dev-server routes, Tauri handlers and parity-probe arms are all added. Strings are in all 5 locales.Tests
.gitignore,.git/info/exclude, untracked ignored files not reported, spaces/unicode/glob characters in names, untrack keeps the file and stages its removal, literal matching, stale and escaping paths, 3000 paths with the 500 cap.pnpm test:parity: 136 passed. The first parity run had 4 failures in 3 files (one a snapshot-prune test), right after the full vitest and cargo runs. They were not investigated, and the rerun was fully green. Watch CI.Notes
--pathspec-from-file). The app already uses 2.23+ commands.safe_repo_path().core.excludesFileedits are not watched.