说明:每个hooks钩子脚本的模板(以.tmpl)中对每个脚本的基本用法,如传递的参数等都有较详细的介绍。
以下转自互联网
hooks简介
钩子脚本在每个repos的hooks目录下面。
每个里面都有模板,名字如下:
post-commit.tmpl post-revprop-change.tmpl pre-commit.tmpl pre-revprop-change.tmpl start-commit.tmpl
post-lock.tmpl post-unlock.tmpl pre-lock.tmpl pre-unlock.tmpl
下面对每个钩子的功用 做一个说明!
1)start-commit — 开始提交的通知
描述
start-commit 在开始事务之前执行。通常用来确定用户是否有提交权限。
如果 start-commit 钩子程序返回非零值,提交就会在创建事务之前停止,stderr 的任何输出都会返回到客户端。
输入参数
传递给你钩子程序的命令行参数,按照顺序是:
1.版本库路径
2.认证过的尝试提交的用户名
3.Colon-separated list of capabilities that a client passes to the server, including depth, mergeinfo, and log-revprops (new in Subversion 1.5).
2)pre-commit — 在提交结束之前提醒。
描述
pre-commit 钩子在事务创建新版本之前运行。通常这个钩子是用来保护因为内容或位置(例如,你要求所有到一个特定分支的提交必须包括一个 bug 追踪的 ticket 号,或者是要求日志信息不为空)而不允许的提交。
如果 pre-commit 钩子返回非零值,提交会终止,提交事务被删除,所有 stderr 的输出会返回到客户端。
输入参数
传递给你钩子程序的命令行参数,按照顺序是:
1.版本库路径
2.提交事务的名称
3)post-commit — 成功提交的通知。
描述
post-commit 钩子在事务完成,创建新版本后执行。大多数人用这个钩子来发送关于提交的描述性电子邮件,或者用来提醒其它工具(例如问题跟踪),发生了提交动作。一些配置也使用这个钩子触发版本库的备份进程。
如果 post-commit 钩子返回非零值,提交不会终止,因为它已经完成。然后,所有 stderr 的输出都会返回到客户端,让诊断钩子的失败更容易。
输入参数
传递给你钩子程序的命令行参数,按照顺序是:
1.版本库路径
2.提交创建的修订版本号
4)pre-revprop-change — 修订版本属性修改的通知。
描述
pre-revprop-change 钩子在修改版本属性修改之前,正常提交范围之外被执行。不象其它钩子,这个钩子默认是拒绝所有的属性修改,钩子必须实际存在,并且返回一个零值,这样才能修改属性。
如果 pre-revprop-change 钩子不存在,不可执行,或返回非零值,就不会修改属性,所有的 stderr 的输出会返回到客户端。
输入参数
传递给你钩子程序的命令行参数,按照顺序是:
1.版本库路径
2.要修改属性的修订版本
3.企图修改属性的认证用户名
4.属性名称已修改
5.变更描述:A (添加的),D (删除的)或M (修改的)
此外,Subversion 通过标准输入将属性的新值传递给钩子程序。
5)post-revprop-change — 修订版本属性修改成功的通知
post-revprop-change 钩子会在修改版本属性修改后立即执行,在提交范围之外。可以从其配对 pre-revprop-change 知道,如果没有实现 pre-revprop-change 钩子,它就不会执行。它通常用来在属性修改后发送邮件通知。
如果 post-revprop-change 钩子返回非零值,修改动作不会终止,因为它已经完成。然而,任何输出到 stderr 的内容都会返回到客户端,让诊断钩子的失败更容易。
输入参数
传递给你钩子程序的命令行参数,按照顺序是:
1.版本库路径
2.经修改属性的修订版本
3.做出修改的认证用户名
4.属性名称已修改
5.变更描述:A (添加的),D (删除的)或M (修改的)
此外,Subversion 通过标准输入将属性的前一个值传递给钩子。
6)post-revprop-change — 修订版本属性修改成功的通知
描述
post-revprop-change 钩子会在修改版本属性修改后立即执行,在提交范围之外。可以从其配对 pre-revprop-change 知道,如果没有实现 pre-revprop-change 钩子,它就不会执行。它通常用来在属性修改后发送邮件通知。
如果 post-revprop-change 钩子返回非零值,修改动作不会终止,因为它已经完成。然而,任何输出到 stderr 的内容都会返回到客户端,让诊断钩子的失败更容易。
输入参数
传递给你钩子程序的命令行参数,按照顺序是:
1.版本库路径
2.已经修改属性的修订版本
3.做出修改的认证用户名
4.属性名称已修改
5.变更描述:A (添加的),D (删除的)或M (修改的)
此外,Subversion 通过标准输入将属性的前一个值传递给钩子。
7)post-lock — 成功锁定路径的通知。
描述
post-lock 在路径锁定后执行。通常用来发送锁定事件邮件通知。
如果 post-lock 钩子返回非零值,锁定动作不会终止,因为它已经完成。然而,任何输出到 stderr 的内容都会返回到客户端,让诊断钩子的失败更容易。
输入参数
传递给你钩子程序的命令行参数,按照顺序是:
1.版本库路径
2.锁定路径的认证用户名
此外,锁定路径通过标准输入传递给钩子程序,每行一个路径。
8)pre-unlock — 路径解锁尝试的通知。
描述
pre-unlock 钩子在某人企图删除一个文件上的钩子时发生。可以用来创建哪些用户可以解锁哪些文件的策略。制定解锁策略非常重要。如果用户 A 锁定了一个文件,允许用户 B 打开这个锁?如果这个锁已经一周了呢?这种事情可以通过钩子决定并强制执行。
如果 pre-unlock 返回非零值,解锁操作会终止,任何输出到 stderr 的内容都会返回到客户端。
输入参数
传递给你钩子程序的命令行参数,按照顺序是:
1.版本库路径
2.Versioned path which is to be unlocked
3.Authenticated username of the person attempting the unlock
9)post-unlock — 路径成功解锁的通知。
描述
post-unlock 在一个或多个路径已经被解锁后执行。通常用来发送解锁事件通知邮件。
如果 post-unlock 返回非零值,解锁过程不会终止,因为它已经完成。然而,任何输出到 stderr 的内容都会返回到客户端,让诊断钩子的失败更容易。
输入参数
传递给你钩子程序的命令行参数,按照顺序是:
1.版本库路径
2.路径解锁的认证用户名
此外,解锁路径通过标准输入传递给钩子程序,每行一个路径。
阅读(1245) | 评论(0) | 转发(0) |