【发布时间】: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