小石头
Excellence in any department can be attained only by the labor of a lifetime; it is not to be purchased at a lesser price.
posts - 91,comments - 22,trackbacks - 0
用 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 版本库。

    祝好运。

    有问题的一起交流

    [ 本帖最后由 shaohao 于 2007-1-26 00:55 编辑 ]



    搜索更多相关主题的帖子: svn importer

     引用  报告回复顶部
    shaohao
    初中生
    Rank: 2



    UID 1366
    精华 2
    积分 147
    帖子 17
    威望 49
    金钱 98
    推广积分 0
    阅读权限 20
    注册 2007-1-25
    状态 离线
    发表于 2007-1-26 10:42  资料文集短消息 
    晕,今天早上转了个大工程,CVSNT仓库内有中文文件名的word文档。发现SVN Importer对中文文件名支持还是不够好,有些能转,有些转换后文件名内有"?",导致客户端无法导出。
    解决办法:浏览转换后的SVN版本库。记录下所有带"?"字符的文件名。然后在CVSNT上把对应的文件checkout后删除。仓库转换完成后再把这些文件导入即可。
    posted on 2007-03-04 17:13 小石头 阅读(1801) 评论(1)  编辑  收藏 所属分类: Subversion

    FeedBack:
    # re: 用 SVN Importer 实现 CSVNT 到 SVN 的转换
    2008-06-16 18:18 | tedeyang
    我今天也遇到这里的乱码问题。惨的事,连cvs目录都有中文的!甚至模块名称也是中文的。
    现在有没有更好的解决办法?
    看起来此工具已经停止开发很久,这个bug只能自己改了
      回复  更多评论
      

    只有注册用户登录后才能发表评论。


    网站导航: