September 12, 2004

Source Control

Eric Sink has started to write a very interesting series on source/version control software. Eric works for SourceControl, a vendor of source control tools, but he's made the articles fairly tool agnositic.

The articles are worth a read, I think, especially if you're not that familar with the concepts involved with doing source control. I'll confess that I'm not up to speed on many of the concepts. Mostly because I have the impression that these tools work better when you're creating more traditional software, not websites. I could be wrong, and I'd love for someone to tell me how to do version control with a (data-driven) website.

Off the top of my head, here are my main points of confusion:

The code-upload-test cycle of web development doesn't seem to fit well with the use of one of these tools. I get the impression that the idea is to work on a local copy, get it right, then commit it to the repository. But, it is often hard to have a local development environment that matches the production server. In my case, not only is the server a very different platform from the dev. machines (AIX vs. a mix of WinXP and Macs), but there is a rather complicated database to contend with. Where does the development actually take place? Under the conditions I described, how do the developers interact with the source control system?

The second issue is the database. In my current situation, we a good number of pages rely on information from a database. Can the database schema be source controlled? What about the data? How would you commit or rollback changes?

The benefits of source control are clear to me. I just don't know how to get there without a decent amount of trouble, that is.