From 819b3279730fd9d782b639977f42d5551c2efe59 Mon Sep 17 00:00:00 2001 From: Kiril Videlov Date: Sat, 6 Jul 2024 17:03:46 +0200 Subject: [PATCH] virtual branches controller - remove state dependency to credentials controller --- .../src/virtual_branches/controller.rs | 19 +++++++++---------- .../tests/suite/virtual_branches/init.rs | 3 +-- .../tests/suite/virtual_branches/mod.rs | 3 +-- crates/gitbutler-tauri/src/main.rs | 4 +--- 4 files changed, 12 insertions(+), 17 deletions(-) diff --git a/crates/gitbutler-core/src/virtual_branches/controller.rs b/crates/gitbutler-core/src/virtual_branches/controller.rs index b3483df60..08d95fc8d 100644 --- a/crates/gitbutler-core/src/virtual_branches/controller.rs +++ b/crates/gitbutler-core/src/virtual_branches/controller.rs @@ -1,5 +1,5 @@ use crate::{ - git::BranchExt, + git::{credentials::Helper, BranchExt}, ops::entry::{OperationKind, SnapshotDetails}, project_repository::Repository, projects::FetchResult, @@ -21,20 +21,18 @@ use crate::{ #[derive(Clone)] pub struct Controller { - helper: git::credentials::Helper, - semaphore: Arc, } -impl Controller { - pub fn new(helper: git::credentials::Helper) -> Self { +impl Default for Controller { + fn default() -> Self { Self { semaphore: Arc::new(Semaphore::new(1)), - - helper, } } +} +impl Controller { pub async fn create_commit( &self, project: &Project, @@ -369,7 +367,7 @@ impl Controller { askpass: Option>, ) -> Result<()> { let _permit = self.semaphore.acquire().await; - let helper = self.helper.clone(); + let helper = Helper::default(); let project_repository = open_with_verify(project)?; super::push(&project_repository, branch_id, with_force, &helper, askpass) } @@ -426,10 +424,11 @@ impl Controller { ) -> Result { let project_repository = Repository::open(project)?; + let helper = Helper::default(); let remotes = project_repository.remotes()?; let fetch_results: Vec> = remotes .iter() - .map(|remote| project_repository.fetch(remote, &self.helper, askpass.clone())) + .map(|remote| project_repository.fetch(remote, &helper, askpass.clone())) .collect(); let project_data_last_fetched = if fetch_results.iter().any(Result::is_err) { @@ -454,7 +453,7 @@ impl Controller { // if we have a push remote, let's fetch from this too if let Some(push_remote) = &default_target.push_remote_name { - if let Err(err) = project_repository.fetch(push_remote, &self.helper, askpass.clone()) { + if let Err(err) = project_repository.fetch(push_remote, &helper, askpass.clone()) { tracing::warn!(?err, "fetch from push-remote failed"); } } diff --git a/crates/gitbutler-core/tests/suite/virtual_branches/init.rs b/crates/gitbutler-core/tests/suite/virtual_branches/init.rs index 816f596cf..9f5be12b5 100644 --- a/crates/gitbutler-core/tests/suite/virtual_branches/init.rs +++ b/crates/gitbutler-core/tests/suite/virtual_branches/init.rs @@ -4,11 +4,10 @@ use super::*; async fn twice() { let data_dir = paths::data_dir(); let projects = projects::Controller::from_path(data_dir.path()); - let helper = git::credentials::Helper::default(); let test_project = TestProject::default(); - let controller = Controller::new(helper); + let controller = Controller::default(); { let project = projects diff --git a/crates/gitbutler-core/tests/suite/virtual_branches/mod.rs b/crates/gitbutler-core/tests/suite/virtual_branches/mod.rs index 1515454b1..561b45861 100644 --- a/crates/gitbutler-core/tests/suite/virtual_branches/mod.rs +++ b/crates/gitbutler-core/tests/suite/virtual_branches/mod.rs @@ -32,7 +32,6 @@ impl Default for Test { fn default() -> Self { let data_dir = paths::data_dir(); let projects = projects::Controller::from_path(data_dir.path()); - let helper = git::credentials::Helper::default(); let test_project = TestProject::default(); let project = projects @@ -42,7 +41,7 @@ impl Default for Test { Self { repository: test_project, project_id: project.id, - controller: Controller::new(helper), + controller: Controller::default(), projects, project, data_dir: Some(data_dir), diff --git a/crates/gitbutler-tauri/src/main.rs b/crates/gitbutler-tauri/src/main.rs index 2cd57a62b..25ffc5695 100644 --- a/crates/gitbutler-tauri/src/main.rs +++ b/crates/gitbutler-tauri/src/main.rs @@ -135,9 +135,7 @@ fn main() { let git_credentials_controller = git::credentials::Helper::default(); app_handle.manage(git_credentials_controller.clone()); - app_handle.manage(gitbutler_core::virtual_branches::controller::Controller::new( - git_credentials_controller.clone(), - )); + app_handle.manage(gitbutler_core::virtual_branches::controller::Controller::default()); let remotes_controller = gitbutler_core::remotes::controller::Controller::new( projects_controller.clone(),