old*_*bam 6 svn pre-commit-hook
我有一个SVN的预提交钩子,它运行错误检查程序并在出现问题时中止提交.如果出现问题,stderr将重定向到启动提交的用户.但我想从错误检查程序发送用户输出,即使没有发现问题,因此通知用户错误检查程序运行并发现没有问题.如何使用SVN预提交钩子?
Subversion钩子吃他们的STDOUT.运行脚本后,没有STDOUT.您甚至无法让预提交脚本将STDOUT发送到另一个进程.
但是在预提交钩子内部,STDOUT仍然存在并且仍然可以被重定向.例如,我的钩子包含一个由几行Unix命令行实用程序组成的shell脚本.每个命令行实用程序都有一个STDIN和一个STDOUT,我可以从一个管道到另一个管道.但是,一旦该钩子脚本完成执行,就没有STDOUT.
另一件事是没有办法通过钩子范例来传达STDOUT.Subversion不提供任何类型的通信链接.STDERR有一个链接,但前提是钩子本身失败.这是一个预提交钩子,我怀疑你故意想要失败这个钩子只是为了给用户报告.
你可以做的是使用其他通知方法.有人建议发电子邮件.您可以运行提交后脚本以根据用户的电子邮件地址生成报告和电子邮件报告.我不会将此作为预提交触发器,因为您不希望事务失败,因为报告不起作用.
有些人建议您可以使用电子邮件地址映射执行提交的用户并通过电子邮件发送给用户.我不会这样做,因为用户只会忽略该电子邮件.他们已经从各种流程中收到了数十封甚至数百封电子邮件,提醒他们注意这个或那个.
我建议使用像Hudson这样的产品进行连续构建,并将此报告由Hudson生成并发布在Hudson生成的构建页面上.这样,开发人员可以返回并检查报告.实际上,Hudson已经有各种插件可以进行错误检查并生成各种漂亮的报告和图形(通常使用findbugs或其他类似项目).
其中一个更有趣的插件是为成功构建,修复错误和警告等奖励积分的游戏.它提供了一个排行榜,因此开发人员可以将他们的分数与其他开发人员进行比较.我从来没有使用它,但是Hudson用户组的一些人说开发人员在他们的分数上变得非常有竞争力.
| 归档时间: |
|
| 查看次数: |
2440 次 |
| 最近记录: |