By Nic Lindh on Saturday, 28 February 2004
I’ve been using CVS for my version control needs for a long time, and have sucked up the sometimes byzantine machinations CVS forces you to go through. This mostly due to the fact that CVS is The Standard. CVS is everywhere and it’s the first source code management system that gets integrated into various tools.
Another reason has been the lack of an open-source competitor that runs on Linux, Windows, and Mac OS X. Not that I’m an open-source zealot by any means, but for something like revision management, it feels really nice to know that the source is there and that the community can build on the tool. Perhaps not a completely rational thought process, but nevertheless, there it is.
Subversion recently went version 1.0 after a long gestation period, so why not check it out? It offers some great features like support for moving and renaming directories–which is such a monumental, epic pain in CVS–and efficient handling of binary files, including storing them as diffs.
There are two ways to run a Subversion server: piggybacking on Apache, or running a standalone server with access controlled through SSH. In the interest of not getting bogged down in the fun and interesting world of Apache administration on the file server, I decided to go with the standalone server.
So far things look pretty good. No nasty surprises, and Subversion seems pretty smart about deducing what is a binary file and what is not and doing the Right Thing.
One fly in the ointment is Apple’s Interface Builder, which doesn’t like the presence of write-protected files inside a NIB. To get around it, you have to manually make the .svn directory inside your NIB writable. Bit of a pain, but hopefully the elves in Cupertino are working on incorporating a fix.