Commit Graph
466 Commits
Author SHA1 Message Date
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 BrunsfeldandNathan Sobo 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 MakiandMax 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 Makiandmax 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 Makiandmax 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 Makiandmax 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
Mikayla Makiandmax e377459948 Remove stateful bubbling
co-authored-by: max <max@zed.dev>
2023-06-02 15:07:49 -07:00
Mikayla Makiandmax 99a0e11e70 Abandoning stateful bubbling approach
co-authored-by: max <max@zed.dev>
2023-06-02 14:51:40 -07:00
Mikayla Maki 3768851799 WIP: Git statuses 2023-06-01 23:27:49 -07:00
Mikayla Maki 5e43dcaab8 WIP: Add stateful status bubbling to worktree 2023-06-01 16:51:34 -07:00
Max Brunsfeld 03a351fb26 Make language settings accessors take an arc dyn file 2023-05-31 14:57:04 -07:00