首页 > 资源分享 > centos7安装svn并设置提交的代码同步至站点目录

centos7安装svn并设置提交的代码同步至站点目录

时间:2023-07-04浏览次数:630

1、通过yum命令自动安装svn相关服务和依赖

yum -y install subversion


2、查看安装路径

rpm -ql subversion


3、创建版本库目录,自定义目录

mkdir /www/svnrepos


4、创建svn项目,项目名为demo

svnadmin create /www/svnrepos/demo


5、进入 demo/config 对SVN进行配置

5.1 更改账号与权限   vim authz

按Shitf+G进入最后一行,然后按字母i进入编辑模式,插入以下数据(多个帐号换行插入),按Esc,输入:wq回车。[/]表示跟路径 /www/svnrepos;root = rw表示帐号admin有读写权限,r拉代码权限,w提交代码权限(读写权限)

[/]

root = rw

image.png

5.2 设置密码

vim passwd

按Shitf+G进入最后一行,然后按字母i进入编辑模式,插入以下数据(多个密码换行插入),按Esc,输入:wq回车。

root = 123

image.png

5.3  SVN配置

vim svnserve.conf

image.png

anon-access = none:表示禁止匿名用户访问。

auth-access = write:表示授权用户拥有读写权限。

password-db = passswd:指定用户名口令文件,即 passwd 文件。

authz-db = authz:指定权限配置文件,即 authz 文件。

realm = /www/svnrepos:指定认证域,即 /www/svnrepos 目录。


8、开启防火墙端口 3690 (防火墙开启,依次执行以下命令(这里以iptable防火墻为例),如果是腾讯云、阿里云需要到服务器控制台添加安全组,端口3690)

vi /etc/sysconfig/iptables

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

systemctl restart iptables.service


9、启动svn,可用ps -aux查看服务启动是否成功

svnserve -d -r /www/svnrepos

ps -ef | grep 'svnserve'

image.png


设置同步

假如现在有:

SVN版本库中的一个项目:/www/svnrepos/demo

网站目录:/www/wwwroot/demo


1、我们先将SVN版本库中的一个项目checkout到网站目录:

svn co file:///www/svnrepos/demo/ /www/wwwroot/demo/

这时,网站目录已成为SVN的工作副本,接下来利用SVN的钩子让这个工作副本自动更新。


2、在svn库(demo)的hooks下新建一个post-commit钩子,编辑内容

或者在hooks下复制 钩子文件

cp post-commit.tmpl post-commit


3、编辑钩子文件

vim post-commit      这是在hooks目录下执行

或者   

vim /www/svnrepos/demo/hooks/post-commit


4、添加如下内容:

#!/bin/sh

REPOS="$1"

REV="$2"

export LANG="zh_CN.UTF-8"    #防止乱码 

svn update /www/wwwroot/demo --username root --password 123456 --no-auth-cache #设置登陆账号密码并不缓存


注:不要遗漏第一行的#!/bin/sh,否则post-commit会报代号255的错误。


5、修改文件权限为755,否则SVN无法调用执行

chmod 755 /www/svnrepos/demo/hooks/post-commit

OR:

chmod +x /www/svnrepos/demo/hooks/post-commit


6、检出项目

客户端访问svn服务器,地址:svn://IP地址:3690/demo(IP地址是你CentOS7.6的服务IP,demo是前面创建的项目名称,3690是svn默认端口)


OK,至此,就完成了svn文件提交后自动同步更新到网站目录的代码了。

感谢文章:https://blog.csdn.net/u011884440/article/details/70495615

                 https://blog.csdn.net/u012241426/article/details/103206572