Chinaunix首页 | 论坛 | 博客
  • 博客访问: 465681
  • 博文数量: 122
  • 博客积分: 1403
  • 博客等级: 中尉
  • 技术积分: 1668
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-11 13:31
文章分类

全部博文(122)

文章存档

2018年(5)

2017年(12)

2014年(15)

2013年(33)

2012年(4)

2011年(53)

分类: Python/Ruby

2011-03-31 09:53:21

说明:每个hooks钩子脚本的模板(以.tmpl)中对每个脚本的基本用法,如传递的参数等都有较详细的介绍。
 
以下转自互联网
 
hooks简介

钩子脚本在每个reposhooks目录下面。
每个里面都有模板,名字如下:
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.
路径解锁的认证用户名

此外,解锁路径通过标准输入传递给钩子程序,每行一个路径。



阅读(1160) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~