Subversion設定完了

早く自分のソース管理をやりたかったので眠いけど設定。これは案外スムーズにいきました。日記を書いている途中にサーバとクライアントのインストール作業をしていたのですが、TortoiseSVNを入れて再起動を要求されてそのまま再起動してしまいましたorz


FedoraCore5+Subversion1.3.1+Apache2.20

// Apacheと連携させてWebからレポジトリを見るためのモジュール
#yum install mod_dav_svn

// この下に複数のリポジトリを作成する
#mkdir /var/svn/

// とりあえず一つ作成
#svnadmin create /var/svn/bardiche

// Apacheがリポジトリを読み込みできるようにパーミッションを変更
#chown -R apache:apache /var/svn/bardiche

// リポジトリへのアクセスを制限するためのhtpasswdを設定
// 各リポジトリの親ディレクトリに置いておけば複数のリポジトリでも
// 同じユーザでアクセスできる。わけたいときは各フォルダの中へ。
#htpasswd -cm /var/svn/.htpasswd tomoemon

// SELinuxが働いているときは他にも設定が必要


/etc/httpd/conf.d/subversion.confの設定
読み取りは誰でもOK。書き込みは許可したユーザのみ。

<Location /svn/repos/>
  DAV svn
  SVNParentPath /var/svn

  # Limit write permission to list of valid users.
  <LimitExcept GET PROPFIND OPTIONS REPORT>
     # Require SSL Connection for password protection.
     # SSLRequireSSL
     AuthType Basic
     AuthName "Authorization Realm"
     AuthUserFile /var/svn/.htpasswd
     Require valid-user
  </LimitExcept>
</Location>


読み取りも書き込みも許可したユーザのみ。

<Location /svn/repos/>
  DAV svn
  SVNParentPath /var/svn

  # Limit write permission to list of valid users.
  # Require SSL Connection for password protection.
  # SSLRequireSSL
  AuthType Basic
  AuthName "Authorization Realm"
  AuthUserFile /var/svn/.htpasswd
  Require valid-user
</Location>


SVNParentPathに各リポジトリの親ディレクトリを指定すると一つ一つのリポジトリごとにこの設定を書き換えなくても良いので楽である。一つ一つ指定する場合は

SVNPath /var/svn/bardiche

となる。Locationの/svn/repos/はブラウザからアクセスする際のアドレスのこと。SVNParentPathを指定した場合は以下のようにアドレスを指定してアクセスするとリポジトリの状況を確認できる。また、TortoiseSVNを使うときも同様のアドレス指定を行う。

http://[SERVER_NAME]/svn/repos/[リポジトリ名]/


また、SVNParentPathで設定しておくと以下のようなリポジトリを新たに作成しても、他の設定を変えることなく同様の方法でアクセスすることができる。

/var/svn/hoge
http://[SERVER_NAME]/svn/repos/hoge/


参考