【问题标题】:how to specify order of vcs roots checkout in teamcity v8.1.5如何在 teamcity v8.1.5 中指定 vcs 根结帐的顺序
【发布时间】:2018-01-27 20:29:12
【问题描述】:

我正在使用 teamcity v8.1.5。 我在某处在线阅读我认为 vcs 根目录是根据它们在版本控制设置中列出的顺序签出的,但事实并非如此。

例如 版本控制设置的 vcs 根目录如下:

一个

b

c

当我运行构建配置时,构建日志将结帐显示为:

c

b

一个

然后我分离一个,重新附加回来,这样列表就变成了

b

c

一个

但运行另一个干净的结帐仍然会导致原始订单

c

b

一个

是否有一些内部逻辑决定了 vcs 根结帐的顺序以及如何配置该顺序?

谢谢

为什么我需要这个

我在有多个项目存储库的环境中工作,这样一个项目需要另一个项目的源代码(检出到同一个目录中)来构建。复杂的部分是两个存储库中都存在具有相同路径/名称的某些文件,在某些情况下项目会使用它自己的,而在另一种情况下,它需要其他存储库(因此定义了是否替换签出文件的特定顺序在第二次回购结帐时)。重叠文件不是实际的源代码,而是构建/配置文件,因此将它们重命名不同是没有意义的。

我很清楚这不是一个好习惯,但这是我继承的,优先级是在重构源结构之前让它们构建。

解决方法

我现在正在解决这个问题,方法是改进最后一次 vcs 结帐的结帐规则以忽略特定文件,这样它就不会在我不想要的时候替换文件。 简单地通过 vcs 结帐的顺序来控制它仍然会有所帮助。

谢谢

【问题讨论】:

  • 没有关于结帐顺序的保证。您能否提供更多信息,说明您为什么需要特定订单?
  • “我在某处在线阅读”——你可能读错了;最好有链接,看看作者的意思。
  • 我编辑了关于我为什么需要这个以及我当前的解决方法的问题。 @sferencik:抱歉,我没有实际链接,这只是我不久前读到的,当时不需要,所以我没有费心保存它。可能是误读或不正确的印象,改写了我原来的 cmets
  • 我认为您的解决方法是合理的。我怀疑你能找到更好的解决方案。

标签: version-control teamcity vcs-checkout


【解决方案1】:

我会使用结帐规则,因此每个 repo 都包含在自己的文件夹中,没有任何机会与其他 repos 重叠内容。

对于 repo A VCS Root:

+:. => A

对于 repo B VCS Root:

+:. => B

对于 repo C VCS Root:

+:. => C

变成:

%system.teamcity.build.checkoutDir%/A

%system.teamcity.build.checkoutDir%/B

%system.teamcity.build.checkoutDir%/C

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-19
    • 1970-01-01
    • 2010-12-06
    • 2016-07-13
    • 1970-01-01
    • 2011-06-10
    • 2016-01-14
    • 1970-01-01
    相关资源
    最近更新 更多