1、安装svn
cd /usr/local
wget http://subversion.tigris.org/downloads/subversion-1.6.1.tar.gz
wget http://subversion.tigris.org/downloads/subversion-deps-1.6.1.tar.gz
tar zxvf subversion-1.6.1.tar.gz
tar zxvf subversion-deps-1.6.1.tar.gz
cd subversion-1.6.1
./configure --prefix=/usr/local/svn
make && make install
2、检测SVN是否安装完整
/usr/local/svn/bin/svn -- version
svnserve, version 1.6.1 (r37116)compiled Jul 7 2010, 23:06:21
Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).
The following repository back-end (FS) modules are available:
* fs_fs : Module for working with a plain file (FSFS) repository.
Cyrus SASL authentication is available.
3、将svn的bin目录添加至环境变量中取
PATH=$PATH:/usr/local/svn/bin
export PATH
4、创建一个SVN仓库
mkdir -p /home/happy/www/project
svnadmin create /home/happy/www/project
5、配置SVN仓库信息
cd /wwww/happy/www/project/
// 配置仓库配置文件
vim conf/svnserve.conf
[general]
anon-access = read
auth-access = write
password-db = passwd // 可写绝对路径,多个仓库可共用
authz-db = authz<span style="white-space:pre"> // 可写绝对路径,多个仓库可共用
// 配置仓库用户文件
vim conf/authz
// 配置组
[groups]
pm = pm1,pm2 // 组名=用户名1,用户名2
server = server1,server2
client = client1,client2
// 配置目录权限
[/] // 也可写成[project:/] 前者在多个项目共用文件的时候比较实用
@pm = rw // pm 组有可读写权限
test = rw // test 用户有可读写权限
server = r // 如果设置账号只有子目录的写权限,那么该子目录的上级目录,必须要对该账号有可读权限
client = r // 如果设置账号只有子目录的写权限,那么该子目录的上级目录,必须要对该账号有可读权限
* = // 未登陆用户无权限
// 配置子目录权限
[/server] // 也可以写成[project:/server]
@pm = rw // pm 组有可读写权限
test = rw // test 用户有可读写权限
@server = rw // server 组用户有可读写权限
* = // 未登陆用户无权限
// 配置子目录权限
[/client] // 也可以写成[project:/client]
@pm = rw // pm 组有可读写权限
test = rw // test 用户有可读写权限
@client = rw // client 组用户有可读写权限
* = // 未登陆用户无权限
// 配置密码文件
vim conf/passwd
[users]
pm1 = pwd
pm2 = pwd
test = pwd
server1 = pwd
server2 = pwd
client1 = pwd
client2 = pwd
6、开启svn进程
svnserve -d -r /home/happy/www // 注意:是仓库的根目录,不能写/home/happy/www/project
7、开启服务器防火墙(如需要)
vim /etc/sysconfig/iptables
// 添加一行
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
// 重启iptables
/etc/init.d/iptables reload
8、检出项目
svn://192.168.0.106/project
然后在根目录下面建立两个文件夹
server
client
提交至svn
通过测试证明
pm组和test用户在所有文件夹均拥有读写权限
server组只在server目录具有写权限
client组只在client目录具有写权限
至此,svn配置完毕