All project resources are located in the gateway installation directory (if you're on, say, Windows, this defaults to Program Files/Inductive Automation/Ignition/
. From there, project resources are in /data/projects/
. Each project will have a folder there, and all resources within that project are then separated into modules. Below each module is a folder structure representing the path that you see in the designer.
An individual resource is itself a folder, containing at minimum two files: a resource.json
file that defines meta-information about the resource, and a data.bin
file, which contains the direct Java serialization of the actual resource. Some resource types, but not all, have different representations; for instance, project scripts are directly encoded as code.py
files, which are plain text, while Perspective views are their direct JSON representation.
As of right now, in Ignition 8.0.X, that's basically all the "source control" integration you get. Triggering commits, reverting, etc, is all an exercise for the user. In fact, you would probably need to write a custom module if you wanted to do on-demand "commits" every time a save was pushed from the gateway. But, if you just want to rely on a system like git to perform periodic commits (and safe resource rollback), you're set.
Future plans include, at minimum, scripting hooks to allow you to directly run commits and various other actions once you've configured a git or other VCS repository.