ZIm/crates/project/src
Max Brunsfeld 8f942bf647
Use repository mutex more sparingly. Don't hold it while running git status. (#12489)
Previously, each git `Repository` object was held inside of a mutex.
This was needed because libgit2's Repository object is (as one would
expect) not thread safe. But now, the two longest-running git operations
that Zed performs, (`status` and `blame`) do not use libgit2 - they
invoke the `git` executable. For these operations, it's not necessary to
hold a lock on the repository.

In this PR, I've moved our mutex usage so that it only wraps the libgit2
calls, not our `git` subprocess spawns. The main user-facing impact of
this is that the UI is much more responsive when initially opening a
project with a very large git repository (e.g. `chromium`, `webkit`,
`linux`).

Release Notes:

- Improved Zed's responsiveness when initially opening a project
containing a very large git repository.
2024-05-30 09:37:11 -07:00
..
connection_manager.rs WIP: remoting (#10085) 2024-04-11 15:36:35 -06:00
debounced_delay.rs Add debounce for re-querying completion documentation 2024-01-31 09:50:26 -05:00
lsp_command.rs lsp: Use itemDefaults if sent along with completion items (#11902) 2024-05-16 13:26:07 +02:00
lsp_ext_command.rs text: Wrap BufferId into a newtype 2024-01-29 20:00:47 +01:00
prettier_support.rs Allow formatting of unsaved buffers with prettier (#12095) 2024-05-22 06:19:32 +02:00
project.rs Use repository mutex more sparingly. Don't hold it while running git status. (#12489) 2024-05-30 09:37:11 -07:00
project_settings.rs Allow to toggle git hunk diffs (#11080) 2024-05-01 22:47:36 +03:00
project_tests.rs Allow clients to run Zed tasks on remote projects (#12199) 2024-05-24 22:26:57 +03:00
search.rs Implement serialization of assistant conversations, including tool calls and attachments (#11577) 2024-05-08 17:52:15 -04:00
search_history.rs project search: Persist search history across session (#9932) 2024-04-02 11:13:18 +02:00
task_inventory.rs task: Add re-run task button to terminal title (#12379) 2024-05-29 11:40:43 +02:00
terminals.rs One less unwrap (#12448) 2024-05-29 23:44:56 +03:00