【问题标题】:Hudson + How to update files from more than one branchHudson + 如何从多个分支更新文件
【发布时间】:2012-12-18 17:46:13
【问题描述】:
我正在使用带有 Hudson 的 SVN 进行构建。我在 SVN 中有两个分支,比如 Branch1 和 Branch2。我需要来自两个分支的文件进行构建。如何使用 hudson 从多个分支获取文件?如果我在 hudson SVN 插件中也提供了 branch2 url,它会给出类似 E155000 的错误:'C:\Hudson_CI\jobs\SVN_TEST\workspace' 已经是不同 URL 的工作副本;请指导。
【问题讨论】:
标签:
svn
tortoisesvn
hudson
【解决方案1】:
您不应该需要来自 2 个分支的文件来进行构建。分支是(应该是)源代码的完整副本。所以,你一开始就有根本性的错误。签出 component1 和 component2 进行构建是可以的,但是签出 的 branch1 和 branch2 >相同组件不是 SVN(或任何与 SVN 一起使用的工具)的设计方式。
但是,关于您的问题,Hudson 可以从两个(或更多)不同的位置进行检查。
当您配置Repository URL时,其下方是本地模块目录(可选)。当使用超过 1 个 URL 进行结帐时,您必须为不同的结帐提供不同的文件夹(在您的工作区下)。在你的情况下打电话给他们branch1和branch2。
结帐完成后,您可以分别通过${WORKSPACE}/branch1 和${WORKSPACE}/branch2 引用它们。
但是,如果偶然,您希望来自 2 个不同 URL 的签出文件出现在同一目录下...请阅读我的第一段。你真的必须重新考虑你在用 SVN 做什么。您仍然可以在 Hudson 中执行此操作,方法是运行 shell/批处理脚本步骤,在结帐后将 ${WORKSPACE}/branch2 内容复制到 ${WORKSPACE}/branch1。