Max Brunsfeld
6c09782aa2
Optimize full file status via passing in known file mtime
2023-07-22 11:53:26 -07:00
Max Brunsfeld
51d311affd
Compute unstaged git status separately, to take advantage of our cached file mtimes
2023-07-21 17:58:43 -07:00
Max Brunsfeld
ff0864026e
Only fetch statuses for changed paths
2023-07-21 17:08:31 -07:00
Max Brunsfeld
05b161118c
Don't call git status when ignored files change
2023-07-21 17:05:42 -07:00
Max Brunsfeld
4bd415f2b6
Retrieve git statuses in one batch when scanning dirs
2023-07-21 13:50:54 -07:00
Max Brunsfeld
b9e0074793
Perform only one git statuses call when reloading a git repo after it changes
2023-07-14 14:29:22 -07:00
Max Brunsfeld
2e2333107a
Find the layer with the smallest enclosing node in language_scope_at
2023-07-14 09:11:56 -07:00
Max Brunsfeld
f83514cde4
Fix regression in handling git FS events ( #2670 )
...
As part of an optimization in
https://github.com/zed-industries/zed/pull/2663 , I changed the way that
the worktree ignores FS events within unloaded directories. But this
accidentally prevented us from detecting some events that occur inside
of `.git` directories.
In this PR, I've made further tweaks to which FS events we can ignore.
We now explicitly opt *in* to scanning `.git` (shallowly) directories
(even though they are ignored). Note that we still don't recursively
scan the git directory (including all of the files inside `objects`
etc). This seems like the correct amount of work to do, and from my
testing (and our unit tests that use the real FS and real git
repositories), it seems to work correctly.
Release Notes:
- Fixed a bug where Zed would not detect some git repository changes
(preview only).
2023-06-30 11:40:49 -07:00
Max Brunsfeld
92df76e632
Fix accidental ignoring of git FS events
2023-06-30 11:20:50 -07:00
Mikayla Maki
3d6e063a6d
Fix method header
2023-06-29 23:53:57 -07:00
Mikayla Maki
d22a576f5e
fix failing test
2023-06-29 23:50:24 -07:00
Mikayla Maki
a6dabf7acf
Make path updates minimal
2023-06-29 18:15:40 -07:00
Mikayla Maki
33f5248d4f
Add the ability to make new directories by adding slashes to a file name
2023-06-29 17:35:22 -07:00
Max Brunsfeld
922d8f30d6
Tweak debug log message when ignoring fs events
2023-06-29 12:01:59 -07:00
Max Brunsfeld
8609ccdcf7
Add test coverage for FS events happening inside unloaded dirs
2023-06-29 11:55:25 -07:00
Max Brunsfeld
ba80c53278
Avoid redundant FS scans when LSPs changed watched files
...
* Don't scan directories if they were already loaded.
* Do less work when FS events occur inside unloaded directories.
2023-06-29 11:35:49 -07:00
Max Brunsfeld
91f87bb31f
Scan any external/ignored directories needed for LSP watchers
...
Also, don't include "external" files in project searches. Treat them
the same as ignored files.
Co-authored-by: Nathan Sobo <nathan@zed.dev>
2023-06-23 12:53:25 -07:00
Max Brunsfeld
27b74e9ea1
Prune the set of expanded dir ids as entries are removed
2023-06-23 10:23:21 -07:00
Max Brunsfeld
b22a18345e
Emit loaded events for lazily loaded paths in worktree
2023-06-23 09:39:37 -07:00
Max Brunsfeld
ffb0a215ea
Fix randomized worktree test failures
...
* Distinguish between unloaded and pending directories via separate entry kind.
* Scan directories before updating ignore statuses after fs events.
2023-06-22 16:52:04 -07:00
Max Brunsfeld
5350164db9
Get integration test passing. Wait for expand entry on remote projects.
2023-06-22 10:34:28 -07:00
Max Brunsfeld
400e3cda32
Scan directories when they stop being ignored
2023-06-22 10:34:28 -07:00
Max Brunsfeld
d3477f75ac
Fix reloading of git repositories
...
Also, clean up logic for reloading git repositories.
2023-06-22 10:34:28 -07:00
Max Brunsfeld
4424dafcd7
Fix expansion of ancestor directories when refreshing a path
2023-06-22 10:34:28 -07:00
Max Brunsfeld
3e6aedfc69
Expand dirs on-demand when opening buffers inside unloaded dirs
2023-06-22 10:34:28 -07:00
Max Brunsfeld
cd823ede4d
Add a bit to each entry indicating if it's outside of the worktree root
2023-06-22 10:34:28 -07:00
Max Brunsfeld
1b71589514
Fix confusion between canonical vs non-canonical paths when rescanning, expanding paths
2023-06-22 10:34:28 -07:00
Max Brunsfeld
3c06bd056a
Load git repositories when inserting the entry for the .git
...
Don't wait until populating that directory entry, for two reasons:
* In the case of submodules, .git is not a directory
* We don't eagerly populate .git directories, since their contents
are automatically ignored.
2023-06-22 10:34:28 -07:00
Max Brunsfeld
6fe74602ac
Fix detection of when refreshed paths are outside of worktree root
2023-06-22 10:34:28 -07:00
Max Brunsfeld
205c758e4e
Wait for ignored directory to be expanded in descendant entries test
2023-06-22 10:34:28 -07:00
Max Brunsfeld
aa6f2f1816
Remove logic for marking worktree entries as collapsed
2023-06-22 10:34:28 -07:00
Max Brunsfeld
f910d8fe3e
Only scan ignored or externals paths if expanded in a project panel
2023-06-22 10:34:28 -07:00
Max Brunsfeld
4c03231863
Maintain on the background scanner a set of expanded directories
2023-06-22 10:34:28 -07:00
Nathan Sobo
8c298a9da5
Rename SumTree::push_tree to ::append
2023-06-19 19:49:33 -06:00
Max Brunsfeld
c17dbab6f1
Move worktree tests to their own file
2023-06-13 10:22:14 -07:00
Mikayla Maki
fc1f8c5657
Fixed ci
2023-06-07 16:58:55 -07:00
Mikayla Maki
8ca1a7d43d
add scan_complete await
2023-06-07 16:51:54 -07:00
Mikayla Maki
9e9d8e3a7b
add mroe dbg
2023-06-07 16:50:15 -07:00
Mikayla Maki
9d58c4526d
Fix warning
2023-06-07 16:45:36 -07:00
Mikayla Maki
5f143f689f
Attempting to debug on ci...
2023-06-07 16:44:13 -07:00
Mikayla Maki
572d40381a
Add track caller
2023-06-07 16:39:10 -07:00
Mikayla Maki
2c5e83bf72
Fixed a bug where buffer saved clocks would desynchronize in rare execution paths
...
co-authored-by: Max <max@zed.dev>
2023-06-07 16:10:45 -07:00
Mikayla Maki
28ba27c9c5
Merge branch 'main' into stream-git-statuses
2023-06-07 14:12:58 -07:00
Mikayla Maki
34e134fafb
Fix several randomized test failures with the new git status implementation
2023-06-07 14:10:17 -07:00
Mikayla Maki
a2d58068a7
Improve test generation and implement status propogation
...
co-authored-by: max <max@zed.dev>
2023-06-05 17:30:12 -07:00
Mikayla Maki
9a13a2ba2c
WIP: Add status bubbling to project panel
2023-06-05 12:53:04 -07:00
Mikayla Maki
e56fcd69b5
Track git status changes with the changed_paths system
2023-06-05 11:50:23 -07:00
Joseph Lyons
7c60f636d5
Fix typos
2023-06-02 22:02:19 -04:00
Mikayla Maki
ca077408d7
Fix bug where git statuses would not be initialized on startup
...
move git status queries to be on entry creation
co-authored-by: max <max@zed.dev>
2023-06-02 17:38:39 -07:00
Mikayla Maki
2f97c7a4f1
Remove stale comments
...
Implement status bubbling query with sum tree traversals
co-authored-by: max <max@zed.dev>
2023-06-02 16:41:01 -07:00