早年的SVN的hook解释文档,祭奠渐渐被遗忘的SVN

面对Git的强势,SVN的翻身的希望越来越渺茫。作为开源版本控制里面的佼佼者,SVN也曾经也伴随了一波人的成长。而现在的市场,越来越多的人已经找不到使用SVN的理由了。以下SVN hook的各个脚本的使用也是几年前所作的笔记,送给仍旧坚守使用svn的人,希望它还有点用处。


早年的SVN的hook解释文档,祭奠渐渐被遗忘的SVN

SVN hook脚本位于每个仓库的的hooks目录下面,进入此目录,可以看到目录内已经存在各个Hook脚本的模板,使用某个hook时,只需要修改对应的文件名与文件内容即可。

模板名称如下:

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

下面对每个钩子的功用 做一个说明!

start-commit

执行时间: 事务创建之前

用处: 通常用来检查用户权限等

参数:

$1: 版本库路径

$2: 提交的用户名

返回值:

0: 成功

非0: 失败,打印错误输出

pre-commit

执行时间: 事务完成,但未提交

用处: 对代码检查等

参数:

$1: 版本库路径

$2: 事务名称

返回值:

0: 成功

非0: 终止提交,回滚版本

post-commit

执行时间: 事务完成,版本提交成功

用处: 版本成功提醒,如发邮件或备份版本库

参数:

$1: 版本库路径

$2: 提交成功之后生成的版本号

返回值:

0: 成功

非0: 失败,打印失败信息

pre-revprop-change

执行时间: 修改版本属性之前

用处: 如修改已经提交的注释信息等

参数:

$1: 版本库路径

$2: 需要修改属性的修定版本

$3: 认证用户

$4: 被修改的属性名称

$5: 变更描述:A (添加的),D (删除的)或M (修改的)

返回值:

0: 成功

非0: 失败,打印失败信息

注意: 此钩子默认是拒绝所有属性修改的,所以如果需要修改属性,则需要此hook返回0值

post-revprop-change

执行时间: 修改版本属性之后执行

用处: 修改版本属性成功提醒,如发邮件

参数:

$1: 版本库路径

$2: 需要修改属性的修定版本

$3: 认证用户

$4: 被修改的属性名称

$5: 变更描述:A (添加的),D (删除的)或M (修改的)

返回值:

0: 成功

非0: 失败,打印失败信息

关于lock的钩子,在日常使用中比较少见,所以便不再详细说明,如有需要,可访问svn 的中文文档,里面有详细的介绍:http://www.svn.org.cn/1060.html


分享到:


相關文章: