Hatena::ブログ(Diary)

kanonjiの日記 RSSフィード

http://kanonji.info/blog/ 2013年2月頃に移転しました。

2009-09-15

svnserv.exeをWindowsのサービスに登録して svn:// でアクセス出来るようにしたのでメモ

Subversionに外部からアクセス出来るようにするには、色々な方法があります。

その中でも、たぶん一番手軽なのが svnserv.exe を使った方法だと思います。

ただ、Basic認証なので、あまりセキュアとは言えないかもしれません。

なお、Windows用のSubversionバイナリーはいくつかの配布元があります。

オープンソースプロジェクトとしてのSubversionを支援している*1、CollabNetのバイナリが良さそうですが、ユーザー登録を求められます。

なんとなく面倒だったので、プロジェクトがリリースしてるバイナリを使いました。

subversion: Content

手順

リポジトリは作成済みなところからです。

sc.exe create svnserve binpath= "C:\Program Files\Subversion\bin\svnserve.exe --service --root C:\svnrepos" displayname= "Subversion" depend= tcpip start= auto

[SC] CreateService SUCCESS

sc.exe description svnserve "Subversion server (svnserve)"

[SC] ChangeServiceConfig2 SUCCESS

リポジトリの設定を変更し、Idとパスワードを設定する。

リポジトリを構成するファイルの中に、confディレクトリがあり、その中に設定ファイルがあります。

ここも色々な設定が出来ますが、取り急ぎなので最低限のものだけです。

  • C:\svnrepos\conf\svnserve.conf

[general]

anon-access = none

auth-access = write

password-db = passwd

  • C:\svnrepos\conf\passwd

foo = passwordAsPlainText

これで foo というユーザーが passwordAsPlainText というパスワードで、リポジトリにアクセスできます。

サービスを開始する

ファイル名を指定して実行 から services.msc を開きます。

Subversionというサービスがあるので、開始します。

設定は自動になっているので、次にWindowsが起動した際は、一緒に起動するはずです。


これでリポジトリにアクセスが出来るようになったはずです。

TortoiseSVNなどで svn://localhost にアクセスすると、Idとパスワードの入力を求められます。

もし、そのままアクセスできてしまった場合は、設定を見直してください。

ポートは 3690 を使うので、ファイアウォールやルーターの設定を変更すれば、外部からもアクセスが出来るようになります。


なお、自分の環境ではなぜか、Windowsファイアウォールが通信を検出せず、ブロックするかブロックを解除するかを聞いてきませんでした。

そのため手動で svnserv.exe を例外に設定しました。

*1:元々ここが作っているので開発元と言ってもいいです。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/kanonji/20090915/1253019999