1. 安装SVN服务器:
检查是否已安装
# rpm -qa subversion
安装SVN服务器
# yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql
验证安装
# cd /etc/httpd/modules
# ls | grep svn
mod_authz_svn.so
mod_dav_svn.so
查看版本
# svnserve --version
2. 代码库创建:
安装完成后要建立SVN库
# mkdir -p /opt/svn/work
# svnadmin create /opt/svn/work
执行后,自动建立work库,查看/opt/svn/work文件夹包含了conf,db,format,hooks,locks,README.txt文件,说明一个SVN库已经建立。
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件
3. 配置版本库:
进入上面conf文件夹下,进行配置:
- 用户密码passwd配置:
#cd /opt/svn/work/conf
# vim passwd
[users] #添加你所开放的用户:user = password
dit = dit
- 权限控制authz配置:
# vim authz
设置哪些用户可以访问哪些目录,向authz文件追加以下内容:
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
local=byf #多个用户用,隔开
[work/:]
byf = rw 或者 @local = rw
* = r * = r表示,除了上面设置了权限的用户组之外,其他任何人只能读本目录
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[/]
dit=rw //给该用户访问所有库读写的权限
或
[work:/] //work库的根目录权限
dif=rw
/ 表示根目录及以下,根目录是svnserve启动时指定的,我们指定的是/opt/svn;/ 就是指对全部版本库都具有权限
work:/ 表示对库work的根目录设置权限
注意:
* 权限配置文件中出现的用户名必须已在用户配置文件中定义。
* 对权限配置文件的修改立即生效,不必重启svn。
- 服务svnserve.con配置:
# vim svnserve.conf
添加一下内容:
[general]
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /usr/local/svn/work # 认证空间名,版本库所在目录
- 启动SVN
# svnserve -d -r /opt/svn/repositories --listen-port 3397 #指定启动端口的参数 --listen-port 3397
- 查看SVN进程
# ps -ef|grep svn|grep -v grep
root 12413 1 0 12:40 ? 00:00:00 svnserve -d -r /opt/svn/repositories
- 检测SVN端口
# netstat -ln |grep 3397
tcp 0 0 0.0.0.0:3397 0.0.0.0:* LISTEN
4. 停止重启SVN:
# killall svnserve //停止
# svnserve -d -r /opt/svn/repositories // 启动 端口默认为3690
5. 测试连接:
使用TortoiseSVN进行测试:
1. SVN服务启动后,需要使用客户端测试连接:
客户端连接地址:svn://192.168.25.134;然后,输入用户名密码; (指定端口启动需要加端口才能访问)
2. 新建一个文件夹,即本地的库文件夹,右键checkout,将会得到一个隐藏文件夹.svn;
3. 在此文件夹中放入项目内容,然后右键点击commit,就可以上传本地项目了。