SubversionをGentooサーバにインストールしました。

参考サイト:GentooSideさん(http://www.gside.org/Gentoo/subversion/subversion.html

上記のサイトを参考にさせていただいて、Subversionのインストールを行いました。
インストールは emerge ですんなりと完了したので、次はいよいよ設定です。

以下に、私が行った設定をメモしておきます。


ディレクトリを作成
リポジトリを作る前に、用途別にディレクトリを分けることにしました。

といった感じです。
そして、それぞれのディレクトリ以下に複数のリポジトリを作っていきます。

リポジトリの構成はいろいろ悩んだのですが、結局、プロジェクト(というか用途というか)ごとにリポジトリを分けることにしました。
管理は面倒になるかもしれないのですが、リポジトリの下に複数のプロジェクトがあると、リビジョン番号を1つ減らしても、あるプロジェクトの1つ前の段階が取得できるとは限らないという点が嫌だったからです。

たとえば、2つの別々のBlenderのシーンを同じリポジトリに含めていた場合、どちらのシーンをコミットした場合でもリポジトリのリビジョンは増えてしまいますよね。。それを避けたくて。

ということで、まずリポジトリ種類を分けるためのディレクトリを作りました。
(これ、分けなくてもよかったかな。。と今になって思っています。)

$ mkdir /var/svn/blender_scenes
$ mkdir /var/svn/py_dev         
$ mkdir /var/svn/doc


●それぞれのディレクトリの下に実際のリポジトリを作りました。
(1)blenderシーン用リポジトリ作成

$ svnadmin create --fs-type fsfs /var/svn/blender_scenes/controllers
$ svnadmin create --fs-type fsfs /var/svn/blender_scenes/hedgehog
$ svnadmin create --fs-type fsfs /var/svn/blender_scenes/original_logo
$ svnadmin create --fs-type fsfs /var/svn/blender_scenes/goriatt
$ svnadmin create --fs-type fsfs /var/svn/blender_scenes/type001
$ svnadmin create --fs-type fsfs /var/svn/blender_scenes/robo_hand

(2)パイソン開発用リポジトリ作成

$ svnadmin create --fs-type fsfs /var/svn/py_dev/exaile_plugins
$ svnadmin create --fs-type fsfs /var/svn/py_dev/timeprofile   

(3)ドキュメント用リポジトリ作成

$ svnadmin create --fs-type fsfs /var/svn/doc/tiddly


リポジトリの所有権をapacheに変更
gen-server kani # chown -R apache:apache /var/svn/*


●変更確認
所有権がちゃんとapacheになっているか確認しました。

$ ls -la /var/svn
total 20
drwxr-xr-x  5 root   root   4096 Sep 26 07:25 .
drwxr-xr-x 14 root   root   4096 Sep 25 07:58 ..
drwxr-xr-x  9 apache apache 4096 Sep 26 07:19 blender_scenes
drwxr-xr-x  3 apache apache 4096 Sep 26 07:25 doc
drwxr-xr-x  4 apache apache 4096 Sep 26 07:22 py_dev

以上でリポジトリの準備はだいたい終わったと思います。


次はapacheの設定を行いました。

●/etc/conf.d/apache2を修正して起動時にSVN, WebDAVが起動するように。
  赤字の部分を追記しました。

APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D LANGUAGE -D SSL -D SSL_DEFAULT_VHOST -D SUEXEC -D SVN -D DAV"


● mod_dav_svnの設定を行いました。
 (/etc/apache2/modules.d/47_mod_dav_svn.confを編集)


        
                LoadModule dav_svn_module       modules/mod_dav_svn.so
        

        
                DAV svn
                SVNParentPath /var/svn/blender_scenes/
                AuthType Basic
                AuthName "Blender scene repository"
                AuthUserFile /var/svn/conf/svnusers
                Require valid-user
        

        
                DAV svn
                SVNParentPath /var/svn/py_dev/
                AuthType Basic
                AuthName "Python code repository"
                AuthUserFile /var/svn/conf/svnusers
                Require valid-user
        

        
                DAV svn
                SVNParentPath /var/svn/doc/
                AuthType Basic
                AuthName "Document repository"
                AuthUserFile /var/svn/conf/svnusers
                Require valid-user
        


basic認証のパスワードファイルを作成

$ mkdir /var/svn/conf
$ chown -R apache:apache /var/svn/conf

$ htpasswd2 -c /var/svn/conf/svnusers 
New password: 
Re-type new password: 
Adding password for user 


apacheを再起動しました。

$ /etc/init.d/apache2 restart
 * Caching service dependencies ...                         [ ok ]
 * Stopping apache2 ...                                     [ ok ]
 * Starting apache2 ...                                     [ ok ]

その後で、実際にブラウザで接続し、それぞれのRepositoryのリビジョンがゼロであることが
確認できました。

次は、実際のデータをimportする作業をやろうと思います。

つづく。