省エネファイルサーバに subversion も

ちょっとアプリをつくってみようと思ったけどsubversionがなかったので構築します。
構築といってもyumで入れるだけですが。

webminから「subversion」で検索します。
「svn」で検索すると「mod_dav_svn」しか出て来ないので注意。

yum で subversion を検索

subversionを選択してインストールします。

subversion インストール完了

続いてリポジトリをつくります。

# mkdir /var/storage/00/main/svn/repos/cashcurry -p
# svnadmin create /var/storage/00/main/svn/repos/cashcurry

無事作成されました。

# ll /var/storage/00/main/svn/repos/cashcurry/
合計 24
-rw-r--r-- 1 root root  229 11月 12 11:02 README.txt
drwxr-xr-x 2 root root 4096 11月 12 11:02 conf
drwxr-sr-x 6 root root 4096 11月 12 11:02 db
-r--r--r-- 1 root root    2 11月 12 11:02 format
drwxr-xr-x 2 root root 4096 11月 12 11:02 hooks
drwxr-xr-x 2 root root 4096 11月 12 11:02 locks

でもこのままではリポジトリにアクセスできないのでちょっと設定します。
外部からのアクセスもないし一人でしか使わないのでユーザなしでもコミットできるようにします。

#vi /var/storage/00/main/svn/repos/cashcurry/conf/svnserve.conf

[general]
### These options control access to the repository for unauthenticated
### and authenticated users.  Valid values are "write", "read",
### and "none".  The sample settings below are the defaults.
# anon-access = read
anon-access = write
# auth-access = write

こんな感じに anon-access = write にしてしまいます。
では試しにwindowsからチェックアウト。

初回チェックアウト失敗

エラーです。
svnサーバを動かしてなかったから。

# chkconfig --list svnserve
svnserve        0:off   1:off   2:off   3:off   4:off   5:off   6:off
# chkconfig svnserve on
# chkconfig --list svnserve
svnserve        0:off   1:off   2:on    3:on    4:on    5:on    6:off
# service svnserve start
svnserve を起動中:                                         [  OK  ]

これで動きました。
が、これだとリポジトリのパスを指定していない。
どこで指定するんだろう?と思いながら起動スクリプトを開いてみます。

するとこんなものを発見

if [ -f /etc/sysconfig/svnserve ]; then
        . /etc/sysconfig/svnserve
fi

exec=/usr/bin/svnserve
prog=svnserve
pidfile=${PIDFILE-/var/run/svnserve.pid}
lockfile=${LOCKFILE-/var/lock/subsys/svnserve}
args="--daemon --pid-file=${pidfile} $OPTIONS"
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog

なんとなく、「/etc/sysconfig/svnserve」に「OPTIONS」を定義してあげればいいのだろうと思い適当に書いてみる。

# vi /etc/sysconfig/svnserve

OPTIONS="--root=/var/storage/00/main/svn/repos"

# service svnserve restart
svnserve を起動中:                                         [  OK  ]

そしてwindowsから開いてみる。

リポジトリが見えました

そしてチェックアウト。でもなにもないので.svnフォルダだけ。

チェックアウト完了

基本的なあの3つのフォルダを作ります。
普通にエクスプローラからフォルダをつくるだけです。

重要な3つのフォルダを作成完了

tortoiseSVNでコミットします。

作ったフォルダをコミット

コミット完了

仕事で使うのであれば、コメント必須、redmineとかのチケット番号必須な設定を入れるのですが、自宅で一人でしか使わないからやりません。面倒なので。
コメントは必ずいれる癖がついているので大丈夫。

あとはバックアップ設定をして終わりです。
前につくったrsync用のスクリプトに追記

# vi sync_storage.sh

rsync -av --delete /var/storage/00/main/svn /var/storage/00/mirror >> $log_file

コメント