svn上传文件钩子

时间:2021-06-11 19:30:45

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目录下就可以看到有这个新建的文件。