CVSTrac's CVS repository now has support (via ScmTrac) for using Subversion as a SCM repository backend. #278 and #445 contain most of the details and discussion. Most of the code was written by Nemanja Corlija with infrastructure support by cpb.
It seems stable, functional and mostly feature complete. In terms of performance, it's still quite a bit slower than CVS. There's also some issues with how the results of "svn copy" are handled. If you're going to evaluate Subversion support, please track CVS HEAD and plan on doing a repository rescan (or even reconstruction) at some point in the near future.
In spite of these warnings, there are people actually using SvnTrac without apparent problems.
Installation and configuration works about the same as with CVS.
Installing
- DownloadCvstrac from CVS
- build CVSTrac, following the COMPILING instructions
- build SvnTrac:
make APPNAME=svntrac all
- You now have a svntrac executable. Copy to wherever you want.
Configuration
- Initialize the database:
svntrac init /path/to/repository <project>
- Start the server:
svntrac server 8008 /path/to/repository <project>
- Point your browser to http://localhost:8008/
- Log in as setup/setup and configure. As with CVSTrac, you'll need to configure the repository path and reread the repository. Note that this takes a long time (i.e. I get about 200 revisions/minute) and your browser may time out.
- You're done. Use it like any other CVSTrac installation
Notes
- As with CVS, the Subversion support does not attempt to alter the repository itself. That means you should be able to safely play around without trashing your data.
- SvnTrac checkin numbers are identical to the Subversion revisions. You'll find this very convenient.
- The Browse functionality follows Subversion practice for branching and tagging. That is, where in CVS all branches and tags are associated with a particular file, in Subversion they're separate trees. This shouldn't bother Subversion users. But it might increase the size of the underlying sqlite database quite a lot. You have 1 record in the table file with CVSTrac if you have a file foo.c with maybe 20 tags, but you will have 21 records with SvnTrac. One entry for each tag and another one for the trunk.
- SvnTrac was the logical naming choice. Unfortunately, this was also the original name of the Trac project. Don't confuse the two.
- No attempt has been made to migrate from CVS/CVSTrac to Subversion/SvnTrac. It might be possible to migrate tickets and reports, but associations between wikis, tickets and checkins could be confused unless cvs2svn gets really lucky.