我有一个门控签入构建,它确实更改了请求构建的用户提供的更改集的一些文件。构建主要在源文件中为所有目标设置构建版本号。
门控签入活动签入用户的搁置集。现在,我希望通过我的构建也签入更改过的文件,这可能会与用户搁置集的文件部分发生冲突。这会导致合并冲突。
使用VersionControlServer.CheckinShelveset,它没有强制签入的选项,以防由于前一个搁置集的其他签入而导致合并冲突。我尝试更改用户提供的搁置集,但无法更改不是由同一用户创建的搁置集。因此,我被迫创建第二个搁置集并等待,直到驻留在构建控制器上的门控签入活动成功。
当我有一个工作区时,我可以解决更改,但在构建控制器上没有工作区(它在构建代理上),所以我必须创建一个新的工作区,取消搁置其他用户的搁置集,并尝试将我的其他搁置集合并到这个搁置集中,然后尝试签入,这并不容易,更严重的是,这将需要相当长的时间。
有没有一种方法可以签入搁置集并强制TFS在没有工作区的情况下简单地覆盖最新版本?或者,有没有其他方法可以让我在没有合并冲突的情况下签入对构建的更改?如果我早些时候在生成代理上检查,那么门控签入将失败,并在生成控制器上出现合并冲突。
发布于 2012-03-11 01:03:34
如果您的代码在生成代理上运行,而不是在控制器上运行,则可以访问工作区。在这种情况下,您可以考虑使用两个签入:第一个是用户的更改,第二个是您的代码所做的修改。或者,您可以简单地对代码进行更改,然后从构建代理的工作区进行签入。在这种情况下,用户提交的搁置集不会用于签入,而是作为代码进行进一步更改然后签入的基础。
尽管存在冲突,但无法强制检入搁置集。
https://stackoverflow.com/questions/9581977
复制相似问题