centos7安装svn服务器并加钩子自动更新项目

第一步,安装SVN

yum install subversion
yum remove subversion(卸载)

第二步,创建SVN版本库

mkdir -p /var/svn/svntest

第三步,创建版本库

svnadmin create /var/svn/svntest

执行完上面命令后会生成如下文件,说明版本库创建成功:

60f8831bddda9e3a7b9b0d6ae649a1753ea.jpg

第四步,进入conf目录配置该版本库的文件:

authz文件是权限控制文件

passwd是帐号密码文件

svnserve.conf SVN服务配置文件

第五步,配置passwd,语法:用户名=密码,例:

[users]
test1 = 123456 
test2 = 123456

第六步,配置authz用户权限文件,rw是有读写权限:

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
admin_group = test2
 
[/]
test1 = rw
[/adminfile]
@admin_group = rw

第七步,配置svnserve.conf文件,打开下面几个注释即可:

anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /var/svn/svntest #认证空间名,版本库所在目录

第八步,启动SVN版本库,完成:

启动SVN:

svnserve -d -r /var/svn/svntest

关闭SVN(查看进程PID,然后kill掉):

ps aux | grep -i svn
kill pid号

防火墙开启3690端口(注意打开端口的访问权限。svn服务的默认端口为3690):

编辑防火墙配置文件:

a.CentOS7 之前版本iptables 防火墙:

vi  /etc/sysconfig/iptables

增加下面一行

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT

重启防火墙

service iptables restart

b.CentOS7 之后版本firewall 防火墙:

CentOS7  版本 firewalld 防火墙:
添加(--permanent永久生效,没有此参数重启后失效)
firewall-cmd --zone=public --add-port=80/tcp --permanent    
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone= public --query-port=80/tcp

第九步,实现自动同步:

首先在服务器上建一个文件夹:

mkdir /data/wwwroot/testweb

执行check:

svn --username test1 --password 123456 co svn://127.0.0.1 /data/wwwroot/testweb/

在/var/svn/svntest/hook下创建post-commit文件,文件设置可执行权限,加入以下内容:

#!/bin/bash
REPOS="$1"
REV="$2"
export LANG=en_US.UTF-8
WEB_PATH=/data/wwwroot/testweb
SVN_USER=test1
SVN_PASS=123456
LOG_PATH=/tmp/svn-act.log
echo `date "+%Y-%m-%d %H:%M:%S"` >> $LOG_PATH
echo `whoami`,$REPOS,$REV >> $LOG_PATH
svn update $WEB_PATH --username $SVN_USER --password $SVN_PASS --no-auth-cache >> $LOG_PATH
chown -R 777 $WEB_PATH

保存后付权限

chmod a+x post-commit

重启svn后实现自动同步功能

 

 

创建多项目:

(1): 创建svn仓库路径

mkdir  -p  /var/svn/project1
mkdir -p   /var/svn/project2
svnadmin  create  /var/svn/project1
svnadmin  create  /var/svn/project2

注意:为了规范:一般在项目目录下再创建,项目代码导入到trunk目录:

mkdir  -p   /var/svn/projec1/trunk
mkdir  -p   /var/svn/projec1/tags
mkdir  -p   /var/svn/projec1/branches

项目2操作和一类似。

其他配置参考以上步骤

(2):启动svn服务

svnserve -d  -r   /var/svn/

注意:如果在一台服务器上同时启动多个版本管理,那么启动路径必须是所有项目仓库的根路径:比如
/var/svn/project1    /var/svn/project2   ------------------->   /opt/svn/ 

转载于:https://my.oschina.net/u/3447660/blog/1844220

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值