diff --git a/crates/worktree/src/worktree.rs b/crates/worktree/src/worktree.rs index b6ddb381a3c53725a727c47f9e69c351a5f31b85..077f811ede6dc7b03109602bda2a2b8a0399930a 100644 --- a/crates/worktree/src/worktree.rs +++ b/crates/worktree/src/worktree.rs @@ -673,7 +673,11 @@ fn start_background_scan_tasks( ) -> Vec> { let (scan_states_tx, mut scan_states_rx) = mpsc::unbounded(); let background_scanner = cx.background_executor().spawn({ - let abs_path = abs_path.to_path_buf(); + let abs_path = if cfg!(target_os = "windows") { + abs_path.canonicalize().expect("start background scan tasks failed for canonicalize path {abs_path}") + } else { + abs_path.to_path_buf() + }; let background = cx.background_executor().clone(); async move { let events = fs.watch(&abs_path, FS_WATCH_LATENCY).await;