aboutsummaryrefslogtreecommitdiff
path: root/src/persist
diff options
context:
space:
mode:
authorCan Celik <ogulcancelik@gmail.com>2026-07-25 04:26:55 +0300
committerGitHub <noreply@github.com>2026-07-25 04:26:55 +0300
commitd4e0dd3d903c50d2edb8c3cec71952a83989b310 (patch)
treec90ec43a08fab1fc79e1d6db865c723877a051af /src/persist
parentb33e5f973fc89381aa4ac72b3a31fa087ec66e23 (diff)
perf: eliminate repeated workspace git discovery (#1842)
* perf: eliminate repeated workspace git discovery refs #1838 * fix: keep workspace labels current without extra redraws refs #1838 * fix: retain discovered workspace git metadata refs #1838
Diffstat (limited to 'src/persist')
-rw-r--r--src/persist/restore.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/persist/restore.rs b/src/persist/restore.rs
index e442ac17..a1b07710 100644
--- a/src/persist/restore.rs
+++ b/src/persist/restore.rs
@@ -403,15 +403,20 @@ fn restore_workspace(
}
let worktree_space = restored_worktree_space_membership(snap.worktree_space.clone());
+ let (cached_git_space, cached_auto_label, cached_git_status_key) =
+ crate::workspace::discover_workspace_git_identity(&snap.identity_cwd);
(
Some(Workspace {
id: workspace_id,
custom_name: snap.custom_name.clone(),
identity_cwd: snap.identity_cwd.clone(),
+ cached_identity_cwd: snap.identity_cwd.clone(),
+ cached_auto_label,
+ cached_git_status_key,
cached_git_branch: crate::workspace::git_branch(&snap.identity_cwd),
cached_git_ahead_behind: None,
- cached_git_space: crate::workspace::git_space_metadata(&snap.identity_cwd),
+ cached_git_space,
worktree_space,
metadata_tokens: crate::metadata_tokens::MetadataTokens::default(),
metadata_token_sequences: HashMap::new(),