project: Load git diff bases concurrently (#55480)

Use `future::join` when loading index and committed text for buffer diff
bases, while keeping skipped loads as ready None futures.

Release Notes:

- N/A

Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
This commit is contained in:
Xiaobo Liu 2026-05-05 11:06:37 +08:00 committed by GitHub
parent c958a12bcc
commit 8d153d7feb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -4565,15 +4565,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()) {