We’re starting to get our heads around Subversion as we set up the modules SDK area. It’s dead simple and well documented. Interesting contrasts from CVS. I don’t mean the obvious stuff like atomic commits or repository maintenance. I mean, for example, the way tagging works. In CVS you mark a moment in time by applying a symbolic name to a set of file/version pairs. But in Subversion the individual files do not carry version numbers. Instead, versioning is applied to the entire repository, and this version number is bumped up on every commit. As a result, a tag in Subversion is simply the version number or release number at the time of the snapshot. Since worded names tend to be more memorable than numeric names, Subversion administrators typically use a place metaphor, and create tags by copying the project to a named subdirectory of tags. This is accomplished using svn copy. Another interesting contrast — tags are just a convention in SVN, and are committable unless you do some extra permission setting on the directory. On the to do list: try out merges.