# Skip \.git/lfs FS events \(\#25927\) · gitcafe/zed

[View on GitCafe](https://git.cafe/gitcafe/zed/commit/95446195aff0b9b00dcb5e8ce0af4a3869e26da9)

Repository: [gitcafe/zed](https://git.cafe/gitcafe/zed)

Visibility: public

Requested revision: 95446195aff0b9b00dcb5e8ce0af4a3869e26da9

Requested commit: 95446195aff0b9b00dcb5e8ce0af4a3869e26da9

Commit: 95446195aff0b9b00dcb5e8ce0af4a3869e26da9

Tree: 9a2644c7391b10e82522d4b6e1d3c52540e55736

Author: Kirill Bulatov

Committer: GitHub

## Message

````
Skip .git/lfs FS events (#25927)

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
````

## Parents

- [b34c0fd71b4cb040c2d123683ccf035b2ae7be7d](https://git.cafe/gitcafe/zed/commit/b34c0fd71b4cb040c2d123683ccf035b2ae7be7d?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zed/tree/95446195aff0b9b00dcb5e8ce0af4a3869e26da9?format=markdown)
