如何利用SVN钩子自动更新网站
钩子是什么?其实和回调是一个概念,当某个事情发生时就会调用你提供的方法
利用好SVN钩子可以大大的方便你的开发
比如web开发人员,每次提交了代码都需要手动到服务器更新下代码才能看到效果。
今天我就教大家如何利用钩子自动化更新。
SVNBucket,钩子配置页面如果你还没有SVNBucket帐号,点击注册
如上图,点击添加钩子,我们需要填入链接、token、触发条件
链接:就好像我们的回调方法,在你提交代码后就会自动调用这个链接,你收到调用后就可以执行代码更新了。
token:是一个可选的参数,在调用链接时会带上这个参数,可以用来检查调用是否来自SVNBucket。这里可以随意填写一个自己想要的参数就行了
触发条件:触发条件我们选择提交后,这样代码提交之后就会调用链接。
那么我们的链接填写什么呢?你需要自己写一个http服务,用来接收调用。
下面我以Python代码为例(PHP版本看文章最后),写一个简单的http服务来接收调用:
自动更新处理服务这里我们用python的bottle框架搭建了一个简单的http服务来处理代码更新。根据这个可以自己实现一个其他语言的版本
POST请求会带上的参数有:
event:事件名字,有start-commit(提交前), post-commit(提交后)
token:校验字符串
rev:版本号( post-commit 事件才有值)
log:提交描述内容( post-commit 事件才有值)
user:提交者用户名
在收到请求后我们就执行了一个shell脚本,这个shell脚本就是调用svn update去更新我们的代码了。
假设你的服务器IP是119.29.35.39,http服务的端口是8080,那么我们就应该配置上面的链接地址为:http://119.29.35.39:8080/afterCommit
钩子的配置配置好了后,我们可以点击测试按钮进行测试,这样就会手动的触发一次链接请求,并且在下面区域显示调用记录、是否成功
调用记录好了,一个简单的钩子就配置完成
PS:热心网友提供的PHP版本