TFS - 从本地工作副本创建分支

时间:2012-03-28 12:38:31

标签: visual-studio-2010 version-control 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中的这么简单的任务添加了额外的复杂性...... 希望有些蠢事我做错了。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分: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. 尝试取消将新迁移的搁置集支撑到您的新分支上。
  5. 顺便说一下,在TFS中,术语是将映射项目/分支到本地存储,而不是像在SVN中那样“签出”。该术语用于您更改的文件;)。