Subversion
ソフトウェアを開発する上で重要なもののひとつにソースコードの管理があります。
チーム全員でたくさんのファイルを多いときには1日に何度も更新します。ひとつのファイルを同時に更新してしまったときにファイルを上書きして消してしまってはいけないので更新の衝突を検知出来ないといけません。しかもお客様にリリースしたバージョンはいつでもすぐ取り出せないといけないのでバージョン管理が必要です。
この手のソフトで有名なのはMicrosoftのVisual SourceSafeやCVSがあります。MSのはクライアントライセンス料がバカにならないので、僕のチームではこれまでフリーのCVSを使ってきました。
世の中の多くのオープンソースプロジェクトや、Unix系の開発では今でもCVSがかなり使われています。
しかし、CVSは古いソフトで、機能がユーザの要望に追いつかなくなってきているうえに、このまま拡張するのも難しいとう状況がありCVSの後継としてSubversionが開発されました。
存在は知っていたのですが、まだそれほど普及していないようなので様子を見ていました。しかし去年あたりからApacheのプロジェクトがどんどんSubversionに切り替え始め、それに伴ってCVSから乗り換えるプロジェクトも増えているようです。
僕のチームでもそろそろ勉強しなきゃなとインストールしてみました。
はっきりCVSの後継を開発することが目指されているので、CVSと比較されることが多いのですが、CVSに比べて次の点が優れています。
・ディレクトリもバージョニング
・複数のファイルをアトミックにコミット
・バイナリファイルの効率的なバージョン管理
特に3つ目はCVSでやるとファイルが肥大化してしまうのでいいですね。ソフトのマニュアルなど関連ドキュメントも一緒に管理してもいいかなぁと思います。
サーバとしての機能はCVSと比べてそれほど代わり映えしないのですが、Windows向けのクライアントが非常に優れています。
同じコミュニティのプロジェクトで開発されている TortoiseSVN です。Windowsのエクスプローラーに完全に統合され、単にディレクトリを参照しただけで変更の有り無し、リビジョンなど表示されます。
他のバージョンと現在の作業用コピーとの差分を比較する機能があるのですが、テキストファイルのほかにWORDの文書も(WORDの機能を使って)比較できます。デフォルトではWORDだけですが、Winmarge などと組み合わせれば(テキストに変換された上でですが)Excelなどの差分も比較できます。
すでにCVSを使っているなら、Subversionではブランチやタグは別のディレクトリにスナップショットとしてコピーを作るということを理解できればCVSからの移行はそれほど大変ではないでしょう。さらにCVS2SVNというツールでCVSリポジトリをSVNリポジトリに移行できるようです。まだ試してませんが、そのうち試そうと思います。Eclipseのプラグインもあり、EclipseのCVS機能の代わりとして利用することもできます。
Subversion本体のインストールもリポジトリの作り方も、そしてクライアント使い方も簡単ですし、ソフトウェア開発をしない人でもローカルにリポジトリを作ってOfficeドキュメントなどをバージョン管理してもとても役に立つソフトだと思います。
subversion.tigris.org