mirror of
https://github.com/rojo-rbx/rojo.git
synced 2026-10-23 05:51:39 +00:00
Update submodule and implement parallel I/O audit fixes
- Updated the `vscode-rojo` submodule to the latest commit. - Added a new plan for addressing issues found during the audit of parallelization and optimization commits, including fixes for a data loss bug in the orphan scanner, a duplicate-children bug in the prefetch cache, and a nested-detection correctness issue. - Implemented a small DRY refactor by extracting a shared helper function for UNC path stripping. - Enhanced the `syncback` logic to ensure hidden directories are preserved during clean mode operations and added tests to validate these changes. These updates aim to improve the reliability and correctness of the parallel I/O functionality while maintaining code clarity and performance.
This commit is contained in:
parent
1c25b928a8
commit
43834f357e
6 changed files with 536 additions and 57 deletions
|
|
@ -136,6 +136,15 @@ fn prefetch_project_files(project: &Project) -> io::Result<PrefetchCache> {
|
|||
let mut roots: Vec<std::path::PathBuf> = Vec::new();
|
||||
collect_path_roots(&project.tree, folder, &mut roots);
|
||||
|
||||
roots.sort();
|
||||
let mut deduped: Vec<std::path::PathBuf> = Vec::new();
|
||||
for root in roots {
|
||||
if !deduped.iter().any(|existing| root.starts_with(existing)) {
|
||||
deduped.push(root);
|
||||
}
|
||||
}
|
||||
let roots = deduped;
|
||||
|
||||
if roots.is_empty() {
|
||||
return Ok(PrefetchCache {
|
||||
files: HashMap::new(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue