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
..
2024-05-08 19:13:28 +02:00
2024-05-30 12:36:07 +02:00
2024-05-29 18:06:45 -07:00
2024-05-30 16:45:05 +02:00
2024-05-30 16:45:05 +02:00
2024-05-12 04:47:19 -07:00
2024-05-29 18:06:45 -07:00
2024-05-27 19:01:20 -06:00
2024-04-25 17:42:53 -04:00
2024-05-10 15:50:20 -06:00
2024-05-16 20:02:25 -06:00
2024-05-27 19:01:20 -06:00
2024-05-29 16:53:45 -06:00
2024-05-29 18:06:45 -07:00
2024-05-29 18:06:45 -07:00
2024-05-16 13:30:04 -04:00
2024-05-26 16:30:09 -07:00
2024-04-23 13:31:21 -04:00
2024-05-21 22:39:16 -06:00
2024-05-29 18:06:45 -07:00
2024-05-30 09:37:11 -07:00
2024-05-30 16:45:05 +02:00
2024-05-27 17:44:54 -06:00
2024-05-29 18:06:45 -07:00
2024-05-29 16:53:45 -06:00
2024-05-28 21:51:24 -04:00
2024-05-22 14:36:15 +03:00
2024-05-29 18:06:45 -07:00
2024-05-30 09:37:11 -07:00
2024-04-30 23:31:59 -06:00
2024-05-30 09:37:11 -07:00
2024-05-10 15:50:20 -06:00
2024-05-16 20:28:17 -07:00
2024-05-10 15:50:20 -06:00
2024-05-29 18:06:45 -07:00
2024-05-06 13:56:25 -04:00
2024-05-23 21:11:14 -06:00
2024-05-22 20:40:31 -04:00
2024-05-29 18:06:45 -07:00
2024-05-03 12:50:42 -07:00
2024-04-08 19:17:12 -04:00
2024-05-29 14:11:05 +02:00
2024-05-29 18:06:45 -07:00
2024-05-27 23:32:51 +02:00
2024-04-25 22:37:40 -04:00
2024-05-10 14:18:40 -04:00
2024-05-25 12:25:17 +02:00
2024-05-26 12:50:20 +02:00
2024-04-26 21:34:45 +02:00
2024-05-26 16:30:09 -07:00
2024-05-25 11:04:22 -04:00
2024-05-30 12:36:07 +02:00
2024-05-16 20:28:17 -07:00
2024-05-20 10:52:04 -04:00
2024-05-25 10:50:53 +03:00
2024-05-30 09:37:11 -07:00
2024-05-29 12:34:58 +02:00
2024-04-17 13:20:47 +02:00
2024-05-29 18:06:45 -07:00
2024-05-09 21:08:49 -06:00
2024-04-23 16:23:26 -07:00
2024-05-23 15:50:59 +02:00
2024-05-24 22:26:57 +03:00
2024-05-30 12:17:10 -04:00
2024-05-29 18:06:45 -07:00
2024-05-29 18:06:45 -07:00
2024-05-16 13:30:04 -04:00
2024-05-20 17:00:27 +02:00
2024-05-02 11:00:08 -06:00
2024-05-09 11:03:33 +02:00
2024-05-29 18:06:45 -07:00
2024-05-21 20:23:37 +02:00
2024-05-17 16:37:17 -04:00
2024-05-13 18:52:12 -04:00
2024-05-14 13:48:36 +02:00
2024-05-29 11:40:43 +02:00
2024-05-29 11:40:43 +02:00
2024-05-16 17:18:32 -04:00
2024-05-26 23:06:58 -06:00
2024-05-29 18:06:45 -07:00
2024-05-24 18:24:03 +02:00
2024-05-29 18:06:45 -07:00
2024-05-29 18:06:45 -07:00
2024-05-16 13:30:04 -04:00
2024-04-15 14:21:52 +02:00
2024-05-30 16:45:05 +02:00
2024-05-26 23:06:58 -06:00
2024-05-27 19:01:20 -06:00
2024-05-30 09:37:11 -07:00
2024-05-22 12:54:41 -06:00
2024-05-29 18:06:45 -07:00
2024-05-29 18:06:45 -07:00
2024-05-30 09:37:11 -07:00
2024-05-29 18:06:45 -07:00