Svn 生成服务器轮询与事件驱动生成

Svn 生成服务器轮询与事件驱动生成,svn,build-process,hudson,build-server,Svn,Build Process,Hudson,Build Server,为什么生成服务器轮询更改,而不是SVN触发事件(或提交后步骤),通知生成服务器启动生成?轮询更改似乎效率极低,尤其是当项目数量增加且轮询周期设置为非常低的值(例如30秒)时。Hudson还支持通过提交后触发器生成。请参阅: 提交后挂钩 哈德逊可以投票颠覆 用于更改的存储库,以及 这是合理有效的,这可以 每分钟只发生一次, 所以你可能还得等一等 哈德逊探测到变化前一分钟 要减少此延迟,可以设置 post-commit钩子使Subversion 存储库可以随时通知Hudson 对该存储库进行了更改

为什么生成服务器轮询更改,而不是SVN触发事件(或提交后步骤),通知生成服务器启动生成?轮询更改似乎效率极低,尤其是当项目数量增加且轮询周期设置为非常低的值(例如30秒)时。

Hudson还支持通过提交后触发器生成。请参阅:

提交后挂钩

哈德逊可以投票颠覆 用于更改的存储库,以及 这是合理有效的,这可以 每分钟只发生一次, 所以你可能还得等一等 哈德逊探测到变化前一分钟

要减少此延迟,可以设置 post-commit钩子使Subversion 存储库可以随时通知Hudson 对该存储库进行了更改。 要执行此操作,请放入以下脚本 在提交后文件中


(有Linux/Windows的示例。)

通常,构建计划在指定的时间间隔开始,例如每天凌晨3点。可以设置一些逻辑来查看是否有更改,然后只构建项目,但通常不进行检查,每天都进行构建(夜间构建)

至于你的建议,这是一个很好的建议,我想说的是,在每一次承诺的基础上启动一个构建看起来是不可行的。很多时候,开发人员不是一次性提交他们的更改,而是更喜欢增量签入。此外,它还可以让您安心地知道构建过程何时开始,这样您至少有机会在错误提交的情况下整理事情。根据您的建议,错误的提交将导致错误的构建

轮询更改似乎效率极低,尤其是当项目数量增加且轮询周期设置为非常低的值(例如,30秒)时


轮询效率低下,而且根本无法扩展。如果您的VCS支持提交后挂钩,您应该更喜欢这种机制。Hudson公开一个URL来触发构建,并从提交后脚本将其设置为wget(并配置适当的静默期)。

您确定所有构建服务器都这样做吗?也许只有编码不好的才有。看一看——这可能会回答你的问题。首先,持续集成意味着持续构建,最终在每次更改之后,而不是每天一次(所谓的每日构建)。然后,Hudson有一段安静的时间,允许在提交后延迟构建(Hudson将在触发构建之前等待N秒)。最后,我必须说,进行非原子提交是一种非常糟糕的做法。