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 -- versionsvnserve, version 1.6.1 (r37116)
3、将svn的bin目录添加至环境变量中取
PATH=$PATH:/usr/local/svn/bin export PATH
mkdir -p /home/happy/www/project svnadmin create /home/happy/www/project
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
svnserve -d -r /home/happy/www // 注意:是仓库的根目录,不能写/home/happy/www/project
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
svn://192.168.0.106/project
server
client
提交至svn
通过测试证明
pm组和test用户在所有文件夹均拥有读写权限
server组只在server目录具有写权限
client组只在client目录具有写权限
至此,svn配置完毕