給大家?guī)?lái)一些實(shí)踐技巧,也是我在工作中遇到的實(shí)際經(jīng)驗(yàn)總結(jié),也做個(gè)備望筆錄:以前公司用CVS做版本控制管理,現(xiàn)在,公司全部改用功能強(qiáng)大、方便快捷的SVN做版本控制管理。公司用CVS受控管理的項(xiàng)目,現(xiàn)在需要全部轉(zhuǎn)成SVN控制管理。在網(wǎng)上搜索了N多資料,關(guān)于CVS庫(kù)轉(zhuǎn)換成SVN庫(kù)的說(shuō)明,有些說(shuō)明也不夠詳細(xì),不能入手操作,對(duì)于使用 CVS & SVN 陌生的同仁來(lái)說(shuō),會(huì)很困難無(wú)法解決。本人在操作過(guò)程中,也遇到一些問(wèn)題,總結(jié)之后,共享上來(lái)與各位交流學(xué)習(xí),希望對(duì)各位有幫助。
費(fèi)話不多吹了, 現(xiàn)在實(shí)踐動(dòng)手跟我一起實(shí)踐吧!
首先工具下載與安裝:
我使用的是Refincvs轉(zhuǎn)換工具,Refinecvs提供的功能也比較多,具體可以看它的幫助,但對(duì)于中文文件名的問(wèn)題,還是不能找到完美的解決辦法,哪位知道的可以告訴一聲哦,我們一起交流一下!
下載refincvs新版本:http://lev.serebryakov.spb.ru/refinecvs/
下載perl語(yǔ)言:http://downloads.activestate.com ... in32-x86-257965.msi
refinecvs是用perl語(yǔ)言寫的,各個(gè)版本需要的perl版本不一樣。安裝完perl,解壓refinecvs包可使用了。
1、生成轉(zhuǎn)換文件
打開(kāi)windows的Dos窗口,切換到refinecvs的解壓目錄,假如現(xiàn)在要把倉(cāng)庫(kù) D:CVSRepository里的項(xiàng)目 Project1 轉(zhuǎn)換成SVN倉(cāng)庫(kù)所需要的文件,需要運(yùn)行如下這條命令,生成供SVN可導(dǎo)入的文件。如P1_SVN。
refinecvs.pl -fcp gbk -lcp gbk -iv -v admin D:CVSRepositoryProject1 P1_SVN.
命令參數(shù)說(shuō)明:
-fcp:表示文件名用GBK編碼,如果文件名含有中文字符
-lcp:表示文件修改日志用GBK編碼,如果日志里有中文
-iv:忽略廠商的tag
-v:打印處理信息
admin:標(biāo)簽作者
D:CVSRepositoryProject1:需要轉(zhuǎn)換的CVS倉(cāng)庫(kù)
P1_SVN :產(chǎn)生轉(zhuǎn)換文件的文件名
在轉(zhuǎn)換過(guò)程中,會(huì)等待一些時(shí)間,請(qǐng)耐心等待,看到后提示信息如下:
--< Pass : done in 0 seconds.
=== All passes finished in 0 seconds.
說(shuō)明你的CVS倉(cāng)庫(kù)轉(zhuǎn)換成功,即在你的refinecvs文件目錄下生成一個(gè)新的轉(zhuǎn)換文件名,也是你要命名的文件,如:P1_SVN。
如果,提示信息如下所示:
Last words was:
Could not parse file EP/Res/src/ep/vo/customer/IAddressVO.java,v
Please, read about this event to avoid this error: FileError
+++ Invalid 'symbols' specification: 'rrr:'示信息如下:
說(shuō)明你的CVS倉(cāng)庫(kù)在轉(zhuǎn)換過(guò)程中,遇到了錯(cuò)誤終止,1、有可能是你的版本庫(kù)版本信息不全面,2、有可能是遇到了中文文件名,3、有可能是無(wú)法找到這樣的文件版本信息。這時(shí)你要手動(dòng)的做一些煩瑣的操作了,你的一個(gè)目錄一個(gè)目錄的進(jìn)行轉(zhuǎn)換,查找出問(wèn)題所在,直到后能順利的轉(zhuǎn)換成功,祝你好運(yùn)!
2、轉(zhuǎn)換好的文件導(dǎo)入到SVN倉(cāng)庫(kù)
首先,你得配置好要使用的SVN庫(kù),在里面創(chuàng)建需要的項(xiàng)目數(shù)據(jù)文件,如:Project1。創(chuàng)建完成之后,你可以使用SVS自帶的命令參數(shù)進(jìn)行操作了。
用svnadmin load命令把上面產(chǎn)生的文件導(dǎo)入到你的SVN倉(cāng)庫(kù)中:
命令格式如下:
svnadmin load D:SVNRepositoryProject1<P1_SVN
導(dǎo)入過(guò)程也跟轉(zhuǎn)換過(guò)程一樣,需要耐心等待一些時(shí)間。
導(dǎo)入成功,則會(huì)在倉(cāng)庫(kù)里建立trunk,tags,branches個(gè)默認(rèn)目錄,存放cvs對(duì)應(yīng)的工作區(qū),基線,分支。