We've been hearing a lot of open source projects moving over to subversion in recent months. Projects like KDE and Wine have taken the leap and left CVS for good in exchange for the promise of Subversion.
The promise of ...
- atomic commits
- versioning of directories
- versioning in spite of renaming
- familiar workflow
- stellar Graphical User Interface (TortoiseSVN)
It will not require a great deal of effort for users to move to subversion because workflow and syntax are almost identical to CVS.
In addition to the compelling reasons already mentioned, using subversion repositories will also give us a choice to move to distributed version control using SVK (http://svk.elixus.org) if the need arises and if developers prefer to do so.
Subversion is also easy to extend thanks to hook scripts where administrators can specify scripts to execute on specific events. For instance a post-commit hook script can run to send email notification or even update the bug tracker right after a commit.
Keeping our repository up to date with OpenACS CVS will be a challenge. We are looking at a python script - Tailor.py (http://nautilus.homeip.net/~lele/projects/tailor/) to help us keep in sync. It will automatically retrieve the latest commits from OpenACS and commit them to a vendor branch in the Solution Grove repository where developers can pick which revisions can be merged to their respective projects. In addition, Tailor.py will also help us to contribute work back to OpenACS CVS direct from our subversion repository.