搁置与TFS中的工作区

时间:2010-02-09 19:06:39

标签: visual-studio tfs shelving workspace

目前我正在开发一个使用TFS作为源代码控制的项目。我正在实现一项功能,但是被外部资源需要完成的工作阻止了。由于功能尚未完全完成,因此无法在不破坏构建的情况下签入更改。因此,在阻塞工作完成后,我不想等待几天,而是想解决一些缺陷。

为了独立于其他更改而完成此工作,我正在我刚创建的第二个工作区中处理缺陷。

在使用第二个工作区隔离我的更改后,一位同事问我为什么不只是搁置我的更改。在对搁架进行一些阅读之后,看起来这是像我这样的情况的首选解决方案。 我的问题是你会创建多个工作空间的情况,如果有的话,你应该使用什么情况搁置?有一些关于shelving的帖子,但我没有看到很多工作空间主题。

顺便说一句,我想到了创建第二个工作区here

3 个答案:

答案 0 :(得分:12)

新的分支可能是最好的方式。但是,为了回答你的问题,搁置和使用不同工作空间之间的一个主要区别是,当你搁置时,你将代码推回到TFS,因此它被备份。无论你的工作区是什么,都只是你机器上的东西 - 如果你失去它,它就会消失。

我们在店里经常使用分店,因此我没有看到很多用于搁架的用途。

但是,我发现了一个对我非常有用的案例: 我经常在两台不同的开发机器之间弹跳(一台在办公室,一台在家里,通过VPN连接)。如果我正在做一些事情,并且我想将它从家里转移到工作,反之亦然,我经常使用搁架。我可以把它从一台机器上搁置下来,并将它从另一台机器上搁置下来。我在更改过程中执行此操作,并且检入会破坏构建或以其他方式中断其他开发人员。

答案 1 :(得分:3)

你在谈论两个完全不同的概念。当您搁置代码时,您将其保存到TFS,但不将其保存到任何特定分支。创建不同的工作区只需在开发计算机上设置一个新的本地文件夹,并将文件保存在您的分支中。办理登机手续时,您仍然可能会发生冲突。

为什么不创建代码的新分支。您可以在该分支上工作并在不踩任何其他人的更改的情况下签入,因为您正在检入自己的代码分支。然后,当您完成更改并且其他人已在主分支上完成更改后,您可以将更改合并到主分支中。

答案 2 :(得分:1)

搁架是理想的选择。 Shelving允许您在常规构建之外的TFS中进行更改,并在以后按名称检索它们。多个工作空间不是您正在做的事情的解决方案。如果您要维护产品的不同版本并需要对其进行处理,例如多个工作区是很好的。假设您有4.0和5.0产品,并且需要对这两个版本应用安全修复程序。当您想要进行更改但不立即提交时,搁置很棒。