第一步:安装svnversion
Centos下可以使用yum安装,自动配置环境变量
yum install subversion
安装完成后可以用
svn help
来检查是否安装成功
第二步:配置svnversion
mkdir -p /home/svn/repos #创建版本库目录 repos目录名可以自定义
svnadmin create /home/svn/repos #创建版本
然后修改配置文件进行配置
编辑/home/svn/repos/conf/svnserve.conf
[general]
anon-access = none #匿名登录无权限
auth-access = write #认证可写
password-db = passwd #用户密码文件
authz-db = authz #授权登录文件
realm = repos
注意:
*这里的配置修改后需要重启服务
编辑/home/svn/repos/conf/passw
[users]
username = password #每行一个用户 用户名 = 密码
编辑用户权限
编辑/home/svn/repos/conf/authz
[groups]
#组名 = 用户名 其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。
#比如 admin = user1,user2
admin = username
[/]
#[/] 为根目录权限
@admin = rw #组名前必须加@
username = rw #也可以直接给某个用户设置权限
注意:
* 权限配置文件中出现的用户名必须已在用户配置文件中定义。
* 对权限配置文件的修改立即生效,不必重启svn。
用户组格式:
版本库目录格式:
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>
其中,方框号内部分可以有多种写法:
[/],表示根目录及以下,根目录是svnserve启动时指定的,我们指定为/home/svn,[/]就是表示对全部版本库设置权限。
[repos:/] 表示对版本库repos设置权限;
[repos:/abc] 表示对版本库repos中的abc项目设置权限;
[repos:/abc/aaa] 表示对版本库repos中的abc项目的aaa目录设置权限;
权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。
权限可以是w、r、wr和空,空表示没有任何权限。
启动服务
svnserve -d --listen-port 8080 -r /home/svn #这里注意目录 是/home/svn 不是/home/svn/repos
-d :表示以daemon方式(后台运行)运行;
--listen-port 8080 :表示使用8080端口
-r /home/svn:指定根目录是/home/svn。
停止服务:
killall svnserve
至此SVN已经配置完毕
可以通过:
svn co svn://ip:port/repos/
进行测试
第三步:自动同步到WEB目录
在/home/svn/repos/hooks目录下
cp post-commit.tmpl post-commit
修改内容为:
#!/bin/sh
WEB=/home/wwwroot/wwb/web/ #web的目录
cd $WEB && /usr/bin/svn update --username winke --password 772930093 --no-auth-cache
chmod 755 post-commit #别忘了这一步
参考文章:
[1]:https://my.oschina.net/u/163208/blog/186797
[2]:http://stackoverflow.com/questions/7841591/svn-post-commit-hook-error-255