什么是在TFS搁置?

在TFS搁置只是一个软签,所以其他团队成员可以看到源代码?

即搁置的代码将不会被编译正确?

货架有很多用途。 主要的是:

  1. 上下文切换 :将工作保存在当前任务上,以便切换到另一个高优先级任务。 假设你正在研究一个新的function,当你的老板跑进来,并且说“啊!Bug Bug! 而且你必须在function上放弃当前的修改,并去修复这个bug。 您可以搁置该function的工作,修复该错误,然后返回并取消搁置,稍后再处理您的更改。
  2. 共享变更集 :如果您想共享代码变更集而不检入代码,您可以轻松地让其他人访问。 当你将一个不完整的任务传递给其他人(可怜的灵魂),或者如果你有某种testing代码,你永远不会检查别人需要运行的时候,这可以被使用。 h / t的其他答复关于使用这个评论,这是一个非常好的主意。
  3. 保存你的进度 :当你在处理一个复杂的function时,你可能会发现自己处于一个“好点”,你想保存你的进度。 这是搁置代码的理想时机。 假设你正在破解一些CSS / HTML来修复渲染错误。 通常你会对它感兴趣,重复你可能想到的每一个可能的混乱,直到它看起来是正确的。 但是,一旦看起来正确,您可能需要尝试恢复清理标记,以便其他人可以在检查之前理解您所做的事情。在这种情况下,您可以在代码正确的情况下搁置代码,那么你可以自由地去重构你的标记,知道如果你不小心再次打破它,你总是可以回去拿到你的变更。

任何其他用途?

货架是一种在没有签入的情况下保存箱子上的所有更改的方法。更改将保留在服务器上。 在任何时候,你或你的任何队友都可以“放弃”他们回到你的任何一台机器上。

这对于审查目的也很好。 在我的团队中进行检查时,我们暂时搁置了更改,并发送了一封包含更改说明和更改集名称的电子邮件。 团队成员可以查看变更集并提供反馈。

仅供参考:查看搁架组的最佳方法是使用以下命令

tfpt review / shelveset:shelvesetName; userName

tfpt是Team Foundation Power Tools的一部分

那就对了。 如果你创build一个架子,其他人做一个最新的将不会看到你的代码。

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

它使您能够在另一台机器上获得您的更改,如果您感到在家工作的冲动。

其他人可以看到你的书架(虽然我认为这可能是可选的),所以他们可以检查你的代码之前签入。

我经常碰到这个问题,所以关于分支的补充信息:

如果你正在使用多个分支,shelvesets被绑定到你创build它们的特定分支。 所以,如果你让货架上的锈蚀时间过长,而又不得不搁置不同的分支,那么你必须在七月份发布电动工具时这样做。

tfpt unshelve /migrate 

在很多这些讨论中都漏掉了一点,就是如何在搁置变更的同一台机器上恢复原状。 也许对大多数人来说是显而易见的,但对我来说不是 我相信你执行撤消等待更改 – 是吗?

我理解这个过程如下:

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

因此,如果您想开始一些可能需要搁置的工作,请确保您在开始之前先办理登机手续,因为登机手续办法是在执行上述“撤消挂起更改”步骤时返回的地方。

@JaredPar:是的,您可以使用Shelvesets进行评论,但请记住,搁置可能会被您/他人覆盖,因此不能长期稳定。 因此,对于监pipe相关的审查,你不应该使用Shelveset作为基础,而是一个签入(Changeset)。 对于一个非正式的审查,这是好的,但不是一个正式的(如自由贸易协定相关)审查!

如果使用Gated构build,当构build被触发时,它会创build一个工作空间的shelveset,并提交构build。 如果构build失败,则搁置被拒绝。 如果构build成功,则会创build一个变更集并将其提交给TFS。 在这两种情况下,进行登记/编译的人都必须协调工作空间,这与执行“获取最新”一样简单。