Version control 互斥的团队城市建设触发了双方的开火

Version control 互斥的团队城市建设触发了双方的开火,version-control,build,tfs,teamcity,build-automation,Version Control,Build,Tfs,Teamcity,Build Automation,我们在TeamCity中针对TFS配置了两个单独的构建,并使用以下触发器(如下所列) 如果我们对Folder1/Folder2/Folder3/FilePrefix中的文件进行更改,我们会发现这两个生成都会触发: 对于更改中的每个文件,都会找到最具体的规则(规则 匹配最长的文件路径)。如果至少有一个,则会触发生成 至少有一个文件具有匹配的“包含”规则或一个文件没有 匹配规则 这难道不意味着只有最具体的规则优先吗?为什么生成2不排除此文件,因为-:Folder1/Folder2/Folder3/F

我们在TeamCity中针对TFS配置了两个单独的构建,并使用以下触发器(如下所列)

如果我们对
Folder1/Folder2/Folder3/FilePrefix
中的文件进行更改,我们会发现这两个生成都会触发:

对于更改中的每个文件,都会找到最具体的规则(规则 匹配最长的文件路径)。如果至少有一个,则会触发生成 至少有一个文件具有匹配的“包含”规则或一个文件没有 匹配规则


这难道不意味着只有最具体的规则优先吗?为什么生成2不排除此文件,因为
-:Folder1/Folder2/Folder3/FilePrefix**
?似乎
+:Folder1/Folder2/**
正在覆盖忽略规则。

几周前我遇到了这个问题,发现我们必须为否定语句指定最后的通配符为“.”,而不是“*”

因此,build2的触发规则最终将如下所示:

+:Folder1/Folder2/\*\.
-:Folder1/Folder2/Folder3/FilePrefix\*\.
-:Tests/\*\.
-:Source/\*\.

我们最终解决了这个问题,却没有找到真正的答案。已经有一段时间了,我也遇到了类似的问题。我在TeamCity()中使用所谓的“共享资源”解决了这个问题,并定义了一个配额,这两个构建在构建开始时都会锁定(使用构建特性)。通过这种方式,我们确保两个构建不会同时运行。
+:Folder1/Folder2/\*\.
-:Folder1/Folder2/Folder3/FilePrefix\*\.
-:Tests/\*\.
-:Source/\*\.