阅读此篇文章你可以:
- 对SVN Hooks有一定的了解
- 获取两个最常用的SVN Hooks案例
SVN hooks介绍
Hooks 钩子,主要实现的功能就是在特定事件发生之前或者之后自动执行事先定义好的脚本代码来实现某些功能,类似于JS中的监听事件、MySQL中的触发器、Django中的signals信号等
大多数开发语言都可以用来编写hooks脚本,常用的如windows下的bat、vb,linux下的shell、python等
SVN中的hooks按照所在位置可以分为两类,客户端hooks和服务端hooks,日常使用中服务端hooks使用更广,我们也以服务端hooks介绍为主
SVN服务端hooks主要有以下9种:
pre-lock:文件加锁前执行,不常用
post-lock:文件加锁后执行,通常用来发送锁定事件通知,需要传递两个参数给hooks脚本,按照顺序依次为:1.版本库路径,2.锁定路径的认证用户名
per-unlock:文件解锁前执行,不常用
post-unlock:文件解锁后执行,通常用来发送解锁事件通知,需要传递两个参数给hooks脚本,按照顺序依次为:1.版本库路径,2.解锁路径的认证用户名
start-commit:开始提交时执行,在pre-commit
之前,通常用来确定用户是否有提交权限
pre-commit:提交之前执行,在start-commit
之后,通常用来对提交内容的检查,例如我们后边要介绍的利用pre-commit
做提交log的合规性检查,需要传递两个参数给hooks脚本,按照顺序依次为:1.版本库路径,2.提交事务的名称
post