【问题标题】:Hudson - How can I do a "SVN clean up"?Hudson - 我该如何进行“SVN 清理”?
【发布时间】:2013-11-26 13:51:31
【问题描述】:

我在我的 SVN 存储库目录中进行了签出。该项目需要大量时间才能完全检查。所以在创建我的哈德逊工作时,我需要这个:

  1. 清理目录(这解决了一些模棱两可的问题,例如:“Hudson 工作区在构建时被锁定”)
  2. 还原更改
  3. 更新

在 Hudson 就业创造表单中,我对 退房策略 的选择是:

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

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

非常感谢!

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的建议。 +1
    【解决方案2】:

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

    【讨论】:

    • 感谢您的回答,但很遗憾我没有安装插件的管理员权限。谢谢+1
    猜你喜欢
    • 2011-03-05
    • 2011-09-02
    • 1970-01-01
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    • 2011-06-06
    • 2010-12-05
    • 2011-03-25
    相关资源
    最近更新 更多