TFS重新分配分支-仅显示当前父级和;“没有家长”;

TFS重新分配分支-仅显示当前父级和;“没有家长”;,tfs,Tfs,我认为在TFS中重新租用分支的意义在于,当我有充分的理由这样做时,我可以设置我想要的任何父分支 但是,当我查看将功能分支重新出租为属于不同的发布分支时,显示的对话框仅包含两项: 当前父分支 “没有家长” 这似乎不是很有用。是我误解了功能,还是我可以做些什么来重新租到其他分支?是的,这是正常现象。通常,您只会看到父分支、“无父”和子分支 如果要重租到其他分支,必须先设置两个分支之间的关系 解决方案是无基础合并:tf merge/recursive/baseless new target bra

我认为在TFS中重新租用分支的意义在于,当我有充分的理由这样做时,我可以设置我想要的任何父分支

但是,当我查看将功能分支重新出租为属于不同的发布分支时,显示的对话框仅包含两项:

  • 当前父分支
  • “没有家长”

这似乎不是很有用。是我误解了功能,还是我可以做些什么来重新租到其他分支?

是的,这是正常现象。通常,您只会看到父分支、“无父”和子分支

如果要重租到其他分支,必须先设置两个分支之间的关系


解决方案是无基础合并:
tf merge/recursive/baseless new target branch子分支
,之后,您将在对话框中看到新的目标分支。更多详细信息和步骤请参阅本博客:

如@StingyJack所述,我一直试图通过创建与无基础合并的关系来重新设置分支的父级,但在无基础合并过程中没有实际更新子分支上的任何文件

使用带有
/discard
开关集的,我们可以在分支之间创建关系,而无需修改子分支,也无需启动关系,它们之间也无需挂起合并:

tf merge $/Path/To/NewParent $/Path/To/Child /baseless /discard /recursive
然后,您可以简单地将子分支重新设置为新父分支的父分支


(我第一次尝试合并空白或注释更改,并忽略其他毫无根据的合并更改,但这并没有建立一种关系来支持重新设置父项(每次撤销70000个更改需要45分钟以上)。

哦,这很有趣。我最终进行了无基础的合并,但我没有意识到,在不相关的分支之间进行第一次无基础的合并之后,您就可以重新分配-这就是您所说的?是的,这就是重点。baseless merge的操作只是在两个分支之间设置了一个关系。它是否应该为每个需要在运行上述命令后签入的项目生成一个[merge]或[merge,branch]挂起的更改?@StingyJack是的,这是未更改文件的预期行为,[merge]状态,但有一个合并操作,[merge branch]表示从源复制的目标中的新添加项。在建立合并关系时,似乎不适合在任一分支中添加任何新项或更改任何项。只有在合并变更集时,我才希望影响目标。