3

在我工作的地方,我们已经开始引入适当的 SVN 钩子,“适当”的意思是“进行大量的策略检查”。目前,我们的策略包括启用 Perl::Tidy 检查的 Perl::Critic。然而,尤其是后者需要花费大量时间来提交涉及几个到多个文件的提交,并且 SVN 在提交后挂钩完成之前不会返回。

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

4

3 回答 3

3

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

  • 有人提交到 SVN 存储库
  • 一段时间后,CC 发现此更改并运行脚本:
    • 从 SVN 获取最新版本
    • 运行 Perl::Critic 和 Perl::Tidy 等检查
  • 如果任何检查失败,那么
    • 创建详细的错误报告(可从网络获得)
    • 必要时发送电子邮件通知

有很多好的Continious Intergation 系统。我喜欢哈德森

于 2009-10-16T13:05:43.287 回答
2

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

于 2009-10-16T14:56:12.863 回答
1

如果您希望在钩子说“否”时提交失败,则提交必须等待钩子完成检查。

除了加快检查速度,我看不出你能做什么。(除了古老的口头禅:经常提交。那么你就不会一次提交这么多文件。)

于 2009-10-16T12:59:57.340 回答