GAINERのソースはSourceForge.netのCVSで管理しているのですが、少し前からSubversionも使えるようになりました。当初はSF.netではCVSしか利用できませんでしたのでそもそも選択肢がなかったのですが、自分自身も含めて、開発メンバーの中に他のプロジェクトでSubversionを使っているという人が増えてきましたので、この際移行してみよう、と思い立ちました。
SF.netではmigrationというページでCVSから移行するための作業を行えるようになっているのですが、「CVSレポジトリからの移行」と「CVS tarballからの移行」は失敗してしまいました。そこで、CVSレポジトリからcvs2svnでSVN用のdumpを作り、それを取り込むという方法を試しているのですが、これまた失敗のようです。cvs2svnそのものは問題なく作業を終了してくれているようなのですが…。
cvs2svnのログはこんな感じです。全体のサイズが小さいということもあって、あっという間に終わりました(笑)。
cvs2svn Statistics:
------------------
Total CVS Files: 141
Total CVS Revisions: 321
Total Unique Tags: 23
Total Unique Branches: 0
CVS Repos Size in KB: 3992
Total SVN Commits: 113
First Revision Date: Mon Sep 5 09:10:15 2005
Last Revision Date: Tue Apr 25 01:13:16 2006
------------------
Timings:
------------------
pass 1: 1 second
pass 2: 0 seconds
pass 3: 0 seconds
pass 4: 0 seconds
pass 5: 0 seconds
pass 6: 0 seconds
pass 7: 0 seconds
pass 8: 50 seconds
total: 52 seconds
作業手順としてはこんな感じで行いました。
- SF.netが用意してくれたnighty tarballをbunzip2とtarで展開
- cvs2svnをSFTPでアップロードして展開
- svnのダンプを展開するための適当なディレクトリを作成
- cvs2svn -s ../cvsroot/でダンプを作成
この作業自体初めてですので、何か大きな勘違いをしている可能性がないわけではないのですが…。引き続き、SF.netに問い合わせてみようと思います。
(追記:2006.5.6)
SF.netのSVNに関する説明をよくよく読むと、アーカイブを作成してからmigrationしてね、ということだったので、tar + bzip2でアーカイブを作成してもう一度試してみましたが、やはり失敗しました。失敗したなら失敗したで、何かエラーメッセージを出してくれればわかりやすいのですが、単に「FAILED」としてしか表示されませんので、不親切なことこの上ありません…。
(追記:2006.5.14)
エラーメッセージが不親切なのは確かにそうなのですが、ドキュメントに書いてあることをいくつか見落としていました。大変失礼いたしました。
- cvs2svnで出力した結果をダンプする際にはsvnadmin dumpを使用する(例:svndump.dmp)
- svnadmin dumpで作成したdumpファイルはbzipやgzipで圧縮する(例:svndump.dmp.gz)
- 圧縮後のファイルは英数字のみ含むファイル名(例:svndump.gz)に変更してプロジェクトのホームディレクトリ(/home/groups/g/ga/gainer)に置く
この点をきちんと説明どおりに行ったところ、無事SVNに移行することができました。SVNに登録されている内容はウェブからも確認することができますが、それらしく表示されているようです。
コメント