4.3. 钩子脚本

钩子脚本是被版本库事件触发的程序,例如新修订版本的创建或未版本控制属性的修改。每一种钩子都会被告知事件的足够信息,操作的目标,触发事件的用户名。依赖于钩子的输出或返回状态,钩子程序可以继续执行,停止或以某种方式挂起。请参阅《使用 Subversion 进行版本管理》的钩子脚本部分来查看关于钩子实现的细节。

版本库的hooks目录中有一些钩子的例子脚本,这些例子脚本适合于Unix/Linux服务器,在Windows下需要修改。钩子可以是批处理文件或可执行文件,下面是用来实现pre-revprop-change钩子的例子。

rem Only allow log messages to be changed.
if "%4" == "svn:log" exit 0
echo Property '%4' cannot be changed >&2
exit 1

请注意所有发送到标准输出的东西都会被忽略,如果你希望信息出现在拒绝提交对话框中,你需要将这些信息发送到标准错误,在一个批处理文件中使用>&2实现。