普通にSubversionを設定するだけなら簡単ですが、Rootを持っていないサーバに対して設置して貰う場合は依頼内容を明確にしないといけないのでそのメモ。
○前提条件
- Apacheと連携してhttp://でアクセスできるようにする
- 1個の設定で複数のレポジトリを管理できるように
- Apacheのユーザーはnobodyで動いている
- SVNのデータ置き場は/data/svn
- BASIC認証をする
- 特定のディレクトリproj1/document は自動管理をする。
○Apacheの設定
<Location /svn> DAV svn SVNParentPath /data/svn SVNListParentPath on AuthType Basic AuthName "tamtam private repository" AuthUserFile /etc/svn-auth-file Require valid-user </Location>
<Location /svn/proj1/document> SVNAutoversioning on </Location>
HTTPSのみ受け付けるようにするには、以下の記述を追加する。
Require SSL connection for password protection. SSLRequireSSL
○レポジトリを作成する
svnadmin create /data/svn/proj1 chmod -R nobody:nobody /data/svn/proj1
○コミットメールの設定
コミットメールはhookディレクトリにpost-commitというファイルを作成します。
検索するとRubyを使ってメールを送信しているものが多いですが、会社のサーバには標準インストールされていないのでPERLで書いてみます。
これは別の記事に書こう。