Apache 2 + mod_dav_svnでSubversionを試してみた

一人で完結する作業が多いので、どれが最新だったとか、どのくらいの時期に使っていたとかはある程度把握できるのですが、やはり限界があったり、結局のところ自分ひとりだけではないことがあるので、バージョン管理について調べてみることにしました。

今回はCentOS5でApache2が構築済みのサーバにSubversionをインストールし、Web経由でバージョン管理を行う方法です。

Subversionのインストール

yumコマンドでSubversionとmod_dav_svnをインストールします。

yum install subversion mod_dav_svn

Subversion設定

設定方法については、バージョン管理システム構築(Subversion) – CentOSで自宅サーバー構築、またサブドメインで運用をしたかったので、Apache 2 + mod_dav_svnでsvnレポジトリをサブドメインで運用する – Post-itみたいなを参考にさせていただきました。

<VirtualHost *:80>
   ServerName svn.example.com
   <Location />
      DAV svn
      SVNListParentPath on
      SVNParentPath /var/www/svn/repos
      # 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/www/pass/.htpasswd
         Require valid-user
      </LimitExcept>
   </Location>
</VirtualHost>

.htpasswdを設定

AuthUserFileで指定した.htpasswdにBASIC認証用ユーザを登録します。追加方法はこんな感じ。

htpasswd .htpasswd new_user

Apacheの再起動

最後にApacheを再起動すれば完了です。

/etc/init.d/httpd restart

管理方法

後はTortoiseSVNや、DreamWeaver、Eclipse等でバージョン管理を行うことが出来ます。

例えば上記の設定で、「project1」というディレクトリを作り、DreamWeaver CS5で管理する場合、バージョン管理を行うサイトの設定内の「バージョンコントロール」に、以下のように設定します。

アクセス
Subversion
プロトコル
HTTP
サーバアドレス
svn.example.com
リポジトリパス
/repos/project1
サーバーポート
80
ユーザ名
BASIC認証で設定したユーザ名
パスワード
BASIC認証で設定したパスワード
自動的に差分ファイルの作成、復元も出来るので、かなりファイル管理が楽になりそうですが、まだ使いこなせなさそう…。もうちょっと試してみます。