mirror of
https://github.com/rojo-rbx/rojo.git
synced 2026-10-23 14:01:37 +00:00
Enhance instance metadata and reconciliation logic for glob-ignored children
- Added `globIgnoredChildren` to `ApiInstanceMetadata` to manage child deletion behavior based on glob patterns. - Updated `shouldDeleteChild` function to suppress deletions when `globIgnoredChildren` is true, differentiating from scripts-only mode. - Enhanced tests to verify correct behavior of instance deletion based on the new metadata, ensuring robust handling of unknown scripts. - Refactored snapshot handling to incorporate `globIgnoredChildren` in metadata, improving clarity and maintainability.
This commit is contained in:
parent
4b38c070fb
commit
12bccf91c5
50 changed files with 247 additions and 14 deletions
|
|
@ -118,7 +118,8 @@ pub fn snapshot_dir_no_meta(
|
|||
.instigating_source(path)
|
||||
.relevant_paths(relevant_paths)
|
||||
.context(context)
|
||||
.ignore_unknown_instances(any_child_glob_ignored),
|
||||
.ignore_unknown_instances(any_child_glob_ignored)
|
||||
.glob_ignored_children(any_child_glob_ignored),
|
||||
);
|
||||
|
||||
Ok(Some(snapshot))
|
||||
|
|
@ -602,6 +603,10 @@ mod test {
|
|||
snap.metadata.ignore_unknown_instances,
|
||||
"Directory with glob-ignored children should have ignore_unknown_instances = true"
|
||||
);
|
||||
assert!(
|
||||
snap.metadata.glob_ignored_children,
|
||||
"Directory with glob-ignored children should have glob_ignored_children = true"
|
||||
);
|
||||
assert_eq!(
|
||||
snap.children.len(),
|
||||
1,
|
||||
|
|
@ -636,6 +641,10 @@ mod test {
|
|||
!snap.metadata.ignore_unknown_instances,
|
||||
"Directory without glob-ignored children should have ignore_unknown_instances = false"
|
||||
);
|
||||
assert!(
|
||||
!snap.metadata.glob_ignored_children,
|
||||
"Directory without glob-ignored children should have glob_ignored_children = false"
|
||||
);
|
||||
assert_eq!(snap.children.len(), 2);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo.csv
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /root/init.csv
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /root/init.csv
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: true
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo.csv
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo
|
||||
relevant_paths:
|
||||
|
|
@ -30,6 +31,7 @@ children:
|
|||
- snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo/Child
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo.json5
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo.json5
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo.model.json5
|
||||
relevant_paths:
|
||||
|
|
@ -22,6 +23,7 @@ children:
|
|||
- snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
relevant_paths: []
|
||||
context: {}
|
||||
specified_id: ~
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo.model.json5
|
||||
relevant_paths:
|
||||
|
|
@ -22,6 +23,7 @@ children:
|
|||
- snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
relevant_paths: []
|
||||
context: {}
|
||||
specified_id: ~
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo.client.luau
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /root/init.luau
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /root/init.luau
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo.legacy.luau
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo.local.luau
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo.luau
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: true
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo.luau
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo.plugin.luau
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /bar.server.luau
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo.server.luau
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: true
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo.server.luau
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
relevant_paths:
|
||||
- /foo/bar.meta.json5
|
||||
context: {}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
relevant_paths:
|
||||
- /foo/init.meta.json5
|
||||
context: {}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: true
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo/default.project.json5
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: true
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo/hello.project.json5
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: true
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo/default.project.json5
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: true
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo.project.json5
|
||||
relevant_paths:
|
||||
|
|
@ -20,6 +21,7 @@ children:
|
|||
- snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: true
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
ProjectNode:
|
||||
path: /foo.project.json5
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: true
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo/default.project.json5
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: true
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo/default.project.json5
|
||||
relevant_paths:
|
||||
|
|
@ -21,6 +22,7 @@ children:
|
|||
- snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: true
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
ProjectNode:
|
||||
path: /foo/other.project.json5
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo/default.project.json5
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: true
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo.project.json5
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: true
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo.project.json5
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo.toml
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: foo.toml
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo.txt
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo.txt
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: /foo.yaml
|
||||
relevant_paths:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ expression: instance_snapshot
|
|||
snapshot_id: "00000000000000000000000000000000"
|
||||
metadata:
|
||||
ignore_unknown_instances: false
|
||||
glob_ignored_children: false
|
||||
instigating_source:
|
||||
Path: foo.yaml
|
||||
relevant_paths:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue