Subversion with Documents

February 21, 2008 · Filed Under source control · 1 Comment 

I decided to give programming-style source control a try for a project with extensive Word and Excel based documents. These documents see many drafts before they are finalized and I’ve never been quite happy with the “Save as” method. However, these are binary files, not the text files typically used with source control. You might think that would make this less efficient or useful, but that’s not true. Subversion and TortoiseSVN makes it a breeze to commit files periodically, so you are not adding much time or effort to your work flow.

With code projects, Subversion/TortoiseSVN makes the change review process extremely efficient. The TortoiseSVN Diff option loads TortoiseMerge with the working copy and the most recently committed revision version of the selected document. All of the changes between the two documents are highlighted. Both documents scroll in sync. You don’t need to search for what has changed, it’s right there for you! However,TortoiseMerge only supports text files. TortoiseDiff displays comparisons of images, but not binary documents. What about binary documents?

You can still view the differences between revisions of Word and Excel documents. When you select the TortoiseSVN Diff option for a Word document, a new unsaved document opens and the differences are displayed via the track changes feature. When you Diff an Excel file, Excel opens with a side-by-side comparision of the two revisions and the changes are identified with a red background. Both are pretty decent solutions for viewing document changes.

I used Subversion and TortoiseSVN just like I would for a code project: trunk/branches/tags structure, regular commits with comments, branching alternate version, etc. So far, I have been quite happy with the results. I plan to continue this for future projects. If you have not using some form of source or version control on your large documents, I highly recommend it.

Source Control and Coding

June 24, 2007 · Filed Under game dev, software · Comment 

I knew I would use source control right from the start. There are a couple reasons. First, it just makes sense as a best practice. It provides a good form of backup and offers a way to revert to earlier versions of code in case I get into trouble. Second, I want to be able to switch between multiple computers for development. I have a home-brew WinXP system and a Mac Book Pro laptop. The laptop is great for working outside on the deck, especially in the mornings when it’s cool. At other times, I can work in on the PC in the basement. Source control allows me to easily work from various systems and keep the code in sync.

I selected Subversion. It’s quite popular and has good clients for both platforms. The CollabNet Subversion package for Windows was a breeze to install and configure with the built in svnserve. For Windows, I’m using the Subversion client TortoiseSVN, which is a shell extension that integrates with Explorer. On the Mac, I’m using svnX.

Once the clients were connecting on both platforms, I started creating ActionScript classes based on the Technical Design document. On the Mac, I’m coding in Flash. On Windows, I’m using Notepad++. I’ve completed the skeletal structure for the classes and written some of the lighter functions. I’ve also setup a couple of XML structures to store game related data. Next comes the real fun, displaying objects on screen and controlling them.