目次
「It is important not to let the perfect become the enemy of the good, even when you can agree on what perfect is. Doubly so when you can't. As unpleasant as it is to be trapped by past mistakes, you can't make any progress by being afraid of your own shadow during design.」 | ||
--Greg Hudson |
オープンソースの世界では、コンカレントバージョン管理システム (CVS) が長い間よく使われてきました。またそれは正しい選択でした。CVS はそれ自身がオープンソースソフトウェアですし、その制約のない手法や、ネットワーク機能のサポートにより、地理的にさまざまな場所に分散したプログラマでも作業内容を共有できました。これは、オープンソースの世界での共同作業のやり方に非常によく合っています。 CVS と、CVS のある意味混沌とした開発モデルは、オープンソース文化のかなめになりました。
しかし、CVS は欠点がないわけではなく、その欠点をシンプルに修正するには、大変な努力を払う必要がありました。そこで Subversion です。CVS の後継者となるべく設計され、Subversion の設計者は二つの方法で CVS ユーザのハートをつかもうとしています。一つは CVS とよく似たデザイン (と、「見栄え」) を持つオープンソースシステムを作ること、もう一つは、CVS でわかっている欠点のほとんどを解決しようとすることによって、です。その結果は、バージョン管理システムの世界に次世代の革新をもたらすものではありませんが、Subversion は確かに とても強力で使いやすく柔軟です。そして今や、新しく始められたオープンソースプロジェクトのほとんどすべてで、CVS ではなく Subversion が選択されています。
本書は Subversion バージョン管理システムのバージョン1.4 系のために書かれたものです。私たちはできるだけ完全な記述を目指しましたが、Subversion は活発で精力的な開発コミュニティーを持ち、既に今後計画されているさまざまな機能や改良点があるため、本書にあるコマンドや特殊な注意事項のいくつかは変更されるかも知れません。