【问题标题】:Unshelving in TFS: What does it mean?在 TFS 中取消搁置:这是什么意思?
【发布时间】:2010-02-24 20:16:54
【问题描述】:

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

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

【问题讨论】:

    标签: tfs shelve shelving unshelve


    【解决方案1】:

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

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

    您还可以使用它与他人共享更改(出于代码审查或其他原因)。您搁置更改,然后其他人可以去取消搁置以查看您所做的工作。

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

    【讨论】:

    • 一位同事给我发了一条评论,我搁置了他的更改以运行它们并检查它们。一旦我完成并发回他的评论。我如何摆脱他的变化?换句话说,我如何撤消搁置?我必须右键单击并撤消他更改的每个文件吗?
    • @Ciwan,您需要先搁置您的代码,然后再取消搁置他的代码。然后,当你完成他的工作后,将你的代码搁置起来。
    • 我一直有疑问,感谢您的解释。帮了我很多。@Herms。
    • 或者,如果您已签入代码,则可以在查看同事的代码后撤消待处理的更改。
    【解决方案2】:

    爱马仕是正确的。阅读他的回答。

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

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

    【讨论】:

      【解决方案3】:

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

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

      按照 Richard Berg 的说法,电动工具的 unshelve 版本实际上包括 get 和 resolve。

      【讨论】:

      • 不幸的是,根据我的经验,“tfpt unshelve”非常有问题。
      • 我自己不经常用。之后更容易获得。我会在一种情况下使用它 - 如果我需要将未签入的代码移动到不同的(但非常相似!)分支。
      • 它不是错误的。它是一个过程。我们不能指望 TFS 保留准确的代码。但我认为 tfs 在下架时会完成接近 95%-100% 的工作。
      猜你喜欢
      • 2017-01-09
      • 2018-01-08
      • 2011-03-05
      • 1970-01-01
      • 2010-10-01
      • 2015-06-22
      • 1970-01-01
      • 1970-01-01
      • 2013-08-17
      相关资源
      最近更新 更多