2012-03-28 141 views
7

我正尝试从已签出项目的本地工作区创建分支。TFS - 从本地工作副本创建分支

基本背景: 我从项目的“主干”中检出,并做了很多更改。
我现在想检查这些变化到一个新的分支。

我在源代码管理中创建了一个新分支 - 但我的工作空间仍然映射到中继。

我跟着从文章中,我发现这里的步骤:Branch from local workspace

所以我搁置了我的变化。
创建了一个分支。
使用TFPT从主干迁移到分支

tfpt unshelve "My uncomplete changes" /source:"$/MyRoot/MyProject-Trunk" /target:"$/MyRoot/MyProject-Branch" 

一切看起来能够顺利进行(除似乎支持已重命名的文件不 - 所以我不得不跳过它们)

但没有任何改变。
该分支是干线的精确副本(不包括本地更改)
我的工作空间仍然映射到干线。
如果我办理登机手续,它将检查进入行李箱。

我试图取消映射的检出版本我有,删除本地文件,然后检查出来的分支,然后取消搁置我所做的更改,但我充斥着

No appropriate mapping exists for $/Root/MyProject/Myfile.cs 

它似乎很简单,但TFS似乎增加了一个额外的复杂层在SVN中是如此简单的任务...
希望有些愚蠢我做错了。

任何帮助表示赞赏。

回答

5

试试这个:

  1. 您需要在您的工作空间中的新的分支,以看到任何变化(否则你只能看到签入的版本)。从Source Control Explorer,从工具栏中选择Workspace->Workspaces...
  2. 为您的工作区选择Edit并为您的新分支添加一个映射,例如 Active|$/Root/MyProject-Branch|<My Local TFS Storage>\MyProject-Branch
  3. 运行命令tfpt unshelve <shelveset> /migrate /source:$/Root/MyProject /target:$/Root/MyProject-Branch。它应该创建一个新的shelveset,其映射已更改为您的新分支。
  4. 尝试取消将新迁移的shelveset搁置到新分支上。

顺便说一下,在TFS术语是地图项目/支到本地存储,而不是“退房”为SVN。该术语用于您更改的那些文件;)。