如何利用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版本

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,107评论 19 139
  • iOS 开发 SVN 版本控制器 更多技术交流请加群 iOS技术联盟 27512466 SVN是Subversio...
    Sunny_Fight阅读 8,876评论 7 63
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,007评论 25 709
  • 爱美的姑娘 学会了化妆和美瞳 艳唇上的鼻孔 呼吸得发烫 受宠的黑发糟蹋成枯松 戳出了一个个通光的耳洞 剔除的然眉留...
    零更一阅读 168评论 0 4
  • 其实这几天积攒了几个小标题,有想写的冲动。这几天一直在整理因为之前备考而拉下来的日记录,从昨天做到今天,复盘下来才...
    岛屿书阅读 3,246评论 0 1