Versioning Your Source Files

Food for thought:

After being on this board for several years, and seeing many issues arise of people losing audio, images, links, etc., I thought I might add a bit of wisdom I have been practicing for many years. One simple word that can keep you from having a major course meltdown: Version.

When working in any tool that you have spent many hours or even days on creating an application, course, interaction, interface, etc., saving and revving up to a new version is warranted.

I know that many tools now include an auto-save feature, but this only saves the current content into the same file you are working in. Doing a "Save-as" to a new version, before starting for the day, during the course of the day, and ALWAYS before publishing, can save you many headaches and possibly repair bills on desk items

At the end of a course, I might be working on "CourseName_V60" but I know it's all there and have less issues because of this. I won't actually have 60 versions saved as I will delete older versions (keep at least 5) as I increment the revision number.

I look forward to hear how others approach this concept and what your thoughts are on versioning. (Why isn't that a word yet?)


1 Reply
Steve Flowers

I think versioning is a word It is in my vocabulary anyway. I've been working in source control systems for several years. SVN and GIT tend to be a little too technical for most folks and aren't the best fit for consolidated source files like .story but they can be lifesavers. For the past few years I've been working production source directly from a Dropbox folder. This provides the convenience of a single file save with a versioning save at the server. If I "oops" it, I can easily go into Dropbox's administration panel and roll back to a previous save.

Along with this, working on a component in smaller individual chunks is another great way to protect increments of work (along with a versioning practice.) Once you've finished a smaller piece, it's nice to file it away as finished and assemble it into the larger structure when everything is good to go. Variables and links can cause problems with this technique - just something to keep in mind.