如何防止 TFS 删除通过排队构建签入的搁置集?

How to prevent TFS from deleting shelvesets that were checked in via a queued build?

签入搁置集是 TFS 中构建系统的一个很好的功能,但构建完成后搁置集将被删除。有没有办法更改此行为以保留搁置集?

我一直使用build+check in shelfset 功能来check in 队友的代码,但有时我不希望原来的shelfset 被TFS 删除。在某些情况下,这可能会导致问题,例如当搁置集与代码审查工作项相关联时。在这种情况下,Visual Studio 会隐藏来自代码审查的所有评论,因为它找不到关联的搁置集。

我在 Visual Studio 中对构建进行排队时搜索了默认属性 window,但似乎没有任何选项可以控制此行为。我是否必须自定义构建 xaml 才能更改此设置,或者是否有一种已知的方法而不必这样做?

如果你的意思是 build+ check in shelfset 正在构建 shelfset 并在构建成功后签入更改,如下所示:

不可能。因为您已经签入了您的货架集。这与构建无关。所以这个问题和如何check in shelfset和防止删除shelfset是一样的。搁置在您的盒子上保存所有更改,而无需实际签入。这些更改将保留在服务器上。这样其他团队成员就可以看到源代码,也可以签入其他人的搁置。

你也可以把它当作一种容器。

  • 您创建文件并将其提交到搁置集(容器 A)。
  • 然后您转到构建代理并将 Shelveset 放入本地 工作区(容器 B)
  • 然后提交搁置集(从容器 A 到源代码管理) 从容器 A 签入成功并且容器 A 是 删除以反映 Gated Shelveset 已经完成了它的生命 循环(如果失败,它将保持完整)