小石頭
          Excellence in any department can be attained only by the labor of a lifetime; it is not to be purchased at a lesser price.
          posts - 91,comments - 22,trackbacks - 0
          用 SVN Importer 實現 CSVNT 到 SVN 的轉換

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



            搜索更多相關主題的帖子: svn importer

            ?引用 ?報告回復頂部
            shaohao
            初中生
            Rank: 2



            UID 1366
            精華 2
            積分 147
            帖子 17
            威望 49
            金錢 98
            推廣積分 0
            閱讀權限 20
            注冊 2007-1-25
            狀態 離線
            發表于 2007-1-26 10:42? 資料文集短消息?
            暈,今天早上轉了個大工程,CVSNT倉庫內有中文文件名的word文檔。發現SVN Importer對中文文件名支持還是不夠好,有些能轉,有些轉換后文件名內有"?",導致客戶端無法導出。
            解決辦法:瀏覽轉換后的SVN版本庫。記錄下所有帶"?"字符的文件名。然后在CVSNT上把對應的文件checkout后刪除。倉庫轉換完成后再把這些文件導入即可。
            posted on 2007-03-04 17:13 小石頭 閱讀(1812) 評論(1)  編輯  收藏 所屬分類: Subversion

            FeedBack:
            # re: 用 SVN Importer 實現 CSVNT 到 SVN 的轉換
            2008-06-16 18:18 | tedeyang
            我今天也遇到這里的亂碼問題。慘的事,連cvs目錄都有中文的!甚至模塊名稱也是中文的。
            現在有沒有更好的解決辦法?
            看起來此工具已經停止開發很久,這個bug只能自己改了
              回復  更多評論
              
            主站蜘蛛池模板: 广昌县| 贞丰县| 安徽省| 合江县| 平阳县| 长治市| 丽水市| 南郑县| 肇东市| 珠海市| 清涧县| 恭城| 斗六市| 灌南县| 资兴市| 金寨县| 葫芦岛市| 汤阴县| 无为县| 杭锦后旗| 卓资县| 朝阳县| 平乡县| 米易县| 哈尔滨市| 鄂托克前旗| 军事| 金堂县| 永修县| 黎平县| 扎鲁特旗| 囊谦县| 邵武市| 金堂县| 广河县| 青田县| 禹城市| 渑池县| 涟源市| 临颍县| 威海市|