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) をダウンロードした。
インストール
インストール自体はインストーラをたたくだけ。JavaとPythonが必要になるが、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
- CollabNet Subversion Server
事例を探している途中でこんなのもあった
CollabNet Subversion Edge 1.2.0 - Python 2.5 のレジストリ登録
レジストリに書き込まれる値に”がつけられており、あとからpythonをインストールしようとすると失敗するようだ。
念のため確認してみると 1.3.1 現在でも そのままだった。
CSVNはユーザ設定からツリーの管理、統計までUIから参照・設定できるすばらしいソフトウェア。こういう部分で躓いて使わない人が増えてしまうのはもったいないと思う。
おまけ
今回はASP.NETのお仕事だったのでVS2010 & AnkhSVNを使ったが、svn commit をしようとするとAnkhSVNが以下のエラーを吐いて落ちる。
SharpSvn.SvnRepositoryIOException:
Commit failed (details follow):
at SharpSvn.SvnClientArgs.HandleResult(SvnClientContext client,
SvnException error, Object targets)
at SharpSvn.SvnClientArgs.HandleResult(SvnClientContext client,
svn_error_t* error, Object targets)
at SharpSvn.SvnClient.Commit(ICollection`1 paths, SvnCommitArgs args,
SvnCommitResult& result)
at
Ankh.Services.PendingChanges.PendingChangeHandler.<>c__DisplayClass15.<Commi
t_CommitToRepository>b__14(Object sender, ProgressWorkerArgs e)at Ankh.ProgressRunnerService.ProgressRunner.Run(Object arg)
SharpSvn.SvnRepositoryIOException:
OPTIONS of 'https://servername/svn/repositorypath': could not
connect to server (https://servername)
どうやらAnkhSVNの設定でプロキシを設定しているとこのエラーが発生するらしい。
Vs 2010 SharpSvn.SvnRepositoryIOException
今回はイントラネット内での利用だったのでプロキシ設定をはずしてcommitし正常に動作することを確認できた。