someone's notebook

誰かさんの書いたジャポニカ学習帳

Subversionセットアップ

iOSアプリの開発でリポジトリが必要になったので、CentOS5.6でSubversionを入れた時のメモ。


今時はGitなんだろうけど、XCodeからの用途だと使い勝手が悪そうだったのと
WindowsからTortoiseSVNでも使いたかったのでSubversionにした。


あとXCode4からはSCMはGitとSubversionの2択だけど、
開発用のMacの1台はまだXCode3でSCMはCVSSubversion、Perforceだったので。


インストール

yum -y install subversion mod_dav_svn

config変更

vi /etc/httpd/conf.d/subversion.conf

リポジトリ作成

mkdir /var/www/svn
cd /var/www/svn
svnadmin create hoge

Apache実行ユーザに権限付与してリロード

chown apache:apache -R /var/www/svn
/etc/rc.d/init.d/httpd reload

外部公開しないのでiptablesを編集して接続を限定した。

vi /etc/sysconfig/iptables
/etc/rc.d/init.d/iptables restart

trunk、tags、branchesを作成してXCodeTortoiseSVNから
チェックアウト/コミットできることを確認


バックアップスクリプト作成

vi svnbackup.sh

#!/bin/sh
echo "STARTING AT $(date +\%Y/\%m/\%d/T%I:\%M:\%S)" >> /home/hoge/svnlog.txt
rm /tmp/hoge.dump
svnadmin dump /var/www/svn/hoge > /tmp/hoge.dump 2>/dev/null
echo "svnadmin exited with code $?" >> /home/hoge/svnlog.txt
gzip -c /tmp/hoge.dump > "/home/hoge/svnbackups/hoge.dump.$(date +\%Y\%m\%d\%I\%M\%S).gz"
echo "gzip exited with code $?" >> /home/hoge/svnlog.txt
echo "DONE AT $(date +\%Y/\%m/\%d/T%I:\%M:\%S)" >> /home/hoge/svnlog.txt
echo  "-----" >> /home/hoge/svnlog.txt

cron登録 毎日0時にバックアップ

crontab -e

0 0 * * * svnbackup.sh

svnadmin loadでリストアできることを確認


Digest認証やhttpsにして外部公開したいけど、とりあえずここまで。
CIサーバを構築するのはいつになるやら。。

Fork me on GitHub