本节向大家简单介绍一下利用cvs2svn和svn-importer将vcs项目转成svn内容,在学习svn的过程中你可能会遇到此类的问题,本节就简单描述一下,欢迎大家一起来学习。
公司将svn架设起来了.现在需要将所有的代码,文档统一通过svn管理起来.(公司的项目比较多.有的项目组是单独.所以使用版本管理的工具很多.有的用cvs,svn,vss等等.但是主要的是cvs和svn).通过投票表决.决定统一使用svn.
作为技术组.要提供技术支持,遇到的问题是各个项目组将原来使用cvs的项目转成svn.当然最主要的是要保存以前的版本.
任务下达后.google后.发现将cvs转成svn的有2个工具.一个是svn-importer.两外一个是.cvs2svn.
先说svn-importer.到官方网站上.介绍还是不错的.可以转换cvs,vss等等了.正好满足现在需要.于是决定使用svn-importer(http://www.polarion.org/index.php?page=overview&project=svnimporter)
网上的介绍也是很多.大家可以去google几个.我主要参照http://www.blogjava.net/yongbing/archive/2007/03/04/101761.html上面的配置一切都很顺利.配置成功.转换过程也是比较痛苦的.我等了几个晚上.终于将一个转换成功.于是兴奋的查看转换的成果.
结果..出现了和他们一样的问题.==>乱码.使用小乌龟的svn的客户端不能查看到乱码的版本库.(问题很简单.可能是乱码了路径就发生变化了.总之是无法访问了..~~~~(>_<)~~~~).
但是通过浏览器可以查看.于是打算使用浏览器的方式...经过多方查找找到了一个叫"SVNProtocolHandler"的svn的浏览器插件(http://tortoisesvn.net/SVNProtocolHandler).上面介绍是可以看到svn的版本.使用后.ie死掉.试验了几次后无果.彻底的放弃.
总结:放弃svn-importer的主要原因有2个.***个是转换后的乱码,就算是浏览器的svn插件可以使用.但是功能和svn使用的使用习惯也会将SVNProtocolHandlerpass掉...虽然我可以通过svn的插件将代码checkout.然后修改乱码的地方然后在传上去.这个真的很费劲,费时.这也是第二个原因.因为svn-importer本身的转换速度就是很慢.我还要做这些善后的工作.很慢.麻烦.
于是使用cvs2svn
同样google.发现好多人也是存在着转换后乱码的问题.但是好在cvs2svn支持encoding..心想.好多编码格式.总有一款适合我吧.呵呵.
参照http://bbs.iusesvn.com/thread-245-1-1.html配置.
***步.下载:python..我直接下载了python2.6(个人觉得高版本对低版本有兼容吧.rails好像没有)
第二步.下载:cvs2svn.我下载的是cvs2svn2.1.1
第三步.下载:UnxUtils.zip..这个下载的时候有些麻烦.因为习惯了使用firefox浏览器.下载也是用ff.结果下载了几次都是错误.还以为下载地址不可用呢.后来使用ie.成功下载.但是事后证明下载的那个UnxUtils.zip版本有点低.又下载了UnxUpdates.zip(UnxUtils.zip的升级包吧.).使用==>ok
第四步.下载:rcs57pc1.zip没啥问题
第五步.改下的都下了.该配的都配了.就查使用命令行了.
于是cmd后转到cvs2svn目录下.执行上面给的一句话C:\Python\pythoncvs2svn–sd:\svn\repository\project1\project1
执行到***.出现错误.说要加入--encoding或者--fallback-encoding(这点英文还可以).
让加咱就加.先加--fallback-encoding失败.说是一个包下的路径字符集好像不对.后来使用--encoding=gbk成功(当然这都是我多次试验后的成功啊..~~~~(>_<)~~~~..失败还真是成功他亲妈啊..实践是检验真理的唯一一条道啊.)
当然试验的过程很痛苦的...主要还是参看http://cvs2svn.tigris.org/cvs2svn.html在***给出了一些转换的命令行.希望大家都利用cvs2svn和svn-importer将vcs项目转成svn转换成功。
【编辑推荐】