基本上步驟還真的是...很簡單。
目前我先在Ubuntu上試驗,想說先搞定之後,再到 Windows server 上試試看。
首先得安裝cvs2svn:
#sudo apt-get install cvs2svn
又,因為 Windows 上用的是CVSNT,我再安裝了CVSNT(是的,Ubuntu有包進去):
#sudo apt-get install cvsnt
接著把 Windows 上的 CVS Repository (除專案目錄之外,CVSROOT目錄也要!這是我踩到的第一個雷,如果你是整個搬,就不會有這困擾。)複製到 Linux 機上的 /work/cvs 放著,然後切換到該目錄下之後,輸入:
#cvs2svn -v -s /svn/my_new_project my_project
- -v 表示 verbose
- -s 指定 svn repository 位置,這邊不需要特別先執行 svnadmin create 去建立,cvs2svn會自動建,如果你已經有一份建好的,那麼你得加上 --existing-svnrepos
- 最後是 cvs repository 位置
cvs2svn就開始跑啦~
過沒多久,cvs2svn告訴我:
ERROR: The command '['co', '-q', '-x,v', '-p1.1', '-kk', 'my_project/aaa/bbb/si_template,v']' failed with exit status: 1
and the following output:
co: my_project/aaa/bbb/si_template,v:28: unknown character `_'
co aborted
這個問題卡了我很久,我找不到原因。後來找到這篇討論串:error encountered with co: unknown character '_',最後解法是使用 --use-cvs,也就是不要用 rcs 指令去處理 CVS repository,改用 cvs 指令去處理。
用了這參數以後,原本以為這下就都搞定了,但天不從人願,cvs2svn告訴我另外一個噩耗:
ERROR: The command '['cvs', '-q', '-R', 'co', '-r1.1', '-p', '-kk', 'my_project/my_project.mak']' failed with exit status: 1
and the following output:
cvs [checkout aborted]: Cannot check out files into the repository itself
這問題又再次卡了我很久,我甚至去 trace cvs2svn 的 code...後來發現這完全是因為我的愚蠢所造成...反覆閱讀CVS--Concurrent Versions System - Troubleshooting之後,我終於知道原因,原來我不可以在 /work/cvs 下執行cvs2svn!
於是我切到 /work,然後再執行一次就行了。最後指令如下:
cvs2svn --use-cvs -v -s /svn/my_new_project /work/cvs/my_project
參考資料:
後來整個弄完以後又發現的另外一份參考資料~冏:
沒有留言:
張貼留言