安装步骤如下:
1、yum install subversion
2、输入rpm -ql subversion查看安装位置
3、创建svn版本库目录
mkdir -p /var/svn/svnrepos
4、创建版本库
svnadmin create /var/svn/svnrepos
5、进入conf目录(该svn版本库配置文件)
authz文件是分配用户组 权限控制文件
passwd是帐号密码文件
svnserve.confSVN服务配置文件
6、设置帐号密码
vi passwd
在[users]块中添加用户和密码,格式:帐号=密码,如a=a
1. 创建用户组
vi authz
在末尾添加如下代码:
复制代码 代码如下:
[/]
wang=a,b,c
8、修改svnserve.conf文件
vi svnserve.conf
打开下面的几个注释:
anon-access= read #匿名用户可读
auth-access= write #授权用户可写
password-db= passwd #使用哪个文件作为账号文件
//authz-db= authz #使用哪个文件作为权限文件
realm= /var/svn/svnrepos # 认证空间名,版本库所在目录
9、启动svn版本库
svnserve-d -r /var/svn/
检出svn
svncheckout svn://localhost/需要检出的目录 /要检出的路径
更新版本
svnup
10自动更新
进入hooks目录
把post-commit.tpl文件重命名为post-commit
并增加以下代码:
#!/bin/sh
WEB=/home/data/o135
export LANG=en_US.UTF-8
svn update $WEB --username o135 --password 'o135123'
保存,退出。。
给予此脚本的权限:
chmod 777 post-commit
测试一下,看脚本是否有权限问题
./post-commit
以后每次客户端提交操作,就会自动运行该脚本。
#需要update的文件夹要先checkout
问题解决
注意事项:
vi svnserve.conf配置文件去注释后不能有空格
关闭防火墙
1. 积极拒绝 无法连接
原因:未启动服务
解决方案 :svnserve --help
启动服务器:
svnserve-d -r /var/svn
查看是否启动版本库
ps -aux | grep svnserve
防火墙 关闭防火墙 service iptables stop
2. 认证失败
未分配用户
svnserve.conf配置文件
authz配置用户组 分配用户
passwd给用户分配密码
杀死服务重新启动
kill-9 (进程号)
启动服务器:
svnserve-d -r /var/svn
本地克隆地址svn://ip地址/版本库名称