『入門Subversion Windows/Linux対応』サポート資料

本書 177 ページに記載されているリポジトリURLへの接続でエラーが表示されるというお問合せが数件ございます。

本件は、Subversion クライアントが proxy を通過できないために発生すると考えられます。対策の詳細につきましては、Subversionの開発元が作成するFAQに記載がございます。しかし、これは英語であるため、下記に参考日本語訳を用意させていただきました。問題解決の一助としていただければ幸いです。

なお、内容の運用につきましては、自己責任でお願い致します。


もしプロキシの背後にいたらどうなるの?

Subversion クライアントは設定によりプロキシを通り抜けることができます。最初に,どのプロキシを使用するかを指定する"servers"設定ファイルを編集します。"servers" ファイルの所在はお手元のオペレーティングシステムごとに異なります。Linux または Unix 上では "~/.subversion" ディレクトリ内にあります。Windows 上では "%APPDATA%\Subversion" ディレクトリ内にあります。("echo %APPDATA%" と実行してみてください,隠しフォルダだということに注意してください。)

"servers" ファイル内には設定すべきことを説明するコメントが書き込まれています。もし "servers" ファイルが見あたらないなら,最新の Subversion クライアントを入手して、適当なコマンドを実行してください ― これで設定ディレクトリとテンプレートファイルが生成されるはずです。

次に,プロキシサーバ自体が Subversion が利用するすべての HTTP メソッドをサポートするかどうかを確かめる必要があります。いくつかのプロキシサーバは、PROPFIND, REPORT, MERGE, MKACTIVITY, CHECKOUT などのメソッドを標準ではサポートしません。一般的に,この問題の解決には特定のプロキシソフトウェアが必要となります。たとえば Squid であれば、設定オプションは次のようになります。

   #  TAG: extension_methods
   #       Squid only knows about standardized HTTP request methods.
   #       You can add up to 20 additional "extension" methods here.
   #
   #Default:
   # none
   extension_methods REPORT MERGE MKACTIVITY CHECKOUT

(Squid 2.4以降ではPROPFINDは指定不要です。)

付加的な HTTP メソッドにプロキシの通過許可を出す方法については "What are all the HTTP methods Subversion uses?" も参照してください。

Subversion の往来をプロキシに許可させることが困難または不可能で,しかしそれでも Subversion のソースをチェックアウトしたいならば,プロキシを迂回することができるかもしれません。80 番ポートをフィルタリングしている一部のプロキシでも,81 番ポートに関しては何でもアリだったりします。このような理由から,svn.collab.net リポジトリサーバは,80 番ポートと同様に 81 番ポートでも待ち受けています。以下のコマンドをお試しください。


   svn checkout http://svn.collab.net:81/repos/svn/trunk subversion

もしかするとプロキシは通してくれるかも知れません。もう一つの方法は、多くのプロキシが通行を認める SSL 上でチェックアウトを試みることです。

   svn checkout https://svn.collab.net/repos/svn/trunk subversion

もちろん、お手元の svn クライアントが ssl サポート付でビルドされている ― Subversion の ./configure スクリプトに --with-ssl を渡すだけです ― 必要があるでしょう。https スキームがサポートされているかどうかは svn --version を実行することで調べることができます。

<この本のサポートページにもどる>    <この本の詳細紹介ページを見る>