Two-Way Sync #164
Labels
impact: high
Major blocker for Rojo users, or stops people from adopting Rojo.
scope: cli
Relevant to the Rojo CLI
scope: plugin
Relevant to the Roblox Studio plugin
size: large
two-way-sync
This will help further two-way-sync.
type: enhancement
Feature or improvement that should potentially happen
This is the giant killer feature Rojo needs!
Enabling Two-Way Sync
Turn on the "Two-Way Sync" toggle in the plugin, available on master:
Work Items
Remaining work for two-way sync involves every issue with the "two-way-sync" label.
Patch-to-VFS-Patch Resolver
One promising approach is to eagerly apply the client's patch (which is of type
PatchSet
), which will give us anAppliedPatchSet
. Using the applied patch as well as information from the DOM, we should be able to produce aVfsPatch
of some sort.If generating a
VfsPatch
fails, like we couldn't figure out how to modify the files on-disk, we can snapshot instances from the filesystem again to undo the patch and let the client know that their change was rejected.VfsPatch
should be pretty simple, probably similar to the shape ofAppliedPatchSet
. Something like:How you can help
Rojo's codebase has historically been kind of a rat's nest of complexity. We're slowly trying to make it better, and any improvements to readability (comments, better names, small refactors) are welcome!
There are more ways to help than with code, though. Come to the Roblox Open Source Discord (run by Quenty) to get involved in design discussions, hard technical problems, documentation, and evangelism!
The text was updated successfully, but these errors were encountered: