subversion

subversion の設定をして、ソースの管理をできるようにする

takanori

インストール

インストールは vine linux の場合はパッケージをそのまま利用できるので簡単です。

# apt-get install subversion subversion-mod_dav_svn

リポジトリ作成

まずは subversion のいろいろを保存するためのリポジトリを svnadmin コマンドで作成します。

# mkdir /var/svn
# svnadmin create /var/svn/repos
# ls /var/svn/repos
README.txt  conf/  dav/  db/  format  hooks/  locks/

apache 設定

apache 2 からリポジトリにアクセスできるようにします。

まずはリポジトリの所有者を apache 2 の実行ユーザに変更します。

# chown -R apache:apache /var/svn/repos

次に、apache 2 の設定ファイル(/etc/apache2/conf/httpd.conf)に、 apache 2 から subversion にアクセスするためのモジュールを読み込むための設定を追加します。

といってもその設定は apt-get install subversion-mod_dav_svn するとインストールされる /etc/apache/conf.d/subversion.conf というファイルに書いてあります。

が、mod_dav の前に mod_dav_svn.so を読んでしまうとだめなので、 /etc/apache2/conf/httpd.conf を編集して、 Include conf.d/*.conf の行を LoadModule の下にもってきます。

LoadModule dav_svn_modul modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

次に、subversion.conf に、こんな感じで svn.takanory.net で subversion のリポジトリにアクセスできるように設定を追加します。:

    <VirtualHost *>
      ServerName svn.takanory.net
      <Location>
        DAV svn
        SVNPath /var/svn/repos
      </Location>
    </VirtualHost>

その後 apache 2 に設定を読み込ませます。

# /etc/init.d/apache2 configtest
Syntax OK
# /etc/init.d/apache2 reload

とりあえずここまでで http://svn.takanory.net/ にアクセスして、リポジトリが参照できることを確認しました。

とりあえず import

とりあえず ATGoogleMaps のソースコードを管理するためのディレクトリを作成して、インポートしてみます。

ついでに subversion の練習がてらタグとやらも打ってみます。

% svn mkdir http://svn.takanory.net/ATGoogleMaps -m "ATGoogleMaps project"
% svn mkdir http://svn.takanory.net/ATGoogleMaps/trunk -m "create trunk"
% svn mkdir http://svn.takanory.net/ATGoogleMaps/tags -m "create tags"
% svn mkdir http://svn.takanory.net/ATGoogleMaps/branches -m "create branches"
% svn import http://svn.takanory.net/ATGoogleMaps/trunk -m "import ATGoogleMaps"
% svn copy -r 5 http://svn.takanory.net/ATGoogleMaps/trunk \
  http://svn.takanory.net/ATGoogleMaps/tags/0.3.1 -m "first alpha release"

すると、ちゃんと http://svn.takanory.net/ATGoogleMaps/ にアクセスすると branches, tags, trunk があって、tags の下に 0.3.1 がありました。

認証設定

このままだと誰でも書き込みとかできちゃうので、認証の設定をします。

/etc/apache2/conf/httpd.conf を編集して、こんな感じで AuthType 移行の記述を追加します。:

    <VirtualHost *>
      ServerName svn.takanory.net
      <Location />
        DAV svn
        SVNPath /var/svn/repos

        AuthType Basic
        AuthName "svn.takanory.net subversion repository"
        AuthUserFile /etc/apache2/dav_svn.passwd
        <LimitExcept GET PROPFIND OPTIONS REPORT>
          Require valid-user
        </LimitExcept>
      </Location>
    </VirtualHost>

htpasswd2 コマンドを使ってパスワードファイルを作成します。

htpasswd2 -c /etc/apache2/dav_svn.passwd hogehoge
New password: XXXXXXXX
Re-type new password: XXXXXXXX
Adding password for user hogehoge

再度 apache 2 に設定を読み込ませます。

# /etc/init.d/apache2 configtest
Syntax OK
# /etc/init.d/apache2 reload

その後、ためしにチェックアウトしたファイルを変更して commit しようとしたら、ちゃんとユーザ名とパスワードを聞かれるようになりました。

よし、ちゃんと使えそうだ。

おまけ

SVN ― 清水川Web みたいに plone のサイトから svn が見やすそうだなぁ、いいなぁと思いました。

調べてみるとここで使われているプロダクトは PloneSVNView というもののようです。

もう一つ Plone SVN access というものもあるみたいです。

tar でも出力できるので、Plone SVN access の方が好みかな?という気もしますが、まぁおいおい使ってみるかも知れません。