For the Curious

Blueprints are in fact just Escenic publications that are used to hold widgets and templates rather than sections and content items. Like any other Escenic publications therefore, they are stored in an SQL database – so why do they need to be stored in a git repo as well? And how is it done?

The Snapshot plug-in uses git for storage in order to take advantage of the sophisticated versioning and collaboration functionality that a version control system offers.

In order to be able to store a blueprint in git, the Snapshot plug-in exports it to a set of Escenic syndication file (that is XML import/export files) behind the scenes, and it is these exported files that are actually saved in the git repo. When the Snapshot user syncs a blueprint with some particular branch, the syndication files in that branch are pulled from the repo and imported into the blueprint in the Content Engine. This means that once you have set up the Snapshot plug-in to take control of your blueprints, the blueprints stored in the Content Engine database are no longer the primary versions, but more like run-time copies.