Finally Broke Down and Started Using Source Control
A couple of days ago I uploaded some new files for a client onto their old server. This wouldn't have been so bad, except that the new files I uploaded onto their production server were built for ColdFusion MX 7 and they used a lot of custom code for forms and the like. The production server is running ColdFusion MX 6.1 so of course to the customer it looked like their application was broken. Of course it actually was broken, but to me it seemed like a minor annoyance. It would have been a minor annoyance, the problem was that I hadn't been using any sort of source control so I had to actually go through the files and rewrite them by hand, taking out anything that was for ColdFusion 7.
My solution was to figure out how CVS worked. I found an nice tutorial site, and began to work with it from the command line. I am somewhat spoiled in that at work I am allowed to use Visual Source Safe. While it doesn't have some of the awesome features of CVS like easy branching and client – server setup, it is really fast and easy to use. I started wondering why there was no piece of software to fill the need of a single web developer or programmer who needed to be able to roll-back versions of their code from time-to-time. I briefly looked at Subversion and it's many interfaces when I learned that Xcode comes with a version of CVS and it acts as an interface. This works really well if you are building in Java, C++ or Objective-C, but for cfml it doesn't really work. Well it does, but it would be harder to use with Dreamweaver, and writing ColdFusion without the benefits of Dreamweaver sometimes is more trouble than the $150 you would pay for it. I finally came across LinCVS, and I am thrilled with it. It is a cool, what looks to be Java, based interface for CVS that supports almost all of its features. I am far from a CVS master, but it seems friendly enough. And better yet, like my favorite OS X MySQL interface CocoaMySQL, it shows you the command line code it is using to perform tasks for you, so eventually you will have an easier time if you have to use the command line for something.
So I've finally kissed my source management nightmares goodbye, at least for now.