58

这是我得到的部分:当您搁置在 TFS 中时,它会生成更改的服务器副本,因此它们不会丢失,但不会将它们签入您正在处理的源代码主干/分支中。

问题:在什么情况下你会使用“unshelve”功能?这是否意味着它将从 TFS 服务器中删除搁置集?你能从书架上拿东西吗?或者它真的只是搁置集和“真实”源代码之间的差异描述?

4

3 回答 3

72

取消搁置是您将搁置集恢复到机器的方式,以便您可以继续处理它。它不会更改服务器上的搁置集(为此,您需要再次搁置事物并使用相同的搁置集名称)。

我如何使用它的一个例子是在我处理机器时在机器之间移动更改。我将把它搁置在我的台式机上,然后在笔记本电脑上取消搁置它,然后继续在笔记本电脑上工作。

您还可以使用它与某人共享更改(出于代码审查或其他原因)。你搁置你的更改,然后其他人可以去搁置它,看看你做了什么。

取消搁置实际上不会更改搁置集或服务器上的任何其他内容。这只是一个get操作。

于 2010-02-24T20:20:23.760 回答
32

爱马仕恰如其分。阅读他的回答。

一个重要的警告:如果您在创建搁置集后执行了 Get,则 Unshelve 只会回滚搁置集中包含的文件的本地版本。因此,您很可能会有一个不一致的工作空间。

一个好的做法是在 Unshelve 之后总是重新运行 Get。这可以确保您不会将时间浪费在虚拟构建错误上,这些错误实际上只是处于半新/半旧状态的副作用。它还要求您主动解决搁置内容与最新服务器修订之间的任何冲突,而不是仅在签入时间发现它们。

于 2010-02-25T15:08:24.440 回答
4

我使用搁置来备份正在进行的代码,只是在我的硬盘驱动器崩溃或诸如此类的情况下。我什至不必担心代码构建,更不用说工作,因为我团队中的任何其他开发人员都不会看到该工作(除非他们去寻找它)。

取消搁置会将更改挂回您的工作区。从服务器中删除搁置集是删除。

继 Richard Berg 所说的之后,电动工具的 unshelve 版本实际上包括获取和解决。

于 2010-03-04T21:56:09.053 回答