CVS から Subversion へのリポジトリ変換

おそらく CVS ユーザが Subversion に慣れる一番重要な方法は既存の プロジェクトを新しいシステムを使って継続することです。これには 抽出した CVS リポジトリを Subversion リポジトリに単にインポート することでもある程度達成できますが、さらに徹底した方法としては データの最新の状態だけではなく、それ以前の履歴全体を旧システムから 新システムに移すことになります。これは解くのが極端に難しい問題です が、それは不分割の性質を持たない CVS データの変更からチェンジセット を求めること、ブランチについて全く別の考え方を持っている両システム 間でデータ変換すること、その他の複雑な問題があるためです。それでも 少なくとも部分的には既存の CVS リポジトリを Subversion リポジトリ に変換するためのツールがあります。

そのようなツールのひとつにcvs2svn (http://cvs2svn.tigris.org/)が ありますが、これはもともと Subversion 自身の開発メンバによって作られた Python のスクリプトです。他にはChia-liang Kaoが作ったVCP ツール (http://svn.clkao.org/revml/branches/svn-perl/) のプラグインである Subversion コンバータやLev Serebryakovの作ったRefineCVS (http://lev.serebryakov.spb.ru/refinecvs/) があります。これらのツールの完成度はさまざまで CVS リポジトリの履歴の扱い方に ついて全くことなる考え方にもとづいているかも知れません。どのツールを使う場合 でも変換結果について納得がいくまで十分な確認をしてください— ようするに この履歴を作り上げるにはかなり労力が必要になります。

知られている変換ツールへのリンクの最新情報については Subversion ウェブサイト (http://subversion.tigris.org/project_links.html) のリンクページを見てください。