转载地址:http://www.blogjava.net/yongbing/archive/2007/03/04/101761.html

用 SVN Importer 实现 CSVNT 到 SVN 的转换

SVN Importer
用了一下,发现能够完美的将 CVSNT 仓库转换为 Subversion 的版本库,比那个小日本的 cvs2svn 好太多(用 cvs2svn 转换 CVSNT 仓库会破坏 word 文档,估计其他二进制文件的转换也不支持 )。

两个小工程转换成功,还有一个大工程在处理,明天看结果:)

把心得写下来共享。

先来说一下 SVN Importer 的两种转换 CVS 仓库的方式:

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

阐述操作环境:
CVSNT:2.5.03.2382
Subversion: 1.4.2
Subversion 安装路径: C:\Subversion
SVN Importer: 1.1-M8
J2RE: 1.5
CVSNT 主机:10.0.4.100
CVSNT 仓库: /dsp50
CVSNT 仓库登陆用户名: root
CVSNT 仓库登陆密码: root
CVSNT 仓库通讯协议: pserver, sserver (必须有 pserver)
SVN Import 安装路径: C:\svn-importer
导出生成的目标 Subversion 版本库路径: C:\svnroot\dsp50
注意:登陆的用户最好对仓库有完全的读写权限。

先安装J2RE,因为 SVN Importer 使用 Java 写的。
建两个临时文件夹: C:\temp\cvs和C:\temp\svn

下载 SVN Importer 解压缩到C:\svn-importer,进入,打开config.properties。
确保使用 cvs 方式。

srcprovider=cvs

Subversion 导入设置如下:

svnadmin.executable=C:/Subversion/bin/svnadmin.exe
svnadmin.repository_path=c:/svnroot/dsp50
svnadmin.parent_dir=.
svnadmin.tempdir=c:/temp/svn
svnclient.executable=C:/Subversion/bin/svn.exe
svnadmin.verbose_exec=yes

CVS 导出设置如下:

cvs.class=org.polarion.svnimporter.cvsprovider.CvsProvider
cvs.username=root
cvs.password=root
cvs.hostname=10.0.4.100
cvs.repository=/dsp50
cvs.modulename=*
cvs.tempdir=c:/temp/cvs

注意cvs.modulename=*表示导出仓库下所有模块,即导出整个仓库。

其他都不需要改,保存。

用命令提示符转到 SVN Importer 的安装目录 C:\svn-importer 运行如下指令:

run full config.properties

耐心等待,因为要通过协议登录到仓库提取数据,所以仓库较大的话会花不少时间。
运行过程没有进度提示(这是最郁闷的,我还以为是死了呢),不过会生成一个log日志文件,你可以随时参看处理情况。
根据 config.properties 文件的设置,在 SVN Importer 的安装目录下会生成了一个“file_dump_时间.txt”文件,如果文件容量不停增长,那就说明,处理正在进行,耐心等待结束吧

转出的仓库用 Subversion 客户端(如TortoiseSVN)检出后检查一下。

应该没问题了。至此,CVSNT 完美转换成 Subversion 版本库。

最新文章

  1. C# 的TCP Socket (异步方式)
  2. 使用Linux碎解二
  3. hdu----(5053)the Sum of Cube(签到题,水体)
  4. 四步轻松实现用Visio画UML类图
  5. 国内外开源与 SaaS ,团队协作平台、项目管理工具整理
  6. 在CentOS6.4中安装配置LAMP环境的详细步骤
  7. 我用过的Linux命令--虚拟机和宿主机的网络连接方式
  8. asp.net操作word的表格
  9. 711B - Chris and Magic Square 模拟
  10. 说一下Dubbo 的工作原理?注册中心挂了可以继续通信吗?
  11. 分享几个 SpringBoot 实用的小技巧
  12. 004 Spark中的local模式的配置以及测试
  13. windows下解决端口被占用的问题
  14. tensorflow_python中文手册
  15. dice 概率论 概率DP
  16. MySQL数据库查询某个库下有几张数据表
  17. chromedriver与chrome版本对应表,firefox、geckodriver
  18. 数据库操作语句类型(DQL、DML、DDL、DCL)简介
  19. vs 开发常用快捷键
  20. phpmywind调用方法大全

热门文章

  1. 解决多线程调用sql存储过程问题
  2. 试用windows Azure
  3. swift语言实战晋级-第9章 游戏实战-跑酷熊猫-9-10 移除平台与视差滚动
  4. Swift游戏实战-跑酷熊猫 13 二段跳的实现
  5. Mac 下 FlashBuilder的快捷键
  6. 批量文本读取URL获取正常访问且保留对应IP
  7. cluster集群
  8. paper 62:高斯混合模型(GMM)参数优化及实现
  9. RMAN基础知识补充
  10. 转:VS2008 vs2010中JQUERY智能提醒