jenkins - Hudson - 我该怎么做 "SVN clean up"?

标签 jenkins svn hudson code-cleanup svn-checkout

我已经在 SVN 存储库的目录中进行了 checkout 。该项目需要花费大量时间才能完全检查。因此,在创建我的 Hudson 工作时,我需要按顺序执行以下操作:

  1. 清理目录(这可以解决一些不明确的问题,例如:“Hudson 工作区在构建时被锁定”)
  2. 恢复更改
  3. 更新

在 hudson 就业创造表中,我对 checkout 策略的选择是:

  • 尽可能使用 svn update,更新前使用“svn revert”
  • 尽可能使用“svn switch”
  • 尽可能使用“svn update”
  • 清理结帐文件夹,然后结帐
  • 通过首先删除未版本化/忽略的文件,然后“svn update”来模拟干净 checkout
  • 清理工作区,然后结帐(已消除)

什么是适合我的情况的正确选项?

非常感谢!

最佳答案

如果您的构建正确完成,您应该能够简单地尽可能使用“svn update”。这是更新文件的最快方法。这意味着不要修改提交的文件,或者将构建工件放置在会干扰构建过程的目录中。在 Java 商店中,只需将所有构建的对象保存在子目录中(我们使用 target 来匹配 Maven,但其他人使用 builddiet)不妨碍流程的其余部分。

大多数人都会将清理工作作为构建步骤的一部分。从理论上讲,这应该是没有必要的,并且这样做会延长构建时间。构建的想法是不做任何不必要的工作。如果源文件未更改,则不需要重建相应的目标文件。然而,Java 的编译速度非常快,大多数 Java 项目只是将构建目录清除干净。在 C 项目中,不删除旧对象会更好,因为它确实减少了构建时间。

如果您的构建过程存在问题,尽可能多地使用“svn update”无法工作,您应该修复您的构建过程。然而,我们旧的 Jenkins 服务器上有几个项目确实存在问题,而且它们根本没有更新到足以担心的程度。对于这些,我总是 checkout 一份新的副本。这需要最长的时间,但如果您的构建过程出现问题,我不会麻烦使用通过首先删除未版本化/修改的文件来模拟干净的 checkout 首先使用 svn revert.这些可能会导致更新冲突,并导致您的构建出现问题。要么让构建正常工作,要么进行干净的检查。

关于jenkins - Hudson - 我该怎么做 "SVN clean up"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20218914/

相关文章:

deployment - 如何使用 Powershell 和 Hudson 构建并部署到 Windows Azure?

hudson - 作为构建的一部分,重新​​配置并重启 Hudson/Jenkins slave

hudson - 如何在 Jenkins 中保留变量值

jenkins-cli 在 Cloudbees : "no such job" 上构建

linux - 需要哪个插件才能让 docker.build 在 Jenkins 中工作?

svn - 如何将 svn 项目导出到另一个 svn 存储库?

svn - 如何忽略文件夹而不将其从我的存储库中删除

jenkins - Jenkins 文件中单个阶段内的多个 when 子句

powershell - 通过 powershell 在 jenkins 中使用 AnsiColor

linux - 简单的 svn post-commit-hook 使用更改的文件更新目录