我在SVN存储库的目录中进行了结帐。该项目需要花费大量时间进行全面检查。因此,在创建Hudson工作时,我需要按顺序执行此操作:
我在Hudson职位创建表单中对签出策略的选择是:
我案件的正确选择是什么?
非常感谢你!
答案 0 :(得分:2)
我会选择“尽可能使用svn更新,在更新前使用'svn revert'”。如果这还不够,请查看EnvInject Plugin。它可以在 SCm结帐之前运行脚本。在Subversion插件接管恢复和更新之前,您可以使用它为您的作业运行svn清理。警告,您需要在构建服务器上安装某种SVN命令行客户端。
答案 1 :(得分:2)
如果您的构建正确完成,您应该能够尽可能多地使用'svn update 。这是更新文件的最快方法。这意味着不会修改已提交的文件,也不会将构建工件放在会干扰构建过程的目录中。在Java商店中,只需将所有构建的对象保存在子目录中(我们使用target
来匹配Maven,但其他人使用build
或diet
)并且不使用其他的过程
大多数人在构建步骤中执行 clean 。理论上,这不应该是必要的,这样做会延长构建时间。构建的想法不是做任何不必要的工作。如果未更改源文件,则不需要重建相应的目标文件。但是,Java的编译速度非常快,大多数Java项目只是简单地擦除构建目录。在C项目中,不删除旧对象更好,因为它确实减少了构建时间。
如果构建过程出现问题尽可能使用'svn update'无法正常工作,则应修复构建过程。但是,我们的旧Jenkins服务器上有一些项目确实存在问题,而且它们根本没有足够的更新来担心它。对于那些,我总是签出一份新的副本。这花费的时间最长,但是如果您的构建过程出现问题,我不会费心使用首先删除未版本化/修改过的文件来模拟干净的结帐和首先使用svn revert < / em>的。这些可能会导致更新冲突,并导致您的构建出现问题。要么使构建正常工作,要么进行干净的结帐。