2009-10-16 44 views
3

在我工作的地方,我们已经开始引入适当的SVN钩子,“正确的”意思是“做大量的策略检查”。目前,我们的政策由启用Perl :: Tidy检查的Perl :: Critic组成。但是,特别是后者需要花费很多时间才能触及多个文件,SVN在提交完成后才会返回。在SVN post-commit挂钩中保存时间?

有什么办法可以在不牺牲策略检查的情况下节省一些时间在提交后的钩子?

回答

1

如果您希望提交失败,如果钩子显示“no”,提交必须等待钩子完成其检查。

除了加速检查,我什么也看不到。 (除了旧的口头禅:经常提交,那么你不会一次提交这么多文件)

3

如果你只需要一些报告(如错误列表),那么你可以使用Continious Intergation系统运行一些提交后的动作。这个系统允许在源代码管理系统发生变化后采取任何行动。下面是示例场景:

  • 有的一个承诺SVN仓库
  • 一段时间后,CC开创这一变化,并运行该脚本:
    • 从SVN
    • 获取最新版本
    • 运行检查,如Perl: :评论家和Perl ::整洁
  • 如果任何检查失败则
    • 创建详细的错误报告(可从网页)
    • 发送电子邮件通知,如果有必要

有很多很好的Continious Intergation系统。我喜欢Hudson

2

这是另一个基于分支的开发可能有用的地方。本质上,你为每个你想要做的任务创建一个新的分支。该分支是免除质量检查,但合并到trunk或其他什么都不是。所以你的日常工作速度很快,合并的速度很慢。通过组合一个机器人为您完成这项任务,您可以减轻这种痛苦。