您的位置:首页 > 编程语言

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

2017-05-04 10:37 344 查看
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


接着

chmod +x post-commit


3.到/home/www下checkout项目

svn checkout svn://127.0.0.1/project/


到此步骤接受,在客服端提交代码更新就会自动同步到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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息