【问题标题】:TeamCity SVN Checkout rulesTeamCity SVN 结帐规则
【发布时间】:2015-01-13 13:10:55
【问题描述】:

我在SVN中有以下结构

Code
|- DEV-BusinessLayer
|- DEV-DataModel
|- DEV-Engine
|- Dev-Main
    |- src
        |-BusinessLayer
        |-DataModel
        |-Engine
        |-Engine.sln
    |- lib

在构建解决方案文件之前,我需要 SVN 将我在 DEV-Main 中的 Engine、BusinessLayer 和 Datamodel 子目录切换到 DEV-ENgine、DEV-BusinessLayer 和 DEV-DataModel。这个想法是,如果我切换,我正在开发分支上工作,如果我不切换,我在主分支上。请注意,只有一个解决方案文件。

我正在尝试在 TeamCity 中添加以下签出规则,但签出的文件不是来自正确的分支(我登录到 teamcity 服务器,获取文件并与我的手动签出进行比较)。令人不安的是,随机它是正确的版本。这些是我的结帐规则,我应该更改什么以确保正确结帐?

+:Code/DEV-BusinessLayer=>./src/BusinessLayer
+:Code/DEV-DataModel=>./src/DataModel
+:Code/DEV-Engine=>./src/Engine
+:Code/DEV-Main/src=>./src
+:Code/DEV-Main/lib=>./lib

这是我在构建日志中看到的,我怀疑 src\ 文件夹多次出现。 DEV-* 文件夹是否会以某种方式被覆盖?

[18:20:00][Updating sources] Removing C:\BuildAgent\work\6148493fca83a584
[18:20:00][Updating sources] Updating C:\BuildAgent\work\6148493fca83a584\src\BusinessLayer
[18:20:00][Updating sources] Updating C:\BuildAgent\work\6148493fca83a584\src\DataModel
[18:20:00][Updating sources] Updating C:\BuildAgent\work\6148493fca83a584\src\Engine
[18:20:01][Updating sources] Updating C:\BuildAgent\work\6148493fca83a584\lib
[18:20:04][Updating sources] Updating C:\BuildAgent\work\6148493fca83a584\src
[18:20:04][Updating sources] Updating C:\BuildAgent\work\6148493fca83a584\src\Engine
[18:20:04][Updating sources] Updating C:\BuildAgent\work\6148493fca83a584\src
[18:20:04][Updating sources] Updating C:\BuildAgent\work\6148493fca83a584\src\BusinessLayer
[18:20:05][Updating sources] Updating C:\BuildAgent\work\6148493fca83a584\src

更新 1:documentation 表示“对于每个文件,如果包含该文件,则将应用最具体的规则,无论规则以何种顺序列出。”那么如果我整体说DEV-Main/src,然后还指定src/Engine,应该选第二个吧?

更新 2:SVN 外部是否引用这种替换目录?我是否应该设置这些文件夹的属性以使它们成为 SVN 外部?

【问题讨论】:

    标签: svn teamcity


    【解决方案1】:

    我终于让它工作了。诀窍是简单地(明确地)排除您要从另一个 svn 位置替换的那些目录。所以我的结帐规则变成了:

    +:Code/DEV-Main/src=>./src
    +:Code/DEV-Main/lib=>./lib
    
    -:Code/DEV-Main/src/BusinessLayer
    -:Code/DEV-Main/src/DataModel
    -:Code/DEV-Main/src/Engine
    
    +:Code/DEV-BusinessLayer=>./src/BusinessLayer
    +:Code/DEV-DataModel=>./src/DataModel
    +:Code/DEV-Engine=>./src/Engine
    

    我相信只有当您明确指定排除规则时,“对于每个文件,如果包含该文件,最具体的规则将适用,无论规则以何种顺序列出。”起作用。 请注意,添加排除规则后,您将无法在代理属性上使用结帐。使用“自动在服务器上”

    【讨论】:

      猜你喜欢
      • 2015-05-18
      • 2016-07-13
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-19
      相关资源
      最近更新 更多