Over time, I've found that I use Subversion in more and more ways. Slapping 'My Documents' into a repository was cool; but then putting my IM chat logs in a repository was even better. That let me merge chat logs from work and home and use Google Desktop at work to find chats that occurred at home. And one of my other non-conventional uses of Subversion saved me a day's work today.
We were having a problem with AQdevTeam that I posted about here. Kate from AutomatedQA actually commented here that a new version would resolve the error. I got a kick out of posting a problem to my own blog and having the company respond with the fix. I had submitted my error report to them and had not heard back. But they found my blog post, gotta love it.
Back to Subversion
In conjunction with AQdevTeam, we use the AQdevTeam Web Client to provide a means for our client sites to log in and see the list of known issues and support tickets that have come to us. However, because we don't receive tickets directly from our client sites (they must go through the support site first), the sites cannot do anything but view and search for items.
Since the web client supports lots of things that we couldn't let our users do, we had to customize the web site quite a bit. It's all template based, so this was pretty straight-forward once I got accustomed to the template conventions.
When I was first implementing the customizations, I thought that I better slap all of the web client template files into Subversion, which I promptly did. The fun twist is that the web server actually has that folder of the repository checked out, directly into the home directory of the site. So when I needed to make tweaks to the templates, I'd do so from my workstation, commit them, and then just do an SVN update on the web server. Viola! The deployment to the web server is done with a single "svn up" command.
One of the other reasons I thought it would be good to put the files into Subversion was for when I needed to upgrade the AQdevTeam Web Client. I assumed that any upgrades would overwrite my customizations. I figured that when that happened, I'd be able to compare versions of the files and restore any changes that I needed to keep.
Today, I installed the updated version of the web client, and it did exactly what I thought it would do. It simply overwrote my modified template files without asking any questions. I was able to compare versions of the files and choose which ones to revert, which ones to commit and which ones to merge by hand. The process worked out just as I hoped it would.
I'm back to my customized AQdevTeam Web Client and I didn't have to spend a day trying to remake all of the changes. And the upgrade solved our problems too. So all is good.