目次
「If C gives you enough rope to hang yourself, think of Subversion as a sort of rope storage facility.」 —Brian W. Fitzpatrick
オープンソースの世界では、コンカレントバージョン管理システム(CVS) が長い間よく使われてきました。またそれは正しい選択でした。CVSは フリーソフトですし、その制約のないワークフローモデル と、ネットワーク機能のサポート— それは地理的に さまざまな場所に分散したプログラマに作業内容を共有させるものですが— は、オープンソースの世界での共同作業のやり方に非常によく合っています。 CVSと、CVSのある程度ルーズな開発手法モデルは、オープンソース文化のかなめになりました。
しかし、どんなツールでもそうですが、CVSも年をとりました。 Subversionは比較的新しいバージョン管理システムで、CVSの後継となるように 設計されています。設計者は二つの方法で CVSユーザのハートをつかもうとして います。CVSとよく似たデザイン(と、「見栄え」)を持ったオープンソースシステムを 作ることによって、もう一つは、CVSでわかっている欠点のほとんどを 解決しようとすることによって、です。その結果は、バージョン管理システム ソフトの世界に次世代革命をもたらすものではないかも知れませんが、Subversion は確かに とても強力で使いやすく柔軟です。
この本は Subversion バージョン管理システムのバージョン1.2系のために 書かれたものです。私たちはできるだけ完全な記述を目指しましたが、Subversion は 活発で精力的な開発コミュニティーを持ち、既に今後計画されているさまざまな機能や 改良点があるため、この本にあるコマンドや特殊な注意事項のいくつかは変更される かも知れません。
この本はデータを管理するのにSubversionを使おうとする コンピュータの知識のある人たちのために書かれています。Subversionはいろいろな オペレーティングシステム上で動きますが、一番力を入れているユーザインターフェースは コマンドラインベースのものです。それでこの本で議論したり利用するのもコマンド ラインツール((svn)が対象になります。一貫性を保つためこの 本での例は読者が Unix 風のオペレーティングシステムを利用し、Unix と Unix の コマンドラインインターフェースに比較的慣れていることを前提にしています。
しかしsvnはMicrosoft Windowsのような Unix 以外の
プラットフォームでも動かすことができます。バックスラッシュ(¥
)
をスラッシュ (/
)のかわりにパス区切り文字として利用しなくては
ならないなどの僅かな違いをのぞけば、Windows 上でこのツールを動作させた時の
入力と出力の内容は Unix のものと同一です。しかし、Windows ユーザは
Cygwin Unix エミュレータ環境下でこの本の例を実行すれば、よりよい結果を
得られるかも知れません。
ほとんどの読者はおそらくプログラマか管理者で、ソースコードの 変更内容を追う必要のある人になると思います。それが Subversionの 一番普通の使い方なので、この本の例もそういう状況を前提にしています。 ただ、Subversionはどのようなタイプの情報に対しても変更点を管理するのに 使えます。画像、音楽、データベース、ドキュメント、 などなどにも利用できます。Subversionにとっては、どんな種類のデータも、 単なるデータにすぎません。
この本は読者がいままでバージョン管理システムを一度も使ったことは ないものとして書かれていますが、CVSの利用者に対しては、Subversion への 移行を楽にするように工夫しました。しばしば補足としてCVSに触れるかも知れませんし、 特に用意した補遺では、CVSとSubversionの大部分の相違点をまとめて あります。