svn只要提交,代码自动发布到指定服务器目录

两种实现方式:在svn库下的hooks文件夹下,

1.svn服务端与代码发布目录在同一台服务器
a.复制钩子模板:cp post-commit.tmpl post-commit
b.修改模板:vi post-commit
c.在最后一行添加:svn checkout –username guihai –password 1a1a1a –no-auth-cache svn://192.168.1.9/QQGDV2 /var/www/qqgdv2
d.如果有py的文件,注释掉

2.svn服务端与代码发布目录在不同的服务器(使用ssh免登录http://wp.tanguu.com/2016/09/09/ssh免登录/)
a.首先解决的是服务器之前的登录问题,登录问题有两种解决,
一个是ssh密钥免登录,
一个是ssh+expect+sh密码自动登录登录,
b.然后就是在代码发布服务器上写更新脚本(QQGDV2-svnup.sh),脚本内容:
svn checkout –username guihai –password 1a1a1a –no-auth-cach svn://192.168.1.9/QQGDV2 /var/www/qqgdv2
chown -R developer /var/www/upay
b.复制钩子模板:cp post-commit.tmpl post-commit
c.修改模板:vi post-commit
d.在最后一行添加:ssh 192.168.1.28 “sh /var/www/scripts/QQGDV2-svnup.sh” #已作了登录
e.如果有py的文件,注释掉

注意:可能post-commit及脚本文件有权限问题

chmod 755 post-commit

在centos6.5下,svn与nginx结合使用

机子已经装了nginx, 不想再安装apache作为svn作为服务器于是google,信心来自于:http://blog.sina.com.cn/s/blog_40c3ce8601011iel.html

1.安装svn
yum -y install subversion
2nginx的安装:
yum -y install nginx
3.添加svn仓库
svnadmin create /data/svn
4.修改配置
——————-修改配置文件: vi /data/svn/conf/authz ———————
[groups]
admin=test #admin组里的成员
[/]
test = rw #成员对/目录的权限: r读,w写
—————–vi /data/svn/conf/passwd ————————————–
[users]
test = 123456 #用户test的密码
—————–vi /data/svn/conf/svnserve.conf ——————————
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = My First Repository
5.重新启动
svnserve -d -r /data/svn
6.svn仓库地址,只有一个版本库
svn://你机子的IP
注:
1)在IP后无/svn这个明确的库
2)同时不能直接使用多个版本库,如果一定要多个版本库,解决方案:
使用–listen-port参数指定端口,启动多个仓库,
如:svnserve -d -r /data/tmp –listen-port 3691,
在访问时需要带上端口号:svn://你机子的IP:3691
3.也有其他方法解决多库问题