kanizaのブログ

コンピュータ、ソフトウェア、映画、音楽関連や家族のことなど、思いついたことを書きます。

Subversion

シゴトのメインの開発ツリーをCVSからSubversionに移行した。だいぶ前から移行しようしようと言っていて、ようやくいろんな障壁がなくなったのと、サーバ移転等の機会が重なったのだった。

数年間におよぶCVSでの開発履歴はもはやひとつの資産と言える。この履歴もSubversion化したいということで、cvs2svnを使用。これを使うと、CVSリポジトリの情報をほぼカンペキにSubversionに変換できる。CVSSubversionと違ってファイルごとの履歴になっているんだけど、cvs2svnはこれを解析して複数ファイルを同時にコミットしたやつは1コミットにまとめてくれる。MozillaのBonsaiみたいな感じですな。このへんの作り込みにはけっこう驚いた。すばらしい。ただ、変換にはけっこう時間がかかる。6000リビジョンくらいで4時間以上かかったかな。

WindowsSubversionといえば、GUIフロントエンドのTortoiseSVNが有名ですな。このTortoiseSVN、とてもよくできていて感心してしまう。いろんな場面で「できそうなこと」がちゃんとできるようになっているし、GUIの見た目もWindowsの標準的な部品をシンプルに利用していて周囲になじんでいる。妙なカスタム派手派手ボタンとかをエラそうに使っているソフトもあるけど、かえってヘボくなっているのもたくさんあるからね。

普段のプログラミングではTortoiseSVNよりもEclipseSubclipseプラグイン経由でSubversionを使うのがほとんどだろうな。リファクタリング機能でクラスを移動したときなんかもちゃんと履歴が残ってとても良い。

んー、MacでもTortoiseSVNみたいなのがあると、プログラミング系以外のバージョン管理ももっとずっと便利になるんだけどなぁ。かなりほしい。