目次
Subversion リポジトリはfile:///
方式でリポジトリのある
同じマシン上で実行されている複数のクライアントから同時にアクセスすること
ができます。しかし典型的なSubversion の設定はオフィス全体—あるいは
全世界にあるコンピュータ上のクライアントからアクセスされる一台のサーバ上
で行います。
この章ではリモートクライアントを使ってホストマシンの外部にさらされる 形のSubversionリポジトリの作り方についての説明です。ここでは現在 Subversion で利用することのできるサーバの仕組みを説明し、その設定方法と 利用方法について説明します。この章を読んだ後であればどのタイプのネットワーク 設定が自分のニーズとって正しいものであるかを決め、どうやれば自分のホスト コンピュータ上でその設定が有効になるかについて理解できるはずです。
Subversion は抽象的なネットワーク層の設計を含んでいます。これはリポジトリ に対してどのようなタイプのサーバプロセスからもアクセスできるようにプログラムを 作ることができ、クライアントの「リポジトリアクセス」API を使えば、プログラマは それに関連したネットワークプロトコルで通信することのできるプラグインを書くこと ができる、ということを意味します。理論的には Subversion は無数のネットワーク 実装が可能なはずです。ただしこれを書いている現時点では実際には二つの サーバがあるだけです。
Apache は非常に有名なウェブサーバです; mod_dav_svnモジュール を使えば Apache はリポジトリにアクセスすることができ、WebDAV/DeltaV プロトコル 経由でクライアントにもリポジトリを利用させることができます。これは HTTP の 拡張の一つです。もう一つの方法は svnserveです: これは 非常に小さい、スタンドアロンのサーバプログラムでクライアントとの間で独自の プロトコルを使って通信します。Table 6-1 に二つのサーバの比較をのせまし た。
Subversion はオープンソースプロジェクトの性質上、どのようなタイプのサーバ も「最重要なもの」であるとか、「公式のもの」 である として勧めたりすることはありません。またどのようなネットワーク実装についても 副次的な価値しかないものとして扱うこともありません; それぞれのサーバは それぞれの長所と短所があります。実際、複数の異なるサーバを並行して動作させ、 それぞれの方法でリポジトリにアクセスし、お互いの邪魔をすることがないように 設定できます。(「複数リポジトリアクセス方法のサポート」 を見てください)。 表6.1「ネットワークサーバの比較」 には、二つの利用可能な Subversion サーバの簡単な説明と比較があります— 管理者は、自分とそのユーザにとって最良の動作をする構成を自由に選ぶ ことができます。
表6.1 ネットワークサーバの比較
機能 | Apache + mod_dav_svn | svnserve |
---|---|---|
認証オプション | HTTP(S) 基本認証, X.509 認証, LDAP, NTLM, その他 Apache httpd で利用可能な方法 | CRAM-MD5 または SSH |
ユーザアカウントオプション | 固有の 'users' ファイル | 固有の 'users' ファイルまたは既存のシステム (SSH) アカウント |
認可のオプション | 自由な読み書きアクセス、あるいはディレクトリごとの 読み書き制御 | 自由な読み書きアクセス、あるいはフックスクリプトに よるディレクトリごとの書き込み(読み込みは不可)アクセス制御 |
暗号化 | オプションのSSLを経由することで | オプションでSSH トンネルを利用することで |
相互運用性 | 部分的に他の WebDAVクライアントからも利用可能 | 相互運用不能 |
ウェブによる参照 | 制限された組み込みサポート機能、あるいは ViewVC のような サードパーティーのツール経由 | ViewVC のようなサードパーティーツール経由 |
スピード | やや遅い | やや速い |
初期設定 | やや複雑 | かなり簡単 |