Tfs Teamcity:如何签出根目录,但只从子目录查看更改

Tfs Teamcity:如何签出根目录,但只从子目录查看更改,tfs,continuous-integration,teamcity,Tfs,Continuous Integration,Teamcity,我们将Teamcity 2018与TFS一起使用 我们有一个项目的结构如下 Root <---- We want to checkout the whole Root-directory \ProjectA <---- We want to show changes only from the sub-directory \ProjectB \ProjectB Root触发器规则可以帮助您实现这一点。在VCS触发

我们将Teamcity 2018与TFS一起使用

我们有一个项目的结构如下

Root                <---- We want to checkout the whole Root-directory
     \ProjectA      <---- We want to show changes only from the sub-directory
     \ProjectB
     \ProjectB

Root触发器规则可以帮助您实现这一点。在VCS触发器中,您可以指定一组规则,以过滤将导致生成配置触发的各种条件。这些与您的VCS规则无关,这些规则将正常处理您选择签出的内容。规则语法如下所示:

+|-[:[user=VCS_username;][root=VCS_root_id;][comment=VCS_comment_regexp]]:Ant_like_wildcard
在本例中,Ant_like_通配符是您特别感兴趣的元素,因为您可以使用它们(除其他外)来过滤特定目录

以下是TeamCity文档中的一个示例:

“-:lib/**”防止通过更新生成源的“lib”目录触发生成

使用您的示例,您的触发规则看起来像:

+:ProjectA/**
由于TeamCity处理这些类型规则的方式,您可以使用单个包含而不是多个排除:

在指定规则时,请注意,一旦您输入任何“+”规则,TeamCity就会将隐式默认值从“全部包含”更改为“全部排除”


您可以找到完整的TeamCity VCS触发器文档

这可能会对您有所帮助:如果您需要,我会在下班时尝试发布正确的答案……但是签出规则也会影响签出给代理的目录?我们仍然希望签出整个根目录及其包含的所有子目录。谢谢。这几乎就是我一直在寻找的解决方案。有了这个,我就能正确地触发作业。但是,更改日志仍然显示来自所有项目的更改。如果我对ProjectB做了更改,它不会触发ProjectA,但一旦ProjectA最终触发或手动触发,那么对ProjectB所做的更改也会显示在ProjectA的更改日志中。@Mtq啊,我知道您现在在寻找什么附加层。从设计的角度来看,我明白了为什么会包含这些更改。如果您将项目B中的代码作为构建的一部分使用,那么对该代码的更改应该与构建的总体产品相关,从而与您的更改日志相关。也就是说,如果要排除它们,更改日志视图有一个过滤组件和一个高级搜索选项。您应该能够将包含路径字段指定为类似于
root\ProjectA
的内容,以直观地过滤更改日志结果。这有用吗?