We’re extremely happy to announce that we’ve rolled out our integrated version control to all PlayCanvas users. With this new feature everyone now is able to create checkpoints and branches in their projects, merge between branches and view the changes you have made since your last checkpoint.
amazing!!
have been waiting for this. Just in time for new devs joining my team
thanks playcanvas team
One concern is the size of the checkpoints, this will affect the overall remaining disk space per account, right?
I think moving my heavy assets out of the project will help with this long term.
Yes, checkpoints and branches take up additional space. In particular each open branch consumes the same space amount of space as a current copy of your project. Closing a branch frees up this space.
Checkpoints size is dependent on what has changed, if you modify large assets your checkpoints will be large.
We have a tool in-house that allow us to use source control with PlayCanvas REST API command that export projects (with the Organization feature). Can we download the content of a specific checkpoint (for instance, it returns an exported project) with a command from the Rest API as well? We would like to download checkpoints so we can use both at the same time.
Good question. The REST API lets you specify the branch from which to download, in which case you will receive the latest version in that branch.
We don’t have a way to support downloading any arbitrary version of a file. In the language of other source control systems we only give you access the HEAD of a branch.
In order to synchronize use of an external SCM, once solution is to work the other way around. Edit your files locally so that you can commit them to git (for example), then continually push the changed files to PlayCanvas. If you map a playcanvas branch to git branch you can do this without interfering with other developers.
I know (and understand why) it’s not possible to remove checkpoints. But if i make checkpoints in a different branche, then why i can’t remove the branche after merge to the master branche? If that was possible i can make checkpoints and remove that branche when i don’t need the checkpoints anymore.
A checkpoint on a branch that is merged into another branch can still be the common ancestor of two checkpoints being merged later (its contents will be used for comparison). Also keeping all checkpoints can be useful for showing history of each item/file when we implement it
obviously not sustainable to just keep them there because of some technical reason. Storage size goes out of control, you have to keep exporting the project with latest, starting a new one and removing former project due to the amount of checkpoints keeping all that space unecessarily