哈德森 - 我怎样才能做“SVN清理”?

时间:2013-11-26 13:51:31

标签: jenkins svn hudson code-cleanup svn-checkout

我在SVN存储库的目录中进行了结帐。该项目需要花费大量时间进行全面检查。因此,在创建Hudson工作时,我需要按顺序执行此操作:

  1. 清理目录(这解决了一些模棱两可的问题,例如:“Hudson工作区在构建时被锁定”)
  2. 还原更改
  3. 更新
  4. 我在Hudson职位创建表单中对签出策略的选择是:

    • 尽可能使用svn update,并在更新前使用'svn revert'
    • 尽可能使用'svn switch'
    • 尽可能使用'svn update'
    • 清理结帐文件夹,然后结帐
    • 首先删除未版本控制/忽略的文件,然后执行'svn update'
    • ,以模拟清理结帐
    • 清理工作区,然后结帐(已消除)

    我案件的正确选择是什么?

    非常感谢你!

2 个答案:

答案 0 :(得分:2)

我会选择“尽可能使用svn更新,在更新前使用'svn revert'”。如果这还不够,请查看EnvInject Plugin。它可以在 SCm结帐之前运行脚本。在Subversion插件接管恢复和更新之前,您可以使用它为您的作业运行svn清理。警告,您需要在构建服务器上安装某种SVN命令行客户端。

答案 1 :(得分:2)

如果您的构建正确完成,您应该能够尽可能多地使用'svn update 。这是更新文件的最快方法。这意味着不会修改已提交的文件,也不会将构建工件放在会干扰构建过程的目录中。在Java商店中,只需将所有构建的对象保存在子目录中(我们使用target来匹配Maven,但其他人使用builddiet)并且不使用其他的过程

大多数人在构建步骤中执行 clean 。理论上,这不应该是必要的,这样做会延长构建时间。构建的想法不是做任何不必要的工作。如果未更改源文件,则不需要重建相应的目标文件。但是,Java的编译速度非常快,大多数Java项目只是简单地擦除构建目录。在C项目中,不删除旧对象更好,因为它确实减少了构建时间。

如果构建过程出现问题尽可能使用'svn update'无法正常工作,则应修复构建过程。但是,我们的旧Jenkins服务器上有一些项目确实存在问题,而且它们根本没有足够的更新来担心它。对于那些,我总是签出一份新的副本。这花费的时间最长,但是如果您的构建过程出现问题,我不会费心使用首先删除未版本化/修改过的文件来模拟干净的结帐首先使用svn revert < / em>的。这些可能会导致更新冲突,并导致您的构建出现问题。要么使构建正常工作,要么进行干净的结帐。