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
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配置完毕