Linux上svn创建钩子同步更新到web项目目录

一、安装svn
1.本例在阿里云服务器centos 6.8 上安装
2.运行命令 yum install subversion
3.运行以下命令查看SVN安装版本 svnserve --version 出现以下效果
在这里插入图片描述
4.按以下步骤创建版本库:
a.运行以下命令创建目录 mkdir /var/svn
b.依次运行以下命令创建版本库

cd /var/svn
svnadmin create /var/svn/dzxsystem

c.依次运行以下命令查看自动生成的版本库文件

cd dzxsystem
ll

在这里插入图片描述
Subversion目录说明:

  • db目录:所有版本控制的数据存放文件。
  • hooks目录:放置hook脚本文件的目录。
  • locks目录:用来追踪存取文件库的客户端。
  • format文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。
  • conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)。

d.运行命令 cd conf/ 进入conf目录(该SVN版本库配置文件)。返回结果如下:

  • authz:是权限控制文件。
  • passwd:是账号密码文件。
  • svnserve.conf:SVN服务配置文件。

e.按以下步骤设置账号密码:

  • 运行 vi passwd。
  • 按 i 键进入编辑模式。
  • 在 [users] 块中添加用户账号和密码,格式:账号=密码,比如示例中的suzhan = redhat(注意等号两端要有一个空格)。
  • 按 Esc 键退出编辑模式,并输入 :wq 保存并退出 ,此图直接复制的阿里云安装svn图片
    此图直接复制的阿里云安装svn图片

f.按以下步骤设置权限:

  • 运行 vi authz。
  • 按 i 键进入编辑模式。
  • 在末尾添加如下代码(其中,r表示读,w表示写):
    [/]
    suzhan=rw
    
  • 按 Esc 键退出编辑模式,并输入 :wq 保存并退出。此图直接复制的阿里云安装svn图片
    在这里插入图片描述

g.按以下步骤修改svnserve.conf文件。

  • 运行命令 vi svnserve.conf

  • i 键进入编辑模式

  • 打开以下几个注释(注意每行不能以空格开始,等号两端要有一个空格):

    anon-access = read #匿名用户可读,您也可以设置 anon-access = none,不允许匿名用户访问。设置为 none,可以使日志日期正常显示
    auth-access = write #授权用户可写
    password-db = passwd #使用哪个文件作为账号文件
    authz-db = authz #使用哪个文件作为权限文件
    realm = /var/svn/svnrepos #认证空间名,版本库所在目录
    
  • 按 Esc 键退出编辑模式,并输入 :wq 保存并退出。此图直接复制的阿里云安装svn图片

  • 在这里插入图片描述

h.运行以下命令启动SVN版本库。

svnserve -d -r /var/svn/dzxsystem

i.运行命令 ps -ef |grep svn 查看SVN服务是否开启。
如果返回结果如下图所示,表示SVN服务已经开启。
在这里插入图片描述
j.停止svn命令 killall svnserve
5.添加安全组规则
SVN服务的默认端口为TCP 3690。添加安全组规则 放行TCP 3690端口

二、创建钩子同步到web项目中
1.linux服务器上项目检出到linux服务器上web项目目录
需满足条件:
a.svn版本库开启不能指定文件夹,例如我这里创建的版本库是 /var/svn/dzxsystem 启动svn的目录只需到/var/svn,输入以下命令

killall svnserve
svnserve -d -r /var/svn

b.检出到linux服务器上的web项目目录
方法1.在你需要检出的目录下,例如我这里是/www/web/dzxsystem/public_html 输入以下命令,可能会出现输入用户名和密码的过程,只需输入你在创建版本库dzxsystem的passwd文件输入的用户名和密码即可

cd /www/web/dzxsystem/public_html
svn checkout svn://47.105.175.112/dzxsystem/

方法2.在任意目录执行以下命令

svn co svn://ip/dzxsystem/ /www/web/dzxsystem/public_html/ --username 你的svn用户名 --password 你的svn用户密码

c.此时你在windows检出时一样,如下
在这里插入图片描述
2.创建钩子,进入 /var/svn/dzxsystem/hooks 目录,复制 post-commit.tmpl 文件为 post-commit

cp post-commit.tmpl post-commit

a.修改post-commit文件

vi post-commit

b.删除其他内容,输入以下内容

#!/bin/sh
exportLANG=en_US.UTF-8
REPOS="$1"
REV="$2"
TXN_NAME="$3"
SVN=/usr/bin/svn 									#这里配置的是svn安装bin目录下的svn文件
WEB=/www/web/dzxsystem/public_html					#要更新的目录
$SVN update --username 你的svn用户名 --password 你的svn用户密码 $WEB --no-auth-cache
chown -R www:www $WEB

c.操作 Esc,输入 :wq 退出并保存
d.让post-commit有执行的权限,输入以下命令

chmod a+x post-commit
如果有问题再给文件权限
chmod 777 /var/svn/dzxsystem/hooks/post-commit

e.重启svn

killall svnserve
svnserve -d -r /var/svn

f.本地运行效果对比
1)线下目录
在这里插入图片描述
2)线上目录
在这里插入图片描述
3)线下创建文件提交测试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

淘宝优惠券领取:http://tao.paetao.com/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值