Ignition Versioning

No, the project file is probably not as human-readable as you would like. :smiley: There is so much data that needs to be stored for even a single window that if we put the information in a human-readable format the files would be enormous, and the readability would benefit almost none of our customers.

That said, you can probably design a system that will do what you want, it just won’t be as automated as you would like. Exporting your project file on a regular basis would be a good idea, since that way you can recover from disaster easily, as well as revert back to a previous version if your design changes aren’t working out. Good commit messages will help here (as they do with anything you are putting under VCS.) Although much of the data inside the project file is binary, there are parts that are human-readable that can help you know what changed. For example, in the Skeleton Project Single Tab West from our website, lines 11-21 are [code]Skeleton_Project_Single_Tab_West

Skeleton Project (Single Tier Tabbed West) 1327446189176 admin 47 87a4cb81-2d09-b288-da51-f28320357ed3 <![CDATA[H4sIAAAAAAAAAGy8BVBcTdQtirsEt+DuLsHdJbg7gwVnGNzdIbhbcHd3C+7uIbiG4Pom/3ffvfXq[/code] You can easily read the name of the project, who modified it when, and can tell that the first resource is an About window. If you need a human-friendly representation of that window, you could also save annotated screen shots when major changes are made. But if your major worry is about restoring the project, the .proj file will do the trick.

Tags can be exported as xml and are very readable. An example is <Tags> <Tag name="_types_" path="" type="Folder"/> <Tag name="_Diagnostics_" path="" type="Folder"/> <Tag name="Connection State" path="_Diagnostics_" type="OPC"> <Property name="Value">Connected</Property> <Property name="DataType">7</Property> <Property name="OPCServer">Ignition OPC-UA Server</Property> <Property name="OPCItemPath">[GenericSim]_Meta:[Diagnostics]/Connection State</Property> </Tag> </Tags>

The gateway backups are not at all human readable, and probably not a great candidate for version control because they are all binary data. But you should have a good incremental backup system on computers where you have any important data, including the gateway. Remember that some data, like images, are not tied to a specific project, so you need to have a gateway backup as well as a project backup if you are worried about recovering from a complete disaster.

Anything you have in a database is not going to work well with VCS. That’s just the nature of databases. Again, incremental backup is important.

I would suggest that you make a small example project and play around with exporting things to VCS. Make some notes on what you need to put in the commit messages. You’ll probably find a work flow that meets your individual needs.