SUBVERSION
WebDAV + SSL(+クライアント認証) というのがファイル共有としてはよさげな姿かなと思う今日この頃…。徒然なるままに、Subversion + Subclipse + TortoiseSVN (+ Webフォルダ) の環境構築を目論む。TortoiseSVNは以前からメインノートに入れていたが、当時不安定になったので暫く使用していなかった。もうそろそろ枯れてきたっしょと思い、(物理的に)重い腰を上げ、WebDAV/DeltaVによるファイル管理の統一を目指す。ソースコード管理に限らず、普通の文書ファイル共有においても、履歴管理機能は使えるし…無駄なバックアップを取り続け、未来永劫決して陽の目を見ないデータがディスクを占有するという現状のSOLUTIONになるであろう。きっと…。subversionではブランチをファイルセットのコピーで表現する。trunkディレクトリを作成するなどして、本線は色分けするなどの工夫が必要だがcvsに比べ分かり易いと思う。またリビジョンはリポジトリ全体に対してのヒストリーカウントとして位置づけられ、ファイル単位でアップするcvsに慣れていると違和感を感じるが、ま、なれるでしょ。
参考にした本*1によるとパーミッションが肝とのことでしたが、確かに…。SELinuxでちょっとはまりました。ここは安直に apache をSELinuxの管理からはずすことで解決?。あと apache ユーザをリポジトリの管理ユーザにした方がはまらないかも…。
- Subversoinのインストール
-
- Subversion用グループとユーザの作成(httpd経由のアクセスを考慮し、apacheユーザをsvnグループに追加)
groupadd -g 501 svn
useradd -u 501 -g svn -G apache -p ******** svn
-
- yumを使用してsubversionとmod_dav_svnをインストール
yum install subversion.i386
yum install mod_dav_svn
su - svn
svn create /home/svn/test
svn list file:///home/svn/test
chmod 6775 /home/svn/test/db
service svnserve
{
disable = no
socket_type = stream
wait = no
user = svn
server = /usr/bin/svnserve
server_args = -r /home -i
log_on_failure += USERID
}
kill -HUP `cat /var/run/xinetd.pid`
svn list svn+ssh://localhost/home/svn/test
-
- httpd.confの変更
LoadModule dav_svn_module modules/mod_dav_svn.so #読込済みのwarningが出とりますが…
…
#とりあえず認証とかはナシで…
DAV svn
SVNPath /home/svn/test
umask 002 #シェルスクリプトの先頭の方に追加
-
- apache再起動
apachectl restart
- エピローグ
-
- 日本語のファイル名
- TortoiseSVN(on WindowsXP)からは、日本語ファイル名も問題なくコミットできました。Webフォルダから使用する場合には mod_encoding といのが必要らしい…。
- 日本語のファイル名
-
- い〜いんじゃな〜ぃ。
*1:Subversion解説書: 読みやすかった。