我有一个门控checkin构建,它确实更改了请求构建的用户提供的变更集的一些文件。构建主要在所有目标的源文件中设置构建版本号。
门禁签入活动会检查用户的搁置集。现在我想通过我的构建检查已更改的文件,这可能与用户shelvset的文件部分冲突。这会导致合并冲突。
使用VersionControlServer.CheckinShelveset,由于上一个搁置集的其他签入而导致合并冲突时,没有选项强制签入。我试图更改用户提供的shelveset,但我无法更改不是由同一用户创建的shelveset。因此,我被迫创建第二个搁置集,并等到生成在构建控制器上的门控登记活动成功。
当我有一个工作区时,我可以解决这些更改但是在构建控制器上没有工作区(它在构建代理上)所以我必须创建一个新工作区,取消搁置其他用户的搁置集并尝试将我的另一个搁置合并到这个搁置中,然后尝试检查哪个不容易,更严重的是需要相当长的时间。
有没有办法检查搁置集并强制TFS在没有工作空间的情况下简单地覆盖最新版本?或者是否有另一种方法可以在没有合并冲突的情况下检查我的构建更改?如果我之前会检查构建代理,那么门控checin会因构建控制器上的合并冲突而失败。
答案 0 :(得分:3)
如果您的代码在构建代理而不是控制器上运行,则您可以访问工作区。在这种情况下,您可以考虑使用两个签到:第一个是用户的更改,第二个是您的代码所做的修改。或者,您可以简单地对代码进行更改,然后从构建代理的工作区进行签入。在这种情况下,用户提交的shelveset不会用于签入,而是作为代码进行进一步更改的基础,然后检查它。
尽管发生冲突,仍然无法强行检查货架。