To convert TeamForge repositories from CVS to Subversion, use the ctf-cvs2svn.py script.
-
Make sure Subversion is enabled on the TeamForge site.
-
Do a pre-flight scan of the RCS files.
- sudo RUNTIME_DIR/scripts/cvs2svn.py -p 1:2 --dumpfile /dev/null CVS_REPOSITORY_BASE/<cvs_repository>
-
Convert the CVS data into a Subversion dump file.
- sudo RUNTIME_DIR/scripts/cvs2svn.py --dumpfile=/path/to/final/dumpfile CVS_REPOSITORY_BASE/<cvs_repository>
If you are converting large repositories, you may encounter a memory error. If that happens, pass the --use-rcs option to the this command as follows:
- sudo RUNTIME_DIR/scripts/cvs2svn.py --dumpfile=/path/to/final/dumpfile --use-rcs CVS_REPOSITORY_BASE/<cvs_repository>
Note: Like --use-rcs, there are various other options you can pass to cvs2svn.py as appropriate for the CVS repository you're converting.
-
Load the dump file and convert the project.
- sudo RUNTIME_DIR/scripts/ctf-cvs2svn.py --cvs-integration-name=<cvs_integration_name> --svn-integration-name=<svn_integration_name> --cvs-repository-name=<cvs_repository_name> --dumpfile=/path/to/dumpfile
When there is already a Subversion repository with the same name as the CVS repository, provide a Subversion repository
name explicitly using the --svn-repository-name option.
- sudo RUNTIME_DIR/scripts/ctf-cvs2svn.py --cvs-integration-name=<cvs_integration_name> --svn-integration-name=<svn_integration_name> --cvs-repository-name=<cvs_repository_name> --dumpfile=/path/to/dumpfile --svn-repository-name=<svn_repository_name>
Note:
- If the CVS repository has spaces, you must enclose it within quotes while running the script.
- Every time you convert a repository, you need to restart the TeamForge site after the conversion.
- In the case of an advanced mode TeamForge installation where SCM resides on a separate box, you need to add the <scm_host_ip> entry in the pg_hba.conf file of the TeamForge database.