轉載位址:http://www.blogjava.net/yongbing/archive/2007/03/04/101761.html
用 svn importer 實作 csvnt 到 svn 的轉換
。
用了一下,發現能夠完美的将 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 方式。
code:
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
版本庫。