关于svn钩子

svn钩子

钩子脚本就是shell的写法,钩子就是被某些版本库事件触发的程序。

常用钩子:

post-commit:在提交完成成功创建之后执行该钩子。(提交已经完成,不可更改)

更新之后,通过邮件、微信通知

更新触发checkout程序、然后推送到服务器

pre-commit:提交完成前触发执行该脚本。

限制上传文件的大小和拓展名,控制提交要输入的信息

下面写一个小例子:

rsync与svn钩子结合实现数据实时同步到服务器

1、建立同步web目录

mkdir /data/www

2、将svn中内容checkout到web目录中

svn co svn://ip/sadoc /data/www --username=syk --password=syk123

3、设置钩子

cp post-commit.tmpl post-commit

4、编写脚本

1)、> post-commit

2)、chmod 700 post-commit

3)、vim post-commit添加:

#!/bin/bash

REPOS="$1"

REV="$2"

export LANG=en_US.UTF-8

LOGPATH="/tmp/log"

[ ! -d ${LOGPATH} ]  && mkdir ${LOGPATH} -P

SVN=/usr/bin/svn

$SVN update --username syk --password syk123 /data/www

if [ $? -eq 0 ]

then

/usr/bin/rsync -az --delete /data/www /tmp/

fi

5、测试

这时我们在svn上新建一个文件并提交,在tmp目录下就可以看到有这个新建的文件。

时间: 2024-11-25 12:39:50

关于svn钩子的相关文章

svn 钩子脚本

#vim post-commit #!/bin/bash REPOS="$1"  REV="$2"  SVNLOOK="/usr/bin/svnlook" echo "`date +%F`" >> /tmp/post.log echo "REPOS=$1 REV=$2" >> /tmp/post.log echo -e "\[email protected][email p

svn钩子的使用案例

我在这一篇博文http://lidaxia.blog.51cto.com/11588738/1928773中提到,svn钩子脚本是svn非常实用重要的功能,在工作中,会经常需要用到svn钩子脚本以实现除了svn自带功能之外的附加功能,那么这一篇博文,我们就举例演示一下,svn钩子是用来做什么的,以及怎么用. svn钩子的功能: svn钩子是一个脚本,它的具体写法和linux操作系统中shell脚本的写法并没有什么不同,通俗来说,svn钩子的功能就是当某种版本库事件(删除文件.上传文件.修改文件名

利用SVN钩子同步程序注意事项

暂时记下,此文章内容稍后验证. 前言:其实利用SVN实时同步到WEB服务器即时展现出来的文章已经到处都是,但是我在做的时候 还是有不少的小问题,很多文章也没有提出来过,还有同步也是,我还是记录下自己做过的尤其是一些细节,时间一长又会忘掉了. 同步程序思路:用户提交程序到SVN,SVN触发hooks,按不同的hooks进行处理,这里用到的是post-commit,利用post-commit到代码检出到SVN服务器的本地硬盘目录,再通过rsync同步到远程的WEB服务器上. 知识点:1.SVN的ho

svn学习之一(svn独立服务器搭建)svn钩子了解

SVN实战笔记#####################################################xingxing qq:1218761836 qq群:150181442##################################################### SVN实战  目录SVN实战    1一.SVN简介    1二.SVN运行方式    12.1 svn的访问模式3种    1三.SVN数据格式    23.1 svn 档案库数据格式    2四.

使用SVN钩子运行PHP更新服务器代码的注意事项

想通过本地提交代码到SVN服务器,同时同步测试服务器的代码 使用SVN钩子,运行服务器的php文件 代码如下: <?php header("Content-Type: text/html; charset=utf-8"); header("Cache-Control:no-cache,must-revalidate"); $username = '用户名'; $password = '密码'; $target_dir = '路径'; exec("su

svn钩子自动化同步代码提交任务

##############################################################第一种方式:svn服务端  也是rsync的客户端web        是rsync的服务端svn服务端执行:[[email protected] ~]#sh yum-svn02.sh[[email protected] ~]#mkdir /var/www/bbs -p[[email protected] ~]#svn checkout http://192.168.13.

svn钩子(hooks)

首先你需要搭建出自己的svn环境出来,并能成功导入导出,并且了解svn,这是看这篇文章的前提.... 出于公司开发部需要svn同步更新服务器代码,需要用到svn钩子(hooks)技术,以前从来没听过,没办法只能google了,google半天再一次认同了一个道理:天下文章一大抄啊,东拼西凑终于算是完成了(为啥说算是呢?svn太强大了我所做的只是一点点),不多说了,上例子: 我们公司的部署很简单(svn服务和web服务在同一台主机上): 开发 ----- svn(存储)---- 线上服务器 以前是

svn+钩子程序+rsync 自动化同步代码

svn+钩子程序+rsync 自动化同步代码实验环境如下:     IP地址            服务器功能             路径                           同步机制192.168.3.206          svn               svn路径:/data/svn                 rsync客户端192.168.3.210          代码服务器        代码目录:/data/html               rs

使用svn钩子脚本控制svn库的实时备份

Svn镜像库实时同步实现 一, 配置rsync的同步机制先实现能手动同步 环境:svn源码库 192.168.115.120 Svn镜像库 192.168.115.121 1,在源码库中配置rsync服务 (配置文件默认没有需要手动建立 /etc/rsyncd.cong) 上面 [ UGOR]就是要更新的模块,然后启动服务 rsync –deamo查看服务状态lsof –I 873 注:认证账户格式为 用户:密码,文件权限为 600, (rsync.pass) 2,在镜像库中同步内容执行 rsy

centos7配置svn钩子hooks脚本自动同步代码到项目目录

由于项目需要,svn提交后的代码希望再测试服务器上测试,每次提交后还要手动去svn update一次 十分麻烦,配置好svn钩子以后就省去了这些麻烦. 进入svn版本库目录找到hooks目录找到文件post-commit.tmpl 复制出一个命名为post-commit的文件,并修改权限为可执行权限 命令如下: cd /var/data/svndata/myproject/hooks cp post-commit.tmpl post-commit chmod 755 post-commit vi