CVSからSubversionへの移行
実験的に、1つのプロジェクト(Calendar)だけCVSからSubversion(以下SVN)へ移行してみました。環境はWinXP+Cygwin。
SVN本体のインストール
http://subversion.tigris.org/
から1.4.5をダウンロードしてデフォルトのままインストール。環境変数PATHに"(インストール先DIR)\bin"を設定。
リポジトリの作成
リポジトリのディレクトリは、CVSが"%CYGWIN_ROOT%/var/cvs"、SVNが"%CYGWIN_ROOT%/var/svn"。
但し、今回はcvs2svnで生成するのでこの手順はスキップ。
$ cd /var $ mkdir svn $ svnadmin create svn
リポジトリの変換
今回は全部ではなく、1つのモジュールだけにします。
変換ツールは、定番のcvs2svn。Pythonが必要。
http://cvs2svn.tigris.org/
上記ページの2.1.1をダウンロード。pythonは既にインストール済なので、解凍して適当なディレクトリに配置したら、インストールディレクトリの"cvs2svn"というファイルにパスが通るようにする。絶対指定でも多分OK。今回は一時的にCygwinの環境変数に追加しました。
オプションの意味は先頭から順に、エンコーディング、テキストファイルの改行コード?、trunkの明示、変換先SVNリポジトリのroot、変換元CVSリポジトリのroot。*1
trunkの明示は、リポジトリタイプを"single"にした時と同じ状態にするための指定(次項で説明)。これに関連して、リポジトリはCalendarモジュール専用になるようにします。
あと、変換対象はCalendarだけなんだけど、CVSROOTが無いと怒られるので一緒にコピー。CVSROOTモジュールができてしまいますが、後で消せば良いでしょう。
$ export PATH=$PATH:/opt/cvs2svn/ $ mkdir /tmp/repos_Calendar $ cp -pR /var/cvs/Calendar/* /tmp/repos_Calendar/ $ cp -pR /var/cvs/CVSROOT/ /tmp/repos_Calendar/ $ cvs2svn --encoding=SHIFT_JIS --default-eol=CRLF \ > --trunk=Calendar/trunk -s svn /tmp/repos_Calendar/
最後にファイル数と実行時間が表示されたらOK。
Eclipseのプロジェクトと同期
SVNのプラグインをインストール。Eclipseは3.3.1。下記URLの説明の通りに最低限の3種類のみインストールした。インストール完了後、Eclipse再起動。
http://eclipsewiki.net/eclipse/index.php?Subversive%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3
プロジェクトを削除してからチェックアウトし直したほうが楽だと思いますが、ここは敢えて消さずにやってみます。
CVSとの同期を切断し、メタ情報も削除。プロジェクトを選択してコンテキストメニューの"team→Share Project"を選択し、"SVN"を選んで進みます。下記URLを参照。
http://www.atmarkit.co.jp/fjava/rensai3/eclipseplgn15/eclipseplgn15_1.html
リポジトリのタイプで"single project layout"を選択すると、先ほど変換したtrunkと同期するように設定してくれます。認証のところはuser/passは空のままOKにしてしまいましたが、良いのかな。