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

posted on 2018-08-07 00:09  -韩帅  阅读(753)  评论(2编辑  收藏  举报

导航