上篇文章说到通过Topo管理研发项目代码,这里需要一个前提就是安装了支持代码历史的实时提取,这个功能是通过SVN钩子(hook)实现的。目前Subversion有已实现了五种钩子:
-
start-commit
它在提交事务产生前已运行,通常用来判定一个用户是否有权提交。 -
pre-commit
在事务完成提交之前运行,通常这个钩子是用来检查、判断因为内容或位置而不允许的提交。 -
post-commit
它在事务完成后运行,创建一个新的修订版本。 -
pre-revprop-change
因为Subversion的修订版本属性不是版本化的,对这类属性的修改(例如提交日志属性 svn:log)将会永久覆盖以前的属性值。因为数据在此可能丢失,所以Subversion提供了这种钩子(及与之对应的post-revprop- change)。 -
post-revprop-change
我们在前面提到过,这个钩子与pre-revprop-change对应,在修改之后触发。
我们需要的是post-commit钩子,Topo在Svn库上,会给出钩子的安装说明,参考下图:
Topo界面上的钩子安装说明点击这个说,可以出现详细的脚本说明:
钩子脚本说明可以看到,在Linux和Windows下脚本文件名不同,Linux下为post-commit,而Windows下为post-commit.bat,都需要放置在SVN库的hooks目录下。脚本文件的内容,也依据服务器类型不同有少许不同,但基本上就是一两行代码就搞定了,还是比较简单的,需要注意的就是提前安装好curl,大部分Linux下已经有curl了,但是Windows下可能需要自己安装一个curl.exe,钩子是调用了curl来和Topo服务器交互的。
安装好钩子之后,代码的提交信息就会实时进入项目管理系统了(参考前一篇文章)。
网友评论