Skip to content

v7.4.0-uplift.syncback.rc.3

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 15 Feb 22:56
84a96ec
This release has been superseded by v7.4.0-uplift.syncback.rc.4

As mentioned in the last release, this is a total rewrite of syncback and compatibility with v7.3.0-uplift.12.pre.2+syncback.experimental.1 is not guaranteed nor tested for.

Note that this is a pre-release build. Despite being labeled as a release candidate, it will almost certainly have serious bugs and you should not consider it safe for production unless you're very brave. Among other things, this release doesn't send things to the recycling bin like the previous implementation of syncback did.


Syncback is a feature designed to solve the long-standing problem of converting an existing place file into a Rojo project. It is configured by a new field in projects, and is invoked with a CLI subcommand rojo syncback.

The command itself is rojo syncback path/to/project --input path/to/file.rbxl. This will run syncback and pull things from the provided file to place on the operating system. Instances are attempted to be written in a reasonable manner but what Instances become what is still up in the air.

Instances will only be pulled from the file system if they are a descendant of a node in the provided project file. That is, in order to syncback the children of Workspace, Workspace must be in your project file. You may wish to have a separate project.json for running syncback as a result.

To control the behavior of syncback more, there's a new field in project files named syncbackRules:

    {
        "syncbackRules": {
            "ignoreTrees": [
                "DataModel/ServerStorage/ImportantSecrets",
            ],
            "ignorePaths": [
                "src/ServerStorage/Secrets/*"
            ],
            "ignoreProperties": {
                "BasePart": ["Color"]
            },
            "syncCurrentCamera": false,
            "syncUnscriptable": true,
        }
    }

A brief explanation of each field:

  • ignoreTrees is a list of paths in the roblox file that should be ignored
  • ignorePaths is a list of paths in the file system that should be ignored
  • ignoreProperties is a list of properties that won't be synced back
  • syncCurrentCamera is a toggle for whether to sync back the Workspace's CurrentCamera. Defaults to false.
  • syncUnscriptable is a toggle for whether to sync back properties that cannot be set by the Roblox Studio plugin. Defaults to false.

This feature will have bugs. Please report them to us as you encounter them!


Changes:

  • rc.3
    • Fixes ref properties not saving correctly when a model is saved via syncback
  • rc.2
    • Fixes cross-file referent support
    • Fixes attribute/tag deletion
    • Fixes massive diffs
    • Added prompt to confirm before writing files. Bypass with -y or --non-interactive.