注册 登录
思步网 返回首页

的个人空间 http://www.step365.com/?0 [收藏] [复制] [分享] [RSS]

日志

从CVS迁移到SVN

已有 1349 次阅读2008-6-9 15:14

最近想把公司原来用CVS管理的代码迁移到SVN中去。主要是因为SVN是整个版本库共享一个版本历史,比较方便完整的Checkout某个工程。而且SVN还有一些CVS所不具有的良好特性,比如支持对目录版本进行管理,支持重命名和移动等。TestAge 中国软件测试时代gL*`+pJ!h II8q
  
u[.b l:y  上网查了下,大部分人用cvs2svn来将CVS版本库迁移到SVN中。但是cvs2svn似乎要用Python来运行,我向来对这个日本人发明的脚本不感兴趣,所以希望能找到其它方案。最后发现SVN Importer。SVN Importer不仅可以进行CVS版本库到SVN版本库的迁移,而且还可以迁移PVCS、VSS、ClearCase、MKS、StarTeam等VCS(Version Control System,版本管理系统)的版本库到SVN。TestAge 中国软件测试时代u D5gg9Q!|(F2z(u

"@h8tU,r&P1L3o a  大家去Subversion主页的时候,通常都是直接去的www.subversion.org(subversion.tigris.org)。其实Subversion还有另一个主页www.subversion.com。.COM站我去得少,却没想到一进去最明显的那个位置就是SVN Importer。这个工具是用Java实现的,需要JRE来运行。而且,由于SVN Importer几乎都是使用源VCS自带的命令行工具来导出数据,所以需要安装源VCS。另外,SVN Importer向SVN导入数据的时候,用的是Subversion的svnadmin,所以还需要安装Subversion。
"d(c+? ~!NTestAge 中国软件测试时代x bbnJ.N#?5cr Q
  SVN Importer有两种方案来迁移CVS的版本库。
A,H$r D8F.p5O
7J9Lj0Rr;v#VeWjW  1. 使用SVN Importer内置的Java CVS通过pserver协议来导出数据;
W;`*zY*Z$y*^r T  2. 使用RCS直接从CVS版本库文件系统中导出数据。
U BbW&Pia4}"QTestAge 中国软件测试时代XPi}R[l7B
  数据迁移过程分三步。和其它工具类似,都是读数据、生成DUMP、导入DUMP。整个过程及参数配置都在文档里写得比较详细。文档目前只有英文的,不过目前Subversion中文站(www.subversion.org.cn)正在翻译SVN Importer的文档,相信中文文档不久就会面世。顺便打个广告——请有兴趣翻译的朋友与subversion.org.cn站长联系(http://www.subversion.org.cn/index.php?option=com_contact&Itemid=3),申请加入翻译队伍。TestAge 中国软件测试时代6GR^Sv Q
TestAge 中国软件测试时代#r6SK Q \ Q9A
  中文文档出台之前,总不能就不用SVN Importer吧,所以我就根据个人经验简单的介绍下吧。TestAge 中国软件测试时代o!b8ikJ.z.nG

t;N Ad*K)j ?  SVN Importer的安装和运行很简单。下载之后解压到某个目录即完成安装。安装目录下有一个run.bat文件。运行run.bat的时候要带2-3个参数。第一个参数是操作模式;第二个参数是配置文件;第三个参数指定一个日期,表示仅迁移这个日期之后的数据。TestAge 中国软件测试时代2n-[tcuaJ a

7douG*O`%@8W,|  SVN Importer有3种操作模式:完整、增量和列表。完整模式用于将源VCS的版本库数据全部导出;增量模式则用在第一次的完整模式之后,导出新增加的数据;列表模式只将要导出的数据显示出来,不实际导出。
s&iarh-s7{
_5M:`*ny/gP @R6z8lC  至于配置文件,在安装目录下已经有一个config.properties作为示例。使用SVN Importer的时候只需要复制一份这个文件,再稍做修改即可。
.tR b Viq+w#YTestAge 中国软件测试时代l+F` f(J E:C(Xj
  配置文件中主要分四个部分:TestAge 中国软件测试时代'D0`'_q']%PW"s
TestAge 中国软件测试时代6R w)gf2i,Z%i(u Q
  第一部分,常规配置,这里选择源版本库,设置临时目录,以及中间文件的位置等。重要的一些设置如下:TestAge 中国软件测试时代3kSQ^G0h+S/|

T;b x:I1]4D a'|6j  srcprovider=源VCS,可以是cvs、cvsrcs、pvcs、vss、cc、mks等TestAge 中国软件测试时代}q$g`!o{*Ts.f
  import_dump_into_svn=yes或no,是否在生成DUMP文件之后立即导入SVN中(选否则不导入)TestAge 中国软件测试时代/?C'OF5hj-r
  full.dump.file=完整模式时生成的DUMP文件路径TestAge 中国软件测试时代a Q2e9P4pj['cI9M4m
  incr.dump.file=增量模式时生成的DUMP文件路径TestAge 中国软件测试时代H'[E0Jl7g-x)M
  incr.history.file=历史文件路径,这个文件在第一次完整模式时生成,以后使用增量模式时需要读取其内容。TestAge 中国软件测试时代0\T,D~$zl%SH x
TestAge 中国软件测试时代K*wl.E&t}6g
  第二部分是SVN相关的设置,主要包括svnadmin的位置和版本库中的一些设置。关键设置如下:
/M5oN&i A|t m;UTestAge 中国软件测试时代7ONj`a/{F.D
  trunk_path=/trunk,主分支所在目录TestAge 中国软件测试时代-W}4[/_9T^lH
  branches_path=/branches,分支目录
)iSe&p5B.R XdT  tags_path=/tags,标签保存目录
T:xx O,}&|  svnimporter_user_name=SvnImporter,创建版本库的用户名TestAge 中国软件测试时代)@2?v#i^(?
  svnadmin.executable=svnadmin的路径TestAge 中国软件测试时代^b-Nn$iZ`^ y
  svnadmin.repository_path=产生的SVN版本库路径
2O4R)@;hI5Fx  svnadmin.parent_dir=将数据导入版本库里的哪们目录。想设置为根目录,将这个值设置为.(点号)即可;或者可以设置成工程名。trunk、branches和tags都会产生在这个目录之下。TestAge 中国软件测试时代/{Z*Ztw d7no&?

6iDey gt:E)tVe

 

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册



思步组织思步科技|思步网|火花学堂|思步文库|思步问答|思步英才|天下心
© 2007 思步网 浙ICP备10212573号-4(首次备案号:浙ICP备07035264号)|邮箱:service#step365.com(将#换成@)|服务热线:0571-28827450
在线培训课程|求职招聘|思步文库|官方微信|手机APP|思步问答|微博平台|官方QQ群|交流论坛|软件工程透析|关于我们|申请友链|
点击这里给我发消息     点击这里给我发消息
思步 step365 过程改进 CMMI中文 质量保证 质量管理 流程体系 需求跟踪矩阵 敏捷开发 Scrum 软件度量 项目评审 全员改进 流程管理 人力资源 6sigma 信息安全 ISO27001认证 IT服务管理 ISO20000认证 ISO9000认证 软件测试 SQA 配置管理 IPD 软件工程 PMP认证 PMP试题 PMBOK中文 精益研发 agile 顾问式管理培训
返回顶部