forked from rojo-rbx/rojo
Add protection against syncing non place projects (#691)
Closes #113. Does what it says on the tin. When you try to sync a non-place project, it gives a clear message instead of crashing.
This commit is contained in:
@@ -5,11 +5,13 @@
|
|||||||
* Fixed the diff visualizer of connected sessions. ([#674])
|
* Fixed the diff visualizer of connected sessions. ([#674])
|
||||||
* Fixed disconnected session activity. ([#675])
|
* Fixed disconnected session activity. ([#675])
|
||||||
* Skip confirming patches that contain only a datamodel name change. ([#688])
|
* Skip confirming patches that contain only a datamodel name change. ([#688])
|
||||||
|
* Added protection against syncing a model to a place. ([#691])
|
||||||
|
|
||||||
[#668]: https://github.com/rojo-rbx/rojo/pull/668
|
[#668]: https://github.com/rojo-rbx/rojo/pull/668
|
||||||
[#674]: https://github.com/rojo-rbx/rojo/pull/674
|
[#674]: https://github.com/rojo-rbx/rojo/pull/674
|
||||||
[#675]: https://github.com/rojo-rbx/rojo/pull/675
|
[#675]: https://github.com/rojo-rbx/rojo/pull/675
|
||||||
[#688]: https://github.com/rojo-rbx/rojo/pull/688
|
[#688]: https://github.com/rojo-rbx/rojo/pull/688
|
||||||
|
[#691]: https://github.com/rojo-rbx/rojo/pull/691
|
||||||
|
|
||||||
## [7.3.0] - April 22, 2023
|
## [7.3.0] - April 22, 2023
|
||||||
* Added `$attributes` to project format. ([#574])
|
* Added `$attributes` to project format. ([#574])
|
||||||
|
|||||||
@@ -232,6 +232,22 @@ function ServeSession:__initialSync(serverInfo)
|
|||||||
Log.error("Could not compute a diff to catch up to the Rojo server: {:#?}", catchUpPatch)
|
Log.error("Could not compute a diff to catch up to the Rojo server: {:#?}", catchUpPatch)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
for _, update in catchUpPatch.updated do
|
||||||
|
if
|
||||||
|
update.id == self.__instanceMap.fromInstances[game]
|
||||||
|
and update.changedClassName ~= nil
|
||||||
|
then
|
||||||
|
-- Non-place projects will try to update the classname of game from DataModel to
|
||||||
|
-- something like Folder, ModuleScript, etc. This would fail, so we exit with a clear
|
||||||
|
-- message instead of crashing.
|
||||||
|
return Promise.reject(
|
||||||
|
"Cannot sync a model as a place."
|
||||||
|
.. "\nEnsure Rojo is serving a project file that has a DataModel at the root of its tree and try again."
|
||||||
|
.. "\nSee project file docs: https://rojo.space/docs/v7/project-format/"
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
Log.trace("Computed hydration patch: {:#?}", debugPatch(catchUpPatch))
|
Log.trace("Computed hydration patch: {:#?}", debugPatch(catchUpPatch))
|
||||||
|
|
||||||
local userDecision = "Accept"
|
local userDecision = "Accept"
|
||||||
|
|||||||
Reference in New Issue
Block a user