TFS中的搁置是什么?

TFS中的搁置仅仅是一种软签入,以便其他团队成员可以看到源代码吗?

即搁置的代码将不会被编译,对吗?

179375 次浏览

搁置是一种在不签入的情况下保存所有更改的方法。更改被持久化在服务器上。在以后的任何时候,您或您的任何队友都可以将它们“解置”到您的任何一台机器上。

它也非常适合复习。在我的团队中,为了签入,我们将更改搁置起来,并发送带有更改描述和更改集名称的电子邮件。然后,团队成员可以查看变更集并给出反馈。

供您参考:查看搁置集的最佳方法是使用以下命令

tpt review / shelvesetName:shelvesetName

tpt是Team Foundation Power Tools的一部分

这是正确的。如果您创建了一个架子,那么执行get latest操作的其他人将不会看到您的代码。

它将您的代码更改放到服务器上,这可能比您的工作PC备份得更好。

它使您能够在另一台机器上获取更改,如果您想在家工作的话。

其他人可以看到您的货架(尽管我认为这可能是可选的),因此他们可以在签入之前检查您的代码。

我经常遇到这个,关于分支的补充信息:

如果您正在处理多个分支,则搁置集将绑定到创建它们的特定分支。因此,如果您让一个变更集在货架上生锈太久,并且不得不将其释放到不同的分支,那么您就必须在7月份发布的电动工具中这样做。

tfpt unshelve /migrate

置物架有很多用途。主要有:

  1. 上下文切换:保存当前任务的工作,以便您可以切换到另一个高优先级任务。假设你正在开发一个新功能,想做自己的事,这时你的老板跑进来说:“啊!Bug Bug Bug!”,你必须放弃当前对功能的修改,去修复Bug。您可以搁置您在该特性上的工作,修复错误,然后返回并重新搁置以稍后进行更改。
  2. 共享变更集:如果你想在不签入的情况下共享一个代码变更集,你可以通过搁置它让其他人更容易访问它。当你将一个未完成的任务传递给其他人(可怜的人)时,或者如果你有某种测试代码,你永远不会检入,而其他人需要运行时,可以使用这种方法。h / t到其他关于使用此评论的响应,这是一个非常好的想法。
  3. 保存您的进度:当你在做一个复杂的功能时,你可能会发现自己在一个“好点”,你想要保存你的进度。这是搁置代码的理想时机。假设你正在修改一些CSS / HTML来修复渲染错误。通常情况下,你会一鼓作气,迭代你能想到的每一个可能的拼凑,直到它看起来正确为止。但是,一旦看起来是正确的,您可能希望尝试返回来清理标记,以便其他人能够在签入之前理解您所做的工作。在这种情况下,您可以在一切呈现正确时搁置代码,然后可以自由地重构标记,因为您知道,如果您不小心再次破坏它,您总是可以返回并获得更改集。

还有其他用途吗?

很多讨论都忽略了一点,即如何在搁置更改的同一台机器上恢复。也许对大多数人来说是显而易见的,但对我来说不是。我相信您执行了撤销挂起的更改-对吗?

我理解的流程如下:

  1. 若要搁置当前挂起的更改,请右键单击项目“搁置”,并添加搁置名称
  2. 这将保存(或搁置)对服务器的更改(没有人会看到它们)
  3. 然后执行“撤消挂起的更改”将代码恢复到最后一个签入点
  4. 然后,您可以对恢复的代码基线执行您需要执行的操作
  5. 你可以随时取消更改(可能需要一些合并冲突)

因此,如果您想开始一些可能需要搁置的工作,请确保在开始之前签入,因为签入点是您在执行上面的撤消挂起的更改步骤时将返回的位置。

< p > @JaredPar: 是的,你可以使用搁置集进行审查,但请记住,搁置集可以被自己或他人覆盖,因此不是长期稳定的。因此,对于法规相关的审查,您永远不应该使用搁置集作为基础,而应该使用签入(变更集)。 对于非正式的审查,这是可以的,但对于正式的(例如与自由贸易协定相关的)审查就不行!< / p >

如果您使用的是Gated构建,那么当一个构建被触发时,它会为您的工作空间创建一个提交用于构建的搁置集。如果构建失败,搁置集将被拒绝。如果构建成功,则创建一个变更集并将其提交给TFS。在任何一种情况下,执行签入/构建的人都必须协调工作空间,这就像执行Get Latest一样简单。

搁置就像将更改存储在源代码控制中,而不影响现有更改。意味着如果你在源代码控制中签入一个文件,它会修改现有的文件,但搁置就像在源代码控制中存储你的更改,但不修改实际的更改。