SVN覚え書き

バージョン管理ツールのSVN導入にスッゴイ手間取った。
Webの情報が統一されてなかったり(環境で違うのだろうか・・・)
欠けていたりで・・・。でもなんとかできました。


■インストール


# yum install subversion


↓はApacheでアクセス出来るようにする為のモジュール


# yum install mod_dav_svn


リポジトリ作成
リポジトリ用のディレクトリを作る。


# mkdir /ruriruri/svn/nagamon
/ruriruri/svnSVN用のディレクトリとして。
nagamonはリポジトリ用のディレクトリとして。
適宜読み替える事。


リポジトリを作る。


# svnadmin create /ruriruri/svn/nagamon


Apacheがアクセス出来るようにユーザを変えておく。


# chown -R apache:apache /ruriruri/svn


リポジトリに登録
とりあえず登録するファイルを用意する。


$ vi /home/hoge/nagamon/yukirin.txt


登録する。


$ svn import -m "hoge" /home/hoge/nagamon file:///ruriruri/svn/nagamon/
以下のapacheの設定をしている場合、「http://localhost/svn/nagamon
でも登録出来る。
以下のsvnserveを起動している場合、「svn://localhost/nagamon」でも
登録出来る。


リポジトリの削除
リポジトリのフォルダを丸ごと削除。


# rm -rf /ruriruri/svn/nagamon


Apacheによる公開
BASIC認証用のパスワードを設定する。


# htpasswd -c /ruriruri/svn/.htpasswd username


/etc/httpd/conf.d/subversion.confを編集する。
ファイルの末尾に以下の設定を追加する。



DAV svn
SVNParentPath /ruriruri/svn

AuthType Basic
AuthName "SubVersion"
AuthUserFile "/ruriruri/svn/.htpasswd"
Require valid-user

AuthNameは多分何でもいい。多分。
AuthUserFileはさっき作ったパスワードのファイル。


Apache再起動。


# /usr/sbin/apachectl restart
ウチの環境では/usr/sbinにapachectlがあった。


以下のURLにアクセスすれば見れる。


http://ホスト名/svn/nagamon
何にも作ってなければ「Revesion 0:/」とか表示される。


svnserveによる公開
TortoiseSVNとかでアクセス出来る様にしたいので
svnserveを起動させる。


リポジトリのアクセス権限を制御する為に設定ファイルを編集する。


# vi /ruriruri/svn/nagamon/conf/svnserve.conf
以下の行のコメントを外して設定する。

anon-access = none
auth-access = write
password-db = passwd
行の先頭に空白が混じっていると、チェックアウトしたりする時に
「Option expected」等と出てエラーになるので注意。
これで認証なしのアクセスは禁止に出来た。


パスワードの設定をする。


# vi /ruriruri/svn/nagamon/conf/passwd
harry, sally等の例が載っているので、参考にしてユーザを追加する。

# harry = harryssecret
# sally = sallyssecret
hoge = fuga
これでhogeユーザが追加出来た。


svnserveを起動する。


# svnserve -d -r /ruriruri/svn
これで、svnコマンドやTortoiseSVN等から、「svn://ホスト名/nagamon/」の
アドレスでアクセス出来るようになる。
ちなみにウチの環境ではsvnserveは「/usr/bin」にあった。
svnserveの在り処や起動方法は環境によって色々違うらしい??


後、svnserveはポート3690番を使うので、解放する。


# /sbin/iptables -I INPUT -p tcp -m tcp --dport 3690 --syn -j ACCEPT
# /etc/init.d/iptables save
# /sbin/service/iptables restart
この辺はまだ勉強不足でよくわからなかったり。
とりあえずこれで通る様になったのでおkとする。