在SVN post-commit钩子中节省时间?

时间:2009-10-16 12:51:21

标签: svn version-control hook post-commit svn-hooks

在我的工作地点,我们已经开始引入正确的SVN钩子,“正确”意味着“进行大量的策略检查”。目前,我们的策略包括Perl :: Critic,启用了Perl :: Tidy检查。但是,特别是后者需要花费大量时间才能提交几个到多个文件,SVN在提交后挂钩时才会返回。

有没有什么办法可以在不牺牲策略检查的情况下在post-commit hook中节省一些时间?

3 个答案:

答案 0 :(得分:3)

如果您只需要一些报告(如错误列表),那么您可以使用Continious Intergation系统运行一些提交后操作。此系统允许在源控制系统发生更改后执行任何操作。以下是示例场景:

  • 有人提交SVN存储库
  • 过了一段时间后,CC发现了这个变化并运行了脚本:
    • 从SVN获取最新版本
    • 运行Perl :: Critic和Perl :: Tidy
    • 之类的检查
  • 如果检查失败则
    • 创建详细的错误报告(可从网站获取)
    • 必要时发送电子邮件通知

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

答案 1 :(得分:2)

这是另一个基于分支的开发可能有用的地方。基本上,您为每个要执行的任务创建一个新分支。分支免于质量检查,但合并到trunk或其他任何不合格。因此,您的日常提交速度很快,合并起来很慢。你可以通过组合机器人为你完成这项任务来减轻痛苦。

答案 2 :(得分:1)

如果你想让提交失败,如果钩子说“不”,则提交必须等待钩子完成检查。

除了加快检查速度外,我看不到你能做什么。 (除了旧的口头禅:经常提交。然后你不会一次提交这么多文件。)