搁架/取消搁置:它如何处理文件内容和版本规范

时间:2014-07-24 16:45:34

标签: tfs tfs2012 shelveset

作为一名经验丰富的SVN用户和TFS初学者,我对Shelving / Unshelving流程有一些疑问。希望一些有经验的用户可以帮助我。 我的目的是了解文件内容和版本规范的搁置/搁置方式。为此,我将介绍一些具体情况。

我将(远程)工作空间映射更新为versionspec(== svn revision)X,然后进行一些本地更改,然后搁置它们。

  • 我可以在不同的空工作区映射中取消它们(在执行任何'get'之前)吗?
  • 我是否可以在不同的工作区映射中取消搁置它们,该映射指向versionspec X-2(这些版本规范之间的代码没有相关更改)?
  • 我是否可以在不同的工作区映射中取消搁置它们,该映射指向versionspec X + 2(这些版本规范之间的代码没有相关更改)?
  • 我是否可以在不同的工作区映射中取消搁置它们,这是指向受影响的文件/行中具有“相关更改”的不同版本规范?
  • 我可以在不同的工作区映射中取消搁置它们,指向版本X + 2,在X + 2没有“相关更改”,但是在X + 1处发生相关更改(想象一下,在X处删除的行) +1,但是再次出现在X + 2)?

在这些情况下的预期行为是什么。我会得到任何错误/冲突吗? 如果我使用本地工作区而不是服务器工作区,我会遇到任何差异吗?

2 个答案:

答案 0 :(得分:0)

不,你不能在任何这种情况下取​​消搁置!想象一下,当你周五下午18点在公司起床并放入抽屉时,搁置是一种让你的工作得以保存的方法......并在星期一回到桌子上!因为任何项目都被搁置,因此将地址保留在源代码管理上。如果您想移动到另一个地址,您将取消设置,并稍后移动该项目。

答案 1 :(得分:0)

这里有一些术语问题。工作空间映射只是一个本地路径列表以及要下载到它们的服务器路径。工作空间映射不是空的"在你做之前;当且仅当您没有从服务器路径到本地路径的任何映射时,工作空间映射才为空。

  1. 是。如果您设置了新工作区但没有进行获取,则可以取消搁置搁置集。这将导致您只保留文件,并且没有otehrs。

  2. 是。如果您在版本8中有一些文件Foo.cs,并且您取消了在版本6中更改的Foo.cs,那么现在您在版本6处有Foo.cs并且有搁置的更改。其他不在shelveset中的文件将保留它们所处的任何版本,搁置和搁置不会影响它们。

  3. 见#2。

  4. 一般来说,没有。您可以使用TFS Power Tools执行"取消搁置/合并"。

  5. 是。同样,这只会将您的文件恢复到它所搁置的版本。如果服务器上有更改,则需要执行“获取最新”以将本地(未保留)更改与服务器上的更改合并。如果您从未搁置过,那么这就模仿了工作流程。