从http://svnbook.red-bean.com/nightly/en/svn.forcvs.convert.html和Http://subversion.tigris.org/project_links.html得知转换的若干程序,最后选择了cvs2svn
于是到http://cvs2svn.tigris.org/下载了cvs2svn,解开
准备cvs2svn需要的东西,到http://www.python.org下载了最新python
到http://www.cs.purdue.edu/homes/trinkle/RCS/下载rcs for win,解开放在cvs2svn目录下(后发现rcs不能用,改用cvs模式代替)
cvs模式,因为我们的cvs服务器用cvsnt,直接去cvsnt安装目录copy所有文件到cvs2svn目录
到http://unxutils.sourceforge.net/下载取得sort.exe,一同放在cvs2svn目录
运行python cvs2svn --dump-only --use-cvs --encoding=gb18030 d:/cvsroot
就会生成cvs2svn-dump
可以用svn load进subversion的repo
--dump-only 使用dump file的模式,当然也可以用-s d:/svnroot直接生成svn repo(这需要svn for win的运行文件,放同一目录即可)
--use-cvs 使用cvs模式代替rcs
--encoding=gb18030 我想大部分国人都是这种编码
d:/cvsroot 我特别准备过的目录,由于我们的cvs server上不只一个项目,而且也不敢直接到服务器上弄,只需要将需要的项目的目录copy过来,并且在d:/cvsroot下建一个CVSROOT的目录骗cvs2svn即可
用cvs模式的确很慢,我们的项目一共有6k个commit,大概要花一个小时
rcs模式就直接报错了,官方也要提到会有若干兼容问题
由于使用的是cvsnt,中途会弹出cvs lock server,可以打开debug窗口看信息
附上我用的几个工具的版本:
cvs2svn-1.3.0
python-2.4.1
CVSNT 2.5.01