签入TFVC团队项目会触发Git团队项目中的构建
我有一个TFS项目,用于持续集成。我的问题是,其他TFS项目上的签入会触发我的项目的生成,即使我的项目没有更改签入TFVC团队项目会触发Git团队项目中的构建,git,tfs,continuous-integration,tfsbuild,tfvc,Git,Tfs,Continuous Integration,Tfsbuild,Tfvc,我有一个TFS项目,用于持续集成。我的问题是,其他TFS项目上的签入会触发我的项目的生成,即使我的项目没有更改 它似乎与我的项目是一个团队基金会Git存储库有关,其他项目都没有。 我在哪里可以找到触发此构建的原因 编辑:更清楚地说,我的意思是我有完全独立的团队项目。除了使用Git版本控制之外,所有这些都使用Team Foundation版本控制。不知何故,TFVC团队项目上的签入会触发Git团队项目上的生成该生成将在该生成定义工作区的任何映射文件夹中的文件发生更改时触发 我猜您已经将buildd
它似乎与我的项目是一个团队基金会Git存储库有关,其他项目都没有。
我在哪里可以找到触发此构建的原因编辑:更清楚地说,我的意思是我有完全独立的团队项目。除了使用Git版本控制之外,所有这些都使用Team Foundation版本控制。不知何故,TFVC团队项目上的签入会触发Git团队项目上的生成该生成将在该生成定义工作区的任何映射文件夹中的文件发生更改时触发 我猜您已经将builddef的工作区映射到了。您应该只包含生成所需的文件夹/文件(并且只有对这些文件的更改才会触发生成)
基于Git存储库的CI构建始终监视整个存储库。您可以添加的唯一筛选器是监视某些分支,但您不能像使用经典TFVC那样“隐藏”文件夹或文件。我们通过使用名为TFS Sidekick的工具删除TFS build agent上的工作区来修复此问题。重新创建构建定义后,其他产品上的构建不再触发Git中产品上的构建
我仍然不确定它们是如何链接的。在我们的案例中,这被微软确认为TFS中的一个bug 适当构建的tbl\U BuildDefinitionMapping中的ServerItem列被设置为“$\” 我从微软得到的修复是将其更改为不存在的东西,如: $\GIT\u文件夹\ 这为我解决了这个问题 您需要在tbl\u builddefinition中查找生成定义。一旦找到它,请记住数据空间ID
然后打开tbl_builddefinitionmapping,从上面查找数据空间ID。您应该看到ServerItem是$\。将此更改为$\GIT\u NOTAFOLDER\,应该可以解决此问题。由于它是GIT回购,因此“我的源设置”选项卡没有“工作文件夹”部分:。我在删除“refs/heads/*”后尝试了它,但没有什么不同。是否有其他方法可以更改工作区?(投票赞成有用,但这并不能解决我的问题。)问题似乎更多的是它监视存储库外的文件夹。除非您指的是存储库,即此项目加上存储在TFS服务器上的所有非git项目?我有产品A和B使用TFS,产品C使用git。每当有人签入产品A或B时,C决定构建。你是说使用TFVC作为源系统的团队项目,还是说其他。项目在同一个Git存储库中?我是说,签入使用TFVC的其他团队项目会触发我的Git团队项目进行构建。签入TFVC会触发Git repo的构建?这是一条很有趣的皱纹。我原以为这条皱纹解决了,但它没有。似乎其他人也遇到了这个问题:我使用sys.columns(TFS版本12.0.31101.0)在数据库中的任何位置都找不到DataspaceId,但我在tbl_BuildDefinitionMapping中发现了这个问题,我的git repo项目与触发生成的其他项目被分配到相同的工作空间ID。您提到的$\git\u NOTAFOLDER\workaround有效,并且似乎没有以任何其他方式影响我们的生成。非常感谢。