用SVN Importer实现CSVNT到SVN的转换

来源:互联网 发布:程序流程图画图软件 编辑:程序博客网 时间:2024/05/23 13:55
用SVN Importer实现CSVNT到SVN的转换

SVN Importer简介
SVN Import是纯java编写,不但支持cvs to svn,而且还支持cvsrcs、pvcs、vss、cc、mks等转移到svn服务器。

SVN Importer有两种转换CVS仓库的方式:
(1)普通RCS直接处理 CVS 仓库:需要指定rlog.exe,co.exe或是cvs.exe的具体位置。速度快但对 CVSNT 格式的仓库支持不好(因为 CVSNT 仓库的格式可能会不同于标准的 CVS 仓库)。
(2)CVS 客户端 pserver 协议登陆:SVN Importer 内置了一个 JAVA CVS 客户端内核,通过 pserver 协议登陆到 CVSNT 仓库取出仓库内容然后导入到 Subversion 版本库中。按照这个方式跳过了直接对 CVSNT 仓库的格式的识别和处理,理论上兼容性最好。

这里只介绍第二种方式:
1.下载svnimporter
http://www.polarion.com/user/direct_register.php?dl=svnimporter
下载完后,解压缩到指定目录即svn-importer安装目录,如C:\svn-importer

2. 修改配置文件
在svn-importer安装目录下有一个config.properties配置文件,根据实际情况修改该配置文件:
(1)指定原版本库类型cvs
srcprovider=cvs

(2)修改CVS参数
cvs.class=org.polarion.svnimporter.cvsprovider.CvsProvider
cvs.username=admin
cvs.password=password
cvs.hostname=191.168.1.21
cvs.repository=/repository
cvs.modulename=*
cvs.tempdir=c:/temp/cvs
注意:
(a)cvs.modulename=*表示导出仓库下所有模块,即导出整个仓库。
(b)可以通过下面命令验证参数是否正确
cvs -d :pserver:'cvs.username':'cvs.password'@'cvs.hostname':'cvs.repository' login

(3)禁用自动导入svn
import_dump_into_svn=no

(4)不限定导出文件大小
dump.file.sizelimit.mb=0
说明:参数配置说明详细参考config.properties文件中注释

3. 导出版本库
在svn-importer安装目录下,执行如下命令:
run full config.properties
导出时会在安装目录下生成导出文件及相关日志文件

4. 导入SVN版本库
(a)创建版本库
svnadmin create d:\svn\repository\demo
(b)通过svnadmin命令将dump导入到SVN版本库
svnadmin load d:\svn\respository\demo < d:\dumps\full_dump_20111125_114730.dump
原创粉丝点击