Revision Control (Subversion?)

First and foremost I’m a software engineer. And I don’t produce anything that doesn’t immediately get a place in my Subversion repository. I understand there is the archive functionality, but it’s not the same.

So anyone already putting strategies into Subversion and have any recommendations on which files to store (what’s temporary), etc?

Thanks, Matt

1 Like

Hi Matt,

Welcome to the OptoForums.


Store the whole Archive (a zip file) created when you select File > Archive strategy (this is in PAC Control config mode). By design, it has all the files you need. We also strongly recommend you select File > Strategy options and check all three boxes there on the Archive tab, especially when you’re “done” with your latest changes. This will store the archive on the controller itself.


As a recovering software engineer myself, I agree that the archive functionality is not the same. Putting a binary file under revision control means you can’t do a “diff” between versions, you’re just using the repository as a safe place to keep that file with some comments. If you’d like a text file to store with your zip, you can (again from PAC Control config mode) highlight your control engine in the strategy tree then select Compile > Compile Control Engine Download File.

The resulting .cdf file is text, but it’s your compiled strategy. As you may know, PAC Control compiles your strategy into Forth for interpreting by the control engine. So unless your software engineering experience happens to include loads of Forth programming, it’s a bit clunky to look at.

Before compiling this file, you might want to temporarily select Configure > Full Debug. Then the resulting file will have extra commands (or “words” as they’re called in Forth) like “5 LINE.NUM” to indicate line numbers. This way, when you’re doing a “diff” between one .cdf and another, you’ll have an easier time figuring out where in your strategy something changed between different versions of that .cdf.


You mentioned your strategy in particular. Do you also have a PAC Display project? If so, you’ll want to select File > Archive Project and keep that zip file in a safe place (or three) also.

Good question!


Great answer. Thanks for being so thorough.


You’re welcome! Great question. Keep 'em coming.


Speaking of “best practices” – I’ve started another thread re: Programming Standards or Guidelines. I’d be very interested to hear what you’re using!