From 01aa5e6b591c46de25ecb3dfcff8a171bd215f4a Mon Sep 17 00:00:00 2001 From: Xiaobo Liu Date: Sat, 2 May 2026 16:48:59 +0800 Subject: [PATCH] project: Load git diff bases concurrently Use `future::join` when loading index and committed text for buffer diff bases, while keeping skipped loads as ready None futures. Signed-off-by: Xiaobo Liu --- crates/project/src/git_store.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/crates/project/src/git_store.rs b/crates/project/src/git_store.rs index 8956345c68ef82..c27aac3a7cb4c1 100644 --- a/crates/project/src/git_store.rs +++ b/crates/project/src/git_store.rs @@ -4506,15 +4506,16 @@ impl Repository { &repo_diff_state_updates { let index_text = if current_index_text.is_some() { - backend.load_index_text(repo_path.clone()).await + backend.load_index_text(repo_path.clone()) } else { - None + future::ready(None).boxed() }; let head_text = if current_head_text.is_some() { - backend.load_committed_text(repo_path.clone()).await + backend.load_committed_text(repo_path.clone()) } else { - None + future::ready(None).boxed() }; + let (index_text, head_text) = future::join(index_text, head_text).await; let change = match (current_index_text.as_ref(), current_head_text.as_ref()) {