読者です 読者をやめる 読者になる 読者になる

CollabNet Subversion Edgeのセットアップではまった

VSSのプロジェクトにSVNを導入することになった。

リポジトリの移行は行わず、ひとまず現在のソースだけ新たに管理し始めることになったのだが、
SVNリポジトリを立てるために使用したCollabNet Subversion Edgeのインストールが結構たいへんだったのでメモ。

ダウンロード

http://www.open.collab.net/jp/downloads/subversion/
からダウンロードする。
今回は CollabNet Subversion Edge 1.3.1 (for Windows 32 bit) をダウンロードした。

インストール

インストール自体はインストーラをたたくだけ。JavaPythonが必要になるが、pythonはインストーラーに含まれている。
(Javaは元から入っていたのでインストーラに含まれるか分からない)
Javaが事前にインストールされており、環境変数JAVA_HOMEが設定されている場合、jre6 以上でないとコンソールの起動に失敗するらしい。

セットアップ

ここからが今回のイシュー。
インストールが完了するとCollabNet Subversion Edgeのコンソールが立ち上がり、ブラウザからアクセスできるようになる。

が、ログインしてみるとSubversionが停止している。

ポートが競合しているのかと思い、コンソールの設定管理→サーバ設定→全般から
ポート番号を変更したが変化なし。

システムログをみるとmod_python.soの読み込みに失敗しているとのこと。

事例を探していたらこんなのがあった。

Help:Subversion Edge failed to load the statistics gathering libraries

どうやらインストールディレクトリ以下に読み書き権限を設定しないといけないらしい。
面倒なので今回は以下のサービスの実行アカウントをAdministratorにして対処した。

事例を探している途中でこんなのもあった

CollabNet Subversion Edge 1.2.0 - Python 2.5 のレジストリ登録

レジストリに書き込まれる値に”がつけられており、あとからpythonをインストールしようとすると失敗するようだ。

念のため確認してみると 1.3.1 現在でも そのままだった。

CSVNはユーザ設定からツリーの管理、統計までUIから参照・設定できるすばらしいソフトウェア。こういう部分で躓いて使わない人が増えてしまうのはもったいないと思う。

おまけ

今回はASP.NETのお仕事だったのでVS2010 & AnkhSVNを使ったが、svn commit をしようとするとAnkhSVNが以下のエラーを吐いて落ちる。

SharpSvn.SvnReposito​ryIOException:
Commit failed (details follow):
at SharpSvn.SvnClientAr​gs.HandleResult(SvnC​lientContext client,
SvnException error, Object targets)
at SharpSvn.SvnClientAr​gs.HandleResult(SvnC​lientContext client,
svn_error_t* error, Object targets)
at SharpSvn.SvnClient.C​ommit(ICollection`1 paths, SvnCommitArgs args,
SvnCommitResult& result)
at
Ankh.Services.Pendin​gChanges.PendingChan​geHandler.<>c_​_DisplayClass15.<​Commi
t_CommitToRepository​>b__14(Object sender, ProgressWorkerArgs e)

at Ankh.ProgressRunnerS​ervice.ProgressRunne​r.Run(Object arg)
SharpSvn.SvnReposito​ryIOException:
OPTIONS of 'https://servername/sv​n/repositorypath': could not
connect to server (https://servername)

どうやらAnkhSVNの設定でプロキシを設定しているとこのエラーが発生するらしい。
Vs 2010 SharpSvn.SvnRepositoryIOException

今回はイントラネット内での利用だったのでプロキシ設定をはずしてcommitし正常に動作することを確認できた。