由于缺少映射,TFS 2015 门控签入失败

TFS 2015 Gated check-in failed due to missing mapping

我们的代码位于一个 TFS 项目中,我们还有多个包含数据的其他项目:

$/
- $/Code
- $/Data1
- $/Data2

我们在每次签入 $/Code 时为 运行 定义了门控签入构建。我们不关心每个单独项目的数据,因为我们只想构建共享的 $/Code 项目。

问题是,当用户签入代码更改和数据更改时,即同时更改 $/Code 和 $/Data1,构建失败,因为我们没有 $/Data1 的映射构建定义:"No appropriate mapping exists for $/Data1/file.txt".

这在理论上可以通过映射每个 $/DataN 来解决,但要映射的内容很多,我想要一个更简单的解决方案。我能以某种方式告诉 TFS 忽略搁置集中未映射的文件吗?也许像 this

您可能已经猜到,目前不可能。您可以指示您的开发人员将 $/Code 与任何 $/DataN 分开签入。您甚至可以设置一个 Checkin Policy 来警告开发人员这个问题。

如果你真的只对代码构建感兴趣,那么我会选择这样的解决方案。

至于它为何如此工作...构建代理取消搁置分配给您的用户的搁架集,以自己的名称再次搁置它以确保正在构建的数据与正在签入的数据完全相同在构建结束时。如果不是所有数据都存在于当前工作区中,这将失败。最后,构建检查以其名称制作的货架集。

由于这些细节,我不希望很快添加此功能,如果构建无法验证它要签入的代码确实是它刚刚构建的代码。审计员会很合适 :).