• svn钩子(hooks)自动部署代码到web目录


     
    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/li956732806/article/details/71158869
     

    web目录:/hoem/www/project
    svn版本库目录:/svn/project

    1.cd /svn/project/hooks
    目录下
    2.新建post-commit,执行vim post-commit 内容如下

    #!/bin/sh
    REPOS="$1"
    REV="$2"
    DIR="/home/www/project"
    export LANG=en_US.UTF-8
    CURDATE='date'
    echo "Code Deployed By at $CURDATE,$REPOS,$REV" >> /svn/code_deploy.log
    svn update $DIR --username admin --password 123456
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    接着

    chmod +x post-commit
    • 1

    3.到/home/www下checkout项目

    svn checkout svn://127.0.0.1/project/
    • 1

    到此步骤接受,在客服端提交代码更新就会自动同步到web目录了。
    附上svn钩子类型
    服务器钩子:
    svn服务端有9种钩子,分别是:
    A.关于锁定的2种
    a1.pre-lock
    对文件进行加锁操作之前执行该脚本
    a2.post-lock
    对文件进行加锁操作之后执行该脚本

    B.关于解锁的2种
    b1.pre-unlock
    对文件进行解锁操作之前执行该脚本
    b2.post-unlock
    对文件进行解锁操作之后执行该脚本

    C.关于提交的3种

    c1.start-commit
    在客户端还没有向服务器提交数据之前,即还没有建立 Subversion transaction(缩写为 txn) 之前,执行执行该脚本
    c2.pre-commit
    在 Subversion transaction 完毕之后,在提交之前,执行该脚本

    c3.post-commit
    在提交完成,成功创建版本之后执行该钩子,提交已经完成,不可更改,因此本脚本的返回值被忽略。

    D.关于属性的2种

    d1.pre-revprop-change
    在修改 revision 属性之前,执行该脚本

    d2.post-revprop-change
    在修改 revision 属性之后,执行该脚本。因为修改稿已经完成,不可更改,因此本脚本的返回值被忽略(不过实际上的实现似乎是该脚本的正确执行与否影响属性修改)

    客户端钩子:
    tortoise svn客户端有6中钩子,分别是:
    A.关于提交的

    a1.start commit hook

    a2.pre-commit hook

    a3.post-commit hook

    B.关于更新的

    b1.start update hook

    b2.pre-update hook

    b3.post-update hook

  • 相关阅读:
    RPC服务和HTTP服务对比
    常用工具地址
    maven教程
    【springboot】知识点总结
    [JZOJ4272] [NOIP2015模拟10.28B组] 序章-弗兰德的秘密 解题报告(树形DP)
    [NOIP2015模拟10.22] 最大子矩阵 解题报告(单调栈)
    [NOIP2015模拟10.27] 挑竹签 解题报告(拓扑排序)
    [NOIP2015模拟10.27] [JZOJ4270] 魔道研究 解题报告(动态开点+权值线段树上二分)
    [NOIP2015模拟10.22] 最小代价 解题报告 (最小生成树)
    BZOJ4479 [JSOI2013] 吃货jyy 解题报告(三进制状态压缩+欧拉回路)
  • 原文地址:https://www.cnblogs.com/lxwphp/p/9755718.html
Copyright © 2020-2023  润新知