12

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

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

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

顺便说一句,我想到了在这里创建第二个工作区。

4

3 回答 3

12

一个新的分支可能是最好的选择。但是,为了回答您的问题,搁置和仅使用不同工作区之间的主要区别之一是,当您搁置时,您会将代码推回 TFS,因此它会被备份。您工作区中的任何东西都是您机器上的东西——如果您丢失了它,它就消失了。

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

但是,我发现它对我非常有用的一个案例:我经常在两台不同的开发机器之间来回切换(一台在办公室,一台在家里,通过 VPN 连接)。如果我正在做某事,我想把它从家里转移到工作中,反之亦然,我经常使用搁置。我可以将它从一台机器上搁置,然后从另一台机器上取消搁置。我在进行更改时会这样做,并且签入会破坏构建或以其他方式中断其他开发人员。

于 2010-02-09T20:33:46.403 回答
3

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

为什么不创建代码的新分支。您可以在该分支上工作并签入,而无需干预任何其他人的更改,因为您正在签入您自己的代码分支。然后,当您完成更改并且其他人在主分支上完成了他们的更改时,您可以将您的更改合并到主分支中。

于 2010-02-09T19:15:37.727 回答
1

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

于 2010-02-09T19:11:15.880 回答