【问题标题】:how to switching working copy in jenkins?如何在詹金斯切换工作副本?
【发布时间】:2013-09-27 12:07:28
【问题描述】:

我正在使用 jenkins 进行构建过程。 我用 svn url test.svn.com/branch/branch4 创建了一份工作 现在我想切换这个工作副本到 test.svn.com/branch/branch5。 在詹金斯怎么可能。

当我在 jenkins 中提供新 URL 时,jenkins 清理旧代码然后结帐。 我不想清理旧代码,我只想更新这个副本以获取更改的文件。

因为清理工作副本和签出新分支需要更多时间并且还占用网络带宽。

我还为这个问题安装了更新的 subversion 插件,但它不能满足我的要求。

如果有人对此有任何想法,请告诉我。

我也浏览过以下网址。

https://issues.jenkins-ci.org/browse/JENKINS-2556?page=com.atlassian.jira.plugin.system.issuetabpanels:changehistory-tabpanel

【问题讨论】:

  • 有没有想过在工作区手动运行 svn switch?
  • subversion 插件 1.51 运行良好,实现了我的产品构建过程自动化的目的。

标签: svn jenkins hudson svn-switch


【解决方案1】:

当您更改作业的存储库时,Jenkins 会做出最安全的假设,即存储库彼此没有关系,因此需要在结帐前清理工作区。如果它没有假设这一点,并且您在两个完全不同的项目之间进行了更改,那么可能会留下冲突的东西,这可能会导致问题。

例如, 假设 repo1 有一个文件 'dirA/myincludes'。 repo2 有'dirB/myincludes'。如果作业从 repo1 更改为 repo2,并且 Jenkins 没有清理 repo,则可能在两个不同的目录中存在冲突的 myincludes 副本:“dirA/myincludes”和“dirB/myincludes”。根据您的构建方式,使用哪个可能会产生问题,并且可能会产生截然不同的结果。

现在,如果您的目标是能够同时构建分支 4 和分支 5,为什么不为每个分支创建一个构建作业。为了便于执行此操作,当您创建新作业时,其中一个选项是将作业创建为现有作业的副本。

【讨论】:

  • jwernerny,您正在写作,但我们正在处理多项任务,并且对于每个任务我们都有单独的分支,完成后我们需要与最新同步,这就是我想切换的原因。此外 svn 服务器位于远程位置,因此新副本需要 4-5 小时,而切换需要 10-15 分钟。
【解决方案2】:
  1. subversion 插件 1.51Jenkins 中工作正常,可以从 svn 服务器更新或签出。

  2. 它还支持 switching 分支,当它找到其他分支 URL 然后现有 URL 但先决条件是本地副本不应处于 'locked' 状态否则它将清理所有内容并重新结帐。

【讨论】:

    【解决方案3】:

    正如您已经发现的那样,问题 JENKINS-2556 正是您正在寻找的。它在 2013 年 5 月 20 日发布的 subversion 插件版本 1.48 中实现。假设您安装了正确的插件版本。仔细检查您的结帐策略。它应该更新才能正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多