mirror of
https://github.com/encounter/zed.git
synced 2026-07-11 06:19:04 -07:00
Closes https://github.com/zed-industries/zed/issues/25865 Closes https://github.com/zed-industries/zed/pull/25915 In the issue, Zed had caused `.git/lfs/tmp/466102258`-like files to appear in the directory, which lead to background FS event listener to handle this as an update, incrementing snapshot's `scan_id`, which lead to git status rescan, which caused another increment to `status_scan_id` — incrementing either of the IDs causes the related repo data to be considered "changed: https://github.com/zed-industries/zed/blob/41b45eaba798a56e596857fa497c862050788bc7/crates/worktree/src/worktree.rs#L1590-L1605 hence propagating events to the other parts of the system (e.g. git blame, which was also active in the issue's case) ``` [2025-03-01T20:01:08+01:00 DEBUG worktree] ignoring event ".git/lfs/tmp/466102258" within unloaded directory [2025-03-01T20:01:08+01:00 DEBUG worktree] received fs events [] [2025-03-01T20:01:08+01:00 DEBUG worktree] reloading repositories: ["/Users/alex/dev/monorepo/.git"] [2025-03-01T20:01:08+01:00 DEBUG editor::git::blame] Status of git repositories updated. Regenerating blame data... [2025-03-01T20:01:08+01:00 DEBUG editor::git::blame] Status of git repositories updated. Regenerating blame data... [2025-03-01T20:01:08+01:00 DEBUG editor::git::blame] Status of git repositories updated. Regenerating blame data... ``` Due to repo update events sent, another `.git/lfs/tmp/` entry is created, things start over... The PR fixes this by ignoring any `.git/lfs/` directory-related FS events, as needed for the current git status update heuristics. https://github.com/zed-industries/zed/pull/25915 tried to follow further and `scan_id` and `status_scan_id` but we do not store all git state in memory, e.g. head https://github.com/zed-industries/zed/blob/e0060b92cc862c4d926652e1a01f0991ccb3a805/crates/editor/src/editor_tests.rs#L13686 as [tests](https://github.com/zed-industries/zed/actions/runs/13631960559/job/38101504549?pr=25915) show. Release Notes: - Improved `.git` scan heuristics