什么是SVN Hook
SVN hook 脚本,大都译为SVN钩子,提供了一种非常强大而且灵活的方式把代码库的各种事件与自定义操作联系起来。举个例子来说,代码提交到服务器以前要进行基于自定义规则的审查和检查,审查通过则继续提交,审查失败则拒绝提交。
客户端Hook VS 服务器端Hook
服务器端Hook
服务器端Hook脚本程序在服务器上执行,钩子可以调用bat批处理文件(在Windows系统中)、bash脚本、可执行文件或者一些类似于perl、python等的脚本,一共提供了一下9种情况来实现不同阶段的自定义操作:
关于锁定的2种
pre-lock
post-lock
关于解锁的2种
pre-unlock
post-unlock
关于提交的3种
start-commit
pre-commit
post-commit
关于属性的2种
pre-revprop-change
post-revprop-change
使用svn admin create命令创建出来的代码仓库,根目录下面有个hooks文件夹,里面已经预置了上述几种钩子脚本的模板,看了一下里面是bash脚本,如下图所示。如果要自定义其中的某一个,比如pre-commit.tmpl,把该文件拷贝一份并且重命名为pre-commit,注意要有可执行权限!
svn hooks 文件夹
客户端Hook
svn的客户端也具备Hook的功能,比如windows上常用的T