【发布时间】:2019-07-08 18:37:34
【问题描述】:
我认为在 TFS 中重新设置分支的意义在于,当我有充分的理由时,我可以设置任何我希望的父分支。
但是,当我考虑将功能分支重新设置为属于不同的发布分支时,显示的对话框仅包含两项:
- 当前父分支
- “没有父母”
这似乎不是很有用。我是否误解了该功能,或者我可以做些什么来重新考虑其他分支?
【问题讨论】:
标签: tfs
我认为在 TFS 中重新设置分支的意义在于,当我有充分的理由时,我可以设置任何我希望的父分支。
但是,当我考虑将功能分支重新设置为属于不同的发布分支时,显示的对话框仅包含两项:
这似乎不是很有用。我是否误解了该功能,或者我可以做些什么来重新考虑其他分支?
【问题讨论】:
标签: tfs
是的,这是正常现象。通常,您只会看到父分支,“无父”和子分支。
如果你想reparent到其他分支,你必须先设置两个分支之间的关系。
解决方案是毫无根据的合并:tf merge /recursive /baseless new target branch child branch 之后,您将在对话框中看到新的目标分支。更多详细信息和步骤请参考此博客:Reparent of a TFS Source Controlled Branch.
【讨论】:
正如@StingyJack 所提到的,我一直在尝试通过与无根据的合并创建关系来重新建立一个分支,但在无根据的合并期间实际上没有更新子分支上的任何文件。
使用TF merge command,和/discard 开关集,允许我们在分支之间创建关系,而无需修改子分支并启动关系,并且之间没有挂起的合并他们:
tf merge $/Path/To/NewParent $/Path/To/Child /baseless /discard /recursive
然后您可以简单地将子分支重新设置为新的父分支。
(我首先尝试合并空格或注释更改,并忽略其余毫无根据的合并更改,但这并没有创建启用重新父级的关系(并且每次撤消 70 000 次更改需要 45 分钟以上))。
【讨论】: