sudo apt-get update
sudo apt-get install subversion subversion-tools libapache2-svn
sudo mkdir /home/svn
sudo mkdir ~/test
sudo svnadmin create /home/svn/test -m 'initial project structure'
cd ~/test
mkdir trunk tags branches
sudo svn import ~/test file:///home/svn/test -m 'Initial project directories'
sudo chown -R www-data:www-data /home/svn
sudo a2enmod dav_svn
sudo vim /etc/apache2/mods-available/dav_svn.conf
取消注释:
DAV svn SVNParentPath /home/svn
测试:
http://127.0.0.1/svn/test.
如果需要限制用户:
sudo vim /etc/apache2/mods-available/dav_svn.conf
DAV svn SVNParentPath /home/svn AuthType Basic AuthName "My SVN Repositories" AuthUserFile /subversion/svn-auth Require valid-user
htpasswd -c /etc/subversion/passwd svntest
上面我们添加完了用户,但是还要授权这些用户的权限,如该用户是具有读权限,还是写权限,还是读写权限等等。为了使得一个用户对于SVN的多个项目具有不同的权限控制,我们仅为用户组设置具体的读写权限,如果一个用户期望获得一个项目的相关权限,我们可以将这个用户直接添加到具有相应权限的组中去,具体命令如下:
sudo vi /etc/subversion/authz
在打开编辑授权文件之后编辑其内容如下:
#用户组指令
[groups]
svn = svntest,将用户svntest添加到用户组svn
#其他组
[mysite:/]
@svn = rw,为用户组svn添加读写权限
或者 * = rw
完成以上设置之后,我们只需重启SVN就可以了,重启命令如下:
sudo /etc/init.d/apache2 restart
cd ~
mkdir test2
svnserver -d -r /home/svn/test/trunk test2svn checkout http://127.0.0.1/svn/test/trunk test2