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 編輯 ]