Greg Stein of Collabnet was at Apple today giving a talk on Subversion, the version control system intended to fix what’s broken in CVS.
Subversion offers some nice features:
- Everything’s stored in a Berkeley DBM file.
- Managing labels and branches is easier than in CVS. To branch, you just
svn copythe HEAD from your tree to a new path in the repository. However, copying is just an order one operation, you’re not doubling the size of your repository when you branch. - You can use WebDAV (under Apache 2.0) or ssh to talk to repositories on the network.
- You don’t version files, but the project. So you end up with more versions of the project than you would in CVS, but it’s still easier to keep track of things.
- Labels happen the same way that you do branches, copy over to a Labels folder in the repository.
- If you’re using WebDAV, then you don’t need to create shell accounts for committers, and you can use Apache’s access control tools, and SSL for encryption.
Building Subversion was a bit of a chore, as there are several dependencies to take care of. I used DarwinPorts instead of Fink as the package manager. And since I don’t have Apache 2.0, I haven’t set up WebDAV. Still I’m looking to use it at work, if only to eliminate the need to manage user accounts and ssh keys across several users and systems.