CVS轉Subversion

終於要開始將CVS轉換到Subversion了。原本想使用網站上建議的轉換工具,發現這些工具操作的CVS和Subversion必須在同一部主機上,而且必須有Python或Perl的執行環境;由於是兩部主機,且一部在台北一部在高雄,只能放棄這些工具。最後的決議是:盡量保留檔案的修改歷史,至於log message則無法轉換過來,真的需要時就回CVS查詢吧。

為了方便操作,寫了下列批次檔來簡化這些雷同的簽出、拷貝、匯入等工作:

cvs2svn.bat
if "%1"=="" goto ERROR
set SVN="d:svn-win32-1.2.3binsvn.exe"
set CVS="c:program fileswincvs1.3cvsntcvs.exe"
set APR_ICONV_PATH=d:svn-win32-1.2.3iconv
rem %CVS% -d :pserver:your_name@CVS_SERVER:/repository export -r V1-00-00 -d d:svnsource_wc -- source
rem 把CVS的某個版本寫出到某個local目錄
%CVS% -d :pserver:your_name@CVS_SERVER:/repository export -r %1 -d d:svnsource_%1 -- source
d:
cd svnsource_wc
rem 把某版本檔案內容拷貝到source_wc, 再把source_wc commit至SVN
xcopy d:svnsource_%1  svnsource_wc /s/y
rem 原有但被異動的檔案預設在commit時會重傳,但新加的檔案必須指定add才會被加入
%SVN% add com --force
%SVN% commit com --message "import from CVS %1"
goto END
:ERROR
echo Usage: cvs2ftp  tagName
:END

用這樣的格式把CVS上的某個tag存到本地端,再複製給Subversion的Working copy,再Commit回Subversion:

cvs2svn  V1-00-00

##

您可能也會有興趣的類似文章

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,樂於分享所知所學。

您可能也會喜歡…

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *