目次

リンク

はじめに

pkgtools.conf を設定しておく。

インストール

# portinstall devel/subversion
# rehash

httpd.conf に dav_module が二つあると思うので一つを削除 or コメントアウト。

# cat /usr/local/etc/apache22/httpd.conf | grep dav_module
LoadModule dav_module libexec/apache22/mod_dav.so
LoadModule dav_module libexec/apache22/mod_dav.so

# vi /usr/local/etc/apache22/httpd.conf

#LoadModule dav_module libexec/apache22/mod_dav.so

Sandbox ( 練習用リポジトリ ) の作成

# mkdir -p /usr/local/var/svn/repos
# svnadmin create /usr/local/var/svn/repos/sandbox
# chown -R svn:svn /usr/local/var/svn/repos/sandbox

OpenSSH on Subversion

svn専用ユーザを追加する。

# pw groupadd -n svn
# pw useradd -n svn -c "Subversion Comit User" -d /home/svn -g svn -h - -s /bin/sh
# mkdir -p /home/svn/.ssh
# chown -R svn:svn /home/svn

一般ユーザの公開鍵を /home/svn/.ssh にコピーする。
通常の公開鍵だとシェルでのログインも出来てしまうので、 command 等を公開鍵の先頭に追記する。 ( 実際は一行 )

command="svnserve -t --tunnel-user=コミットユーザ名 -r /usr/local/var/svn/repos"
,no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-dss AAAAB(中略)M6BA== ****@examle.com

sshd_config で AllowUsers を設定している場合は svn ユーザを追加する。

# grep AllowUsers /etc/ssh/sshd_config

AllowUsers user svn

# /etc/rc.d/sshd restart

Apache WebDAV on Subversion

# vi /usr/local/etc/apache22/Includes/subversion.conf

<Location /svn>
	DAV svn
	SVNParentPath /usr/local/var/svn/repos
	SVNListParentPath On

	<LimitExcept GET PROPFIND OPTIONS REPORT>
		Deny from all
	</LimitExcept>
</Location>

リポジトリ一覧を見せたくない場合は SVNListParentPath を off にする。