目次
この章は Subversion book にある同章をわずかに変更したものです。Subversion book のオンライン版は 以下で読むことができます。http://svnbook.red-bean.com/ (訳注 日本語では http://subversion.bluegate.org/doc/book.html で読めます)
この章では簡単におおざっぱな Subversion の概要を説明します。バージョン管理システムが初めてなら、この章が明らかにしてくれるでしょう。一般的なバージョン管理の概念から始めて、Subversion の根底にあるアイディアを説明し、Subversion の使い方の簡単な例をお見せします。
この章の例では複数のプログラムソースコードの共有を扱いますが、Subversion はどんなファイルでも扱えるということに留意してください。コンピュータプログラマを助けるためだけのものではありません。
Subversion は情報共有の一元管理システムです。この核となるのがデータを格納する リポジトリ です。リポジトリは情報を ファイルシステムツリー (典型的なのはファイルやディレクトリの階層) の形で格納します。複数の クライアント がリポジトリに接続し、そのファイルを読み書きします。データを書き込むと他の人が情報を利用できるようになりますし、データを読み込むと他の人の情報をクライアントが受信します。
このどこが興味深いというのでしょうか? そこまでは普通のファイルサーバと同じように聞こえます。確かにリポジトリはファイルサーバの一種ですが、いつも目にするものとは違います。Subversion のリポジトリが特別なのは、そこに書き込まれたすべての変更を記憶しているということです。これはすべてのファイルに対するすべての変更と、さらにディレクトリツリー自体に対して行われたファイルやディレクトリの追加・削除・再配置といった変更も含まれています。
クライアントがリポジトリからデータを読み出すときには、普通はファイルシステムツリーの最後のバージョンだけが見えます。が、ファイルシステムの 以前の状態も閲覧することができます。 たとえばクライアントは、「先週の水曜日にこのディレクトリにはどのファイルがあったの?」、とか 「最後にこのファイルを変更したのは誰で、その人は何を変更したの?」 といった履歴に関する質問をすることができます。この手の質問はすべての バージョン管理システム のキモになるような質問です。つまりバージョン管理システムは、時間と共に修正されるデータを記録したり、修正内容を追跡したりするように設計されているのです。