【发布时间】:2010-02-24 20:16:54
【问题描述】:
这是我得到的部分:当您搁置在 TFS 中时,它会生成更改的服务器副本,因此它们不会丢失,但不会将它们签入您正在处理的源代码主干/分支中。
问题:在什么情况下你会使用“unshelve”功能?这是否意味着它将从 TFS 服务器中删除搁置集?你能从书架上拿东西吗?还是真的只是搁置集和“真实”源代码之间的差异描述?
【问题讨论】:
标签: tfs shelve shelving unshelve
这是我得到的部分:当您搁置在 TFS 中时,它会生成更改的服务器副本,因此它们不会丢失,但不会将它们签入您正在处理的源代码主干/分支中。
问题:在什么情况下你会使用“unshelve”功能?这是否意味着它将从 TFS 服务器中删除搁置集?你能从书架上拿东西吗?还是真的只是搁置集和“真实”源代码之间的差异描述?
【问题讨论】:
标签: tfs shelve shelving unshelve
取消搁置是您将搁置集恢复到计算机的方式,以便您可以继续处理它。它不会更改服务器上的搁置集(为此,您需要再次搁置并使用相同的搁置集名称)。
我如何使用它的一个例子是在我处理机器时在机器之间移动更改。我会将它搁置在我的台式机上,然后在笔记本电脑上取消搁置,然后继续在笔记本电脑上工作。
您还可以使用它与他人共享更改(出于代码审查或其他原因)。您搁置更改,然后其他人可以去取消搁置以查看您所做的工作。
取消搁置实际上不会更改搁置集或服务器上的任何其他内容。这只是一个 get 操作。
【讨论】:
爱马仕是正确的。阅读他的回答。
一个重要的警告:如果您在创建搁置集后执行了 Get,Unshelve 只会回滚搁置集中包含的文件的本地版本。因此,您很可能会有一个不一致的工作空间。
一个好的做法是在 Unshelve 之后总是重新运行 Get。这可以确保您不会将时间浪费在虚拟构建错误上,这些错误实际上只是处于半新/半旧状态的副作用。它还需要您主动解决搁置内容与最新服务器修订之间的任何冲突,而不是仅在签入时间发现它们。
【讨论】:
我使用搁置来备份正在进行的代码,以防我的硬盘驱动器崩溃或诸如此类。我什至不必担心代码构建,更不用说工作,因为我团队中的任何其他开发人员都不会看到该工作(除非他们去寻找它)。
取消搁置会将更改挂回您的工作区。从服务器中删除搁置集是一个删除。
按照 Richard Berg 的说法,电动工具的 unshelve 版本实际上包括 get 和 resolve。
【讨论】: