mirror of
https://github.com/rojo-rbx/rojo.git
synced 2026-10-23 14:01:37 +00:00
Update slugify branch audit plan and implement fixes for identified issues
- Marked all todos in the slugify branch audit plan as completed, confirming the successful verification of core invariants and sync processes. - Introduced a new plan to address critical bugs, correctness issues, and refactors identified during the audit, including enhancements to metadata handling and slugification logic. - Added tests to ensure proper handling of filenames with forbidden characters and deduplication of instances with colliding names. - Refactored metadata operations to improve clarity and maintainability, consolidating logic for reading and writing the `name` field in `.meta.json5` files.
This commit is contained in:
parent
d8175d3b48
commit
baf05dcb3d
14 changed files with 875 additions and 119 deletions
|
|
@ -679,7 +679,12 @@ pub fn syncback_project<'sync>(
|
|||
}
|
||||
}
|
||||
|
||||
for (name, new_child) in new_child_map.drain() {
|
||||
// Sort remaining children by name for deterministic dedup ordering.
|
||||
// Without this, HashMap iteration order determines which sibling gets
|
||||
// the base slug vs ~1, causing non-deterministic output across runs.
|
||||
let mut remaining_children: Vec<_> = new_child_map.drain().collect();
|
||||
remaining_children.sort_by(|(name_a, _), (name_b, _)| name_a.cmp(name_b));
|
||||
for (name, new_child) in remaining_children {
|
||||
// Skip instances of ignored classes
|
||||
if snapshot.should_ignore_class(&new_child.class) {
|
||||
// Also remove from old_child_map so it won't be marked as removed
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue