svn钩子(hooks)自动部署代码到web目录
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
最新文章
- Storm-隔离调度器
- CMD复制文件夹
- Android延时执行的几种方法
- Mysql 调用存储过程的两种方式
- Mispelling 1510
- Data Flow ->;>; Slow Changing Dimension
- POJ 2065 SETI (高斯消元 取模)
- #pragma warning (default : n)
- WPF FindName()查找命名注册的元素
- PHP中$_FILES的使用方法及注意事项说明
- BZOJ 2190: [SDOI2008]仪仗队( 欧拉函数 )
- Markdown 代码测试
- .net webapi项目中支持session
- lnmp 系统500 报错
- RecylerView动画组件RecylerViewAnimators
- 2.11 C++转型构造函数
- Go 缓冲信道和非缓冲信道
- .NET MVC 保存Session值,6位数验证码
- java监听器(Listener)学习笔记
- bzoj 3277 串 &;&; bzoj 3473 字符串 &;&; bzoj 2780 [Spoj]8093 Sevenk Love Oimaster——广义后缀自动机
热门文章
- NOIP2017普及组初赛总结
- 在ubuntu中安装phpstorm
- CPA专业阶段单科成绩有5年有效期限,即从通过科目考试的第一年算起
- 转:Linux fork与vfork的深入分析
- 《DSP using MATLAB》Problem 7.34
- Scrapy下载中间件的优先级(神踏马值越小优先级越高)
- JasperReport查看和打印报告7
- SVN 提交时文件锁定 svn: E155004: '' is already locked
- PHP jpgraph的一点小提示和方法
- element ui table 去掉边框