http://martinfowler.com/bliki/Subversion.html

2005/3/16

(新しい本へのリンクを追加した)

Subversionは新しいオープンソースのバージョン管理システムだ——つまり、CVSの後継ってわけだ。 Subversionでは、CVSの大きな問題が修正されており、アトミックなコミットやファイル、ディレクトリのリネームが可能となっている。 私も数ヶ月使ってきたが、動作が非常に安定している。

同僚のMike Masonが『Pragmatic Programmer Book on Subversion』を執筆した。 詳細な本はオンラインで読めるが、 Mikeの本はSubversionの優れた入門書となっている。 できるだけ彼の本を買ってあげてくださいね。彼に昇給を与えなくて済みますからw。

私のSubversionの主な用途は、MultipleDesktopsの操作である。 作業ファイルのすべてをSubversionに入れており、 どのマシンもすべて同期するように、アップデートとコミットを行っている。

これは同僚たちとしゃべったことだが、 Subversion(SVN)は、どんな商用ツールよりも優れているのではないだろうか(Perforceを除いてだが)。 他のツールを使っているのであれば、すぐに乗り換えを考えたほうがよいだろう。 現時点でのSubversionの大きな問題点は、クライアント ツールのプラグインがないという点だ。 コマンドラインだと非常にうまく動く。 Windows上だと、Tortoise SVNがいい感じだ。 しかし、EclipseやIntelliJとの統合はまだまだである。

すでにバージョン管理を使っている人もいるが、 バージョン管理は今後、より広く使われていくようになるんじゃないかと思う。 ソフトウェア開発者以外はまだあまりバージョン管理を使っていない。 まだソフトウェア開発者しか知らないことかもしれないが、 バージョン管理はコラボレーションのためのグレートなメカニズムである。 バージョン管理があるからこそ、複数人の人間がひとつのソフトウェアシステムに一緒になって取り組むことができる。 バージョン管理が広く使われることのメリットは何だろうか? ユーザーの使っているアプリケーションの多くは、diffやmergeといった機能が貧弱である。 アプリケーションがバージョン管理の機能を付けたら、 もっと面白いことになるんじゃないだろうか。 安定した、使い勝手の良い、オープンソースのツールが、バージョン管理を広く普及してくれることを願っている——つまり、もうディスクスペースが足りないなんてことはないんだ。


2004/9/7

長年、CVSを使って作業ディレクトリのバックアップを行ってきた。 今は複数のデスクトップ環境を使っているが、 ソース管理システムを使って、これらすべての環境を同期させることが出来ることに気が付いた。 数ヶ月前、レポジトリを subverted したんだが、 これがもうめちゃくちゃウマくいってる。移行して良かった。ハッピー。 シングルユーザーで利用してるもんだから、 コミット衝突の回避みたいな恩恵はまったく受けてないんだけど、 ファイルやディレクトリを履歴を失わずに移動したりコピーしたりできるのがイイ! バイナリだって気にせず使えるのも嬉しいね。

svnクライアントは今のところまだあまり存在してない。 しかし、それは一時的な問題だ。 私はWindows上のコマンドラインとtortoiseでやってるが、 まあなんとかできとるよ。

いちばん悩んだのは、レポジトリを単一にするか複数にするかだった。 私の関わるプロジェクトはすべて独立しているため、 別々のレポジトリを使ったほうがいいように思っていた。 だが、同僚の Mike Mason (subversionに詳しい) が レポジトリは単一ですよ!と言うので、そうした。 やっぱ単一ですよ!