2016-12-29 97 views
0

我们的代码坐在一个TFS项目,我们有一个包含数据的多个其他项目:TFS 2015年门控签入失败,原因是缺少映射

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

我们已经定义了门控检查在建运行在每次签到$ /代码。我们不关心每个单个项目的数据,因为我们只想构建共享的$/Code项目。

问题是,当用户签入代码更改和数据更改(即更改$/Code和$/Data1)时,构建失败,因为我们没有在构建中映射$/Data1定义:“$/Data1/file.txt不存在适当的映射”。

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

回答

2

正如你可能已经聚集,这是不可能在此刻。你可以指导你的开发人员在$/Code独立于任何$/DataN检查。你甚至可以设置一个检查策略来警告开发者这个问题。

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

至于它为什么会这样工作...构建代理取消搁置分配给您的用户的搁板架,将其再次搁置在其自己的名称下,以确保正在构建的数据恰好是在构建结束。如果不是所有数据都存在于当前工作空间中,这将失败。最后,构建会检查在其名称下创建的shelveset。

由于这些细节,我不希望此功能很快就会被添加,如果构建无法验证它要检入的代码是否真的是代码,那么就有可能产生令人讨厌的不一致它刚刚建成。审计师将有一个健康的:)。

+0

你是对的,但数据的项目不被用于构建。他们只是在运行时。 – liorda

+0

隐藏所有数据项目如何?甚至掩盖根目录并将$/Source标记为活动映射?我从来没有使用伪装,它好像你知道这东西... – liorda

+0

没有掩饰也将防止unshelved的文件,从而导致同样的问题。 – jessehouwing