Finish removing git repository state and scanning logic from worktrees (#27568)
This PR completes the process of moving git repository state storage and scanning logic from the worktree crate to `project::git_store`. Release Notes: - N/A --------- Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com> Co-authored-by: Conrad <conrad@zed.dev>
This commit is contained in:
parent
8f25251faf
commit
e7290df02b
39 changed files with 3121 additions and 3529 deletions
|
@ -24,7 +24,7 @@ mod direnv;
|
|||
mod environment;
|
||||
use buffer_diff::BufferDiff;
|
||||
pub use environment::{EnvironmentErrorMessage, ProjectEnvironmentEvent};
|
||||
use git_store::{GitEvent, Repository};
|
||||
use git_store::{Repository, RepositoryId};
|
||||
pub mod search_history;
|
||||
mod yarn;
|
||||
|
||||
|
@ -300,8 +300,6 @@ pub enum Event {
|
|||
RevealInProjectPanel(ProjectEntryId),
|
||||
SnippetEdit(BufferId, Vec<(lsp::Range, Snippet)>),
|
||||
ExpandedAllForEntry(WorktreeId, ProjectEntryId),
|
||||
GitStateUpdated,
|
||||
ActiveRepositoryChanged,
|
||||
}
|
||||
|
||||
pub enum DebugAdapterClientState {
|
||||
|
@ -924,7 +922,6 @@ impl Project {
|
|||
cx,
|
||||
)
|
||||
});
|
||||
cx.subscribe(&git_store, Self::on_git_store_event).detach();
|
||||
|
||||
cx.subscribe(&lsp_store, Self::on_lsp_store_event).detach();
|
||||
|
||||
|
@ -1064,13 +1061,7 @@ impl Project {
|
|||
});
|
||||
|
||||
let git_store = cx.new(|cx| {
|
||||
GitStore::ssh(
|
||||
&worktree_store,
|
||||
buffer_store.clone(),
|
||||
environment.clone(),
|
||||
ssh_proto.clone(),
|
||||
cx,
|
||||
)
|
||||
GitStore::ssh(&worktree_store, buffer_store.clone(), ssh_proto.clone(), cx)
|
||||
});
|
||||
|
||||
cx.subscribe(&ssh, Self::on_ssh_event).detach();
|
||||
|
@ -1655,13 +1646,13 @@ impl Project {
|
|||
pub fn shell_environment_errors<'a>(
|
||||
&'a self,
|
||||
cx: &'a App,
|
||||
) -> impl Iterator<Item = (&'a WorktreeId, &'a EnvironmentErrorMessage)> {
|
||||
) -> impl Iterator<Item = (&'a Arc<Path>, &'a EnvironmentErrorMessage)> {
|
||||
self.environment.read(cx).environment_errors()
|
||||
}
|
||||
|
||||
pub fn remove_environment_error(&mut self, worktree_id: WorktreeId, cx: &mut Context<Self>) {
|
||||
pub fn remove_environment_error(&mut self, abs_path: &Path, cx: &mut Context<Self>) {
|
||||
self.environment.update(cx, |environment, cx| {
|
||||
environment.remove_environment_error(worktree_id, cx);
|
||||
environment.remove_environment_error(abs_path, cx);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -2760,19 +2751,6 @@ impl Project {
|
|||
}
|
||||
}
|
||||
|
||||
fn on_git_store_event(
|
||||
&mut self,
|
||||
_: Entity<GitStore>,
|
||||
event: &GitEvent,
|
||||
cx: &mut Context<Self>,
|
||||
) {
|
||||
match event {
|
||||
GitEvent::GitStateUpdated => cx.emit(Event::GitStateUpdated),
|
||||
GitEvent::ActiveRepositoryChanged => cx.emit(Event::ActiveRepositoryChanged),
|
||||
GitEvent::FileSystemUpdated | GitEvent::IndexWriteError(_) => {}
|
||||
}
|
||||
}
|
||||
|
||||
fn on_ssh_event(
|
||||
&mut self,
|
||||
_: Entity<SshRemoteClient>,
|
||||
|
@ -4794,7 +4772,7 @@ impl Project {
|
|||
self.git_store.read(cx).active_repository()
|
||||
}
|
||||
|
||||
pub fn repositories<'a>(&self, cx: &'a App) -> &'a HashMap<ProjectEntryId, Entity<Repository>> {
|
||||
pub fn repositories<'a>(&self, cx: &'a App) -> &'a HashMap<RepositoryId, Entity<Repository>> {
|
||||
self.git_store.read(cx).repositories()
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue