自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SVN-Importer輕松實(shí)現(xiàn)CVS到SVN遷移

開發(fā) 項(xiàng)目管理
本文向大家介紹一下CVS遷移到SVN解決方案之SVN-Importer,在學(xué)習(xí)SVN的過程中你可能會遇到SVN-Importer問題,什么是SVN-Importer?通過SVN-Importer如何把CVS遷移到SVN?本文會為你一一解答。

本節(jié)和大家學(xué)習(xí)一下用SVN-Importer把CVS遷移到SVN解決方案,通過在學(xué)習(xí)SVN過程中遇到的一個實(shí)例來介紹,希望通過本節(jié)的學(xué)習(xí),大家能夠掌握用SVN-Importer把CVS遷移到SVN的方法。

最近有一個case,就是要將代碼庫從原先的cvs服務(wù)器,遷移到svn服務(wù)器。
原先使用過cvs2svn,但需要安裝Python的支持,感覺不那么方便。發(fā)現(xiàn)原來還有另一個強(qiáng)大的工具,就是SVNImporter。
SVN-Importer不但支持cvstosvn,而且還支持cvsrcs、pvcs、vss、cc、mks等轉(zhuǎn)移到svn服務(wù)器。此外,SVNImport是純java編寫的小軟件,只要你機(jī)子上有jdk,那就可以直接使用了。
SVN-Importer有兩種方案來遷移CVS的版本庫。
1.使用SVN-Importer內(nèi)置的JavaCVS通過pserver協(xié)議來導(dǎo)出數(shù)據(jù);
2.使用RCS直接從CVS版本庫文件系統(tǒng)中導(dǎo)出數(shù)據(jù)。
數(shù)據(jù)遷移過程分三步。和其它工具類似,都是讀數(shù)據(jù)、生成DUMP、導(dǎo)入DUMP。整個過程及參數(shù)配置都在文檔里寫得比較詳細(xì)。
SVN-Importer的安裝和運(yùn)行很簡單。下載之后解壓到某個目錄即完成安裝。安裝目錄下有一個run.bat文件。運(yùn)行run.bat的時候要帶2-3個參數(shù)。***個參數(shù)是操作模式;第二個參數(shù)是配置文件;第三個參數(shù)指定一個日期,表示僅遷移這個日期之后的數(shù)據(jù)。
SVN-Importer有3種操作模式:完整、增量和列表。完整模式用于將源VCS的版本庫數(shù)據(jù)全部導(dǎo)出;增量模式則用在***次的完整模式之后,導(dǎo)出新增加的數(shù)據(jù);列表模式只將要導(dǎo)出的數(shù)據(jù)顯示出來,不實(shí)際導(dǎo)出。
至于配置文件,在安裝目錄下已經(jīng)有一個config.properties作為示例。使用SVNImporter的時候只需要復(fù)制一份這個文件,再稍做修改即可。
配置文件中主要分四個部分:
***部分,常規(guī)配置,這里選擇源版本庫,設(shè)置臨時目錄,以及中間文件的位置等。重要的一些設(shè)置如下:
srcprovider=源VCS,可以是cvs、cvsrcs、pvcs、vss、cc、mks等
import_dump_into_svn=yes或no,是否在生成DUMP文件之后立即導(dǎo)入SVN中(選否則不導(dǎo)入)
full.dump.file=完整模式時生成的DUMP文件路徑
incr.dump.file=增量模式時生成的DUMP文件路徑
incr.history.file=歷史文件路徑,這個文件在***次完整模式時生成,以后使用增量模式時需要讀取其內(nèi)容。
第二部分是SVN相關(guān)的設(shè)置,主要包括svnadmin的位置和版本庫中的一些設(shè)置。關(guān)鍵設(shè)置如下:
trunk_path=/trunk,主分支所在目錄
branches_path=/branches,分支目錄
tags_path=/tags,標(biāo)簽保存目錄
svnimporter_user_name=SVN-Importer,創(chuàng)建版本庫的用戶名
svnadmin.executable=svnadmin的路徑
svnadmin.repository_path=產(chǎn)生的SVN版本庫路徑
svnadmin.parent_dir=將數(shù)據(jù)導(dǎo)入版本庫里的哪們目錄。想設(shè)置為根目錄,將這個值設(shè)置為.(點(diǎn)號)即可;或者可以設(shè)置成工程名。trunk、branches和tags都會產(chǎn)生在這個目錄之下。
第三部分是對所選擇的源VCS進(jìn)行配置,用于導(dǎo)出數(shù)據(jù)。因?yàn)楣ぷ髦兄皇菫榱诉w移CVS的數(shù)據(jù),所以只用到了導(dǎo)出CVS的兩種配置。稍后說明。
第四部分是對日志文件的一些配置。
***次是直接使用的srcprovider=cvs,通過pserver來導(dǎo)出數(shù)據(jù)。想對于cvsrcs來說,這個速度要稍慢一些,但是它不需要安裝第三方的工具,只需要使用內(nèi)置的JavaCVS就行,所以用來導(dǎo)出小項(xiàng)目還是比較好的。而且配置也比較簡單,主要就是CVSROOT中的一些配置。
cvs.class=org.polarion.svnimporter.cvsprovider.CvsProvider
cvs.username=訪問CVS版本庫的用戶名
cvs.password=上面用戶名登錄CVS版本庫時的密碼
cvs.hostname=主機(jī)地址
cvs.repository=CVSROOT目錄
cvs.modulename=要導(dǎo)出的工程(或目錄)
cvs.tempdir=存放臨時文件的目錄
用SVN-Importer把CVS遷移到SVN后來考慮到CVS里面的工程都比較大,而且可能需要直接從版本庫文件導(dǎo)出數(shù)據(jù)(不是通過客戶端去訪問CVS版本庫,而直接訪問版庫的文件),所以又嘗試了使用srcprovider=cvsrcs。這個情況下要用GNURCS來導(dǎo)出CVS數(shù)據(jù),所以需要安裝RCS(http://www.gnu.org/software/rcs/rcs.html)。
RCS目前***是5.7版,分3個包下載,分別是rcs57pc1、rcs57pc2和rcs57pc3。這3個文件包分別是編譯好的二進(jìn)制文件、文檔和源碼。其實(shí)只需要下載***個包就行了,需要用到的也只是bin目錄下的rlog和co兩個命令而已。相關(guān)配置大概有:
cvsrcs.class=org.polarion.svnimporter.cvsprovider.CvsRcsProvider
cvsrcs.repository_path=CVS版庫文件目錄
cvsrcs.rlog_command=rlog命令的路徑
cvsrcs.co_command=co命令的路徑
cvsrcs.tempdir=保存臨時文件的目錄
配置好之后,一開始每次運(yùn)行都失敗,看日志也不知所云。大概是說某個文件沒找到。于是決定手工運(yùn)行rlog.exe來試試看。
rlog.execvsroot\common\common.sln,v
結(jié)果報錯
rlog:cvsroot\common\RCS/common.sln,v:Nosuchfileordirectory
很奇怪,為什么rlog非要塞一個RCS/目錄進(jìn)去呢?后來在論壇上查到,使用cvsrcs的時候,需要設(shè)置環(huán)境變量RCSINIT=-x,v/,雖然看不明白是啥意思,不過設(shè)置了這個環(huán)境變量之后SVN-Importer跑成功了。
為了搞明白這個設(shè)置,所以只好去下載了RCS的文檔來查看。在文檔里搜索-x,v/,發(fā)現(xiàn)原來是配置RCS處理的文件后綴。未設(shè)置的情況下會去RCS子目錄中查找文件。-x是設(shè)置后綴的參數(shù),v是CVS版本庫文件的后綴,而/是分隔符,其后沒有東西表示為空。所以這個設(shè)置是兼顧,v文件和RCS/兩種情況。
***,由于CVS不能記錄目錄的更改歷史,***導(dǎo)入到SVN后,從HEAD里取出來的數(shù)據(jù)中有許多原來刪除掉的目錄和文件。感覺多冒出來的那些都應(yīng)該是些空目錄才對,搞不明白為什么還有一些刪除掉的文件也冒出來了,還不太好找規(guī)律。所以,只好先對照從CVS里Checkout出來的***版,刪除掉多余的目錄和文件之后,再Checkin到SVN中,這才算完成遷移過程。本節(jié)關(guān)于用SVN-Importer把CVS遷移到SVN解決方案介紹完畢。

 【編輯推薦】

  1. SVN配置文檔詳解
  2. Windows下SVN版本庫自動備份腳本如何實(shí)現(xiàn)
  3. 學(xué)習(xí)指導(dǎo) 如何搭建SVN服務(wù)器
  4. 專家在線指導(dǎo)如何搭建SVN服務(wù)
  5. 常用SVN目錄結(jié)構(gòu)使用的兩大方法詳解

 

責(zé)任編輯:佚名
相關(guān)推薦

2010-05-28 15:28:25

svn-importe

2010-06-02 18:29:36

搭建SVN

2010-05-28 11:09:51

SVN功能

2010-05-28 15:14:20

SVN全稱

2010-06-02 18:22:43

SVN本地設(shè)置

2010-05-27 18:31:28

SVN入門

2010-05-27 16:30:48

2010-05-28 09:47:43

SVN項(xiàng)目創(chuàng)建

2010-05-20 16:27:05

2010-06-01 19:33:53

SVN與CVS優(yōu)缺點(diǎn)

2010-05-19 16:29:12

SVN與CVS的區(qū)別

2010-05-19 16:45:26

2010-05-19 16:57:49

SVN與CVS的區(qū)別

2010-05-20 17:34:13

MYECLIPSE7.

2010-06-01 09:33:48

SVN創(chuàng)建管理項(xiàng)目

2011-07-07 10:33:57

項(xiàng)目管理

2010-05-31 14:42:14

SVN與CVS優(yōu)缺點(diǎn)

2010-05-19 15:57:38

CVS與SVN

2010-06-02 19:40:55

搭建SVN版本庫服務(wù)器

2010-05-28 10:10:49

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號