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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112853.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • STM32单片机介绍_单片机智能控制DIY

    STM32单片机介绍_单片机智能控制DIYSTM32库函数开发系列文章目录第一篇:STM32F103ZET6单片机双串口互发程序设计与实现第二篇:最简单DIY基于STM32单片机的蓝牙智能小车设计方案第三篇:最简单DIY基于STM32F407探索者开发板的MPU6050陀螺仪姿态控制舵机程序第四篇:最简单DIY基于STM32F407探索者开发板和PCA9685舵机控制模块的红外遥控机械臂控制程序第五篇:注释最详细、代码最简单的STM32+摄像头+显示屏的颜色跟踪电路软硬件方案第六篇:最简单DIY基于STM32单片机的WIFI智能小车设计

    2022年10月17日
  • preference用法for_notification用法

    preference用法for_notification用法PreferenceFragment引入在Android3.0之前,设置界面使用PreferenceActivity,在Android3.0之后,官方推荐使用PreferenceFragment,对应于碎片化技术。使用新建Fragment继承PreferenceFragment,加载选项配置xml文件。publicstaticclassNotificationPreferenceFr…

    2022年9月7日
  • c++面试基本问题_面试结果一般要等几天

    c++面试基本问题_面试结果一般要等几天1.    面向对象的程序设计思想是什么?答:把数据结构和对数据结构进行操作的方法封装形成一个个的对象。 2.    什么是类?答:把一些具有共性的对象归类后形成一个集合,也就是所谓的类。 3.    对象都具有的二方面特征是什么?分别是什么含义?答:对象都具有的特征是:静态特征和动态特征。静态特征是指能描述对象的一些属性;

    2022年10月3日
  • git拉取代码冲突了怎么解决_github拉取代码慢

    git拉取代码冲突了怎么解决_github拉取代码慢问题描述在idea通过git从develop分支拉取最新代码时,又遇到了git冲突,特此记录一下原因分析:大部分原因都是其他同事更改了某些文件然后本地也更改了同样的文件导致冲突,所以每天上班先拉取一下最新代码,这样会大大减少冲突发生的可能(别问我怎么知道的)解决方案:如下图所示:我们点击merge去合并即可,解决冲突,不建议直接选择acceptyours或者accepttheirs会导致代码覆盖…

    2022年10月20日
  • Linux下CMake简明教程

    Linux下CMake简明教程Linux下使用CMake的教程

    2022年5月27日
  • oleDbCommand访问Excel

    oleDbCommand访问ExceloleDbCommand访问Excel:_oleCmdSelect=newOleDbCommand(“SELECT*FROM[Sheet1$A2:A5]”,_oleConn);objValue=_oleCmdSelect.ExecuteScalar();usingSystem;usingSystem.Collections.Generic;usingS…

    2022年5月12日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号