我有以下分支结构:
- Main
|- Release 1
|- Release 1.1
|- Release 2
我想将Release 1.1重新发布为Main,所以它看起来像
- Main
|- Release 1
|- Release 1.1
|- Release 2
我想这样做的原因是因为需要将许多变更集从Main合并到1.1版,但不合并到版本1
我一直在尝试使用以下命令从Main到Release 1.1进行无基本合并:
tf merge /recursive /baseless $/Main $/Releases/Release1.1
效果很好,一旦签入,我可以将1.1版重新发布到Main。
但事实是,这个命令合并了Main的所有内容,我只是想创建一个合并关系。我不想合并从Main到Release 1.1的所有内容,因为其他分支的许多其他更改同时发生。
有没有办法实现这一目标,还是所有未来的变更集都需要每次都毫无根据地合并?
答案 0 :(得分:4)
要仅创建关系[并且不合并所有内容],我们需要通过传递选定的变更集编号来执行从Parent到潜在子分支的无基本选择性合并。这可以通过GUI按照博客文章中提到的以下步骤来实现: http://roadtoalm.com/2012/09/19/reparent-of-a-source-controlled-branch-why-and-how/
虽然这篇博客谈到了重新定位,其中我们将所有的变化从潜在的父分支合并到子分支......但是有时我们不需要来自新的父分支的所有变更。那我们做什么?我们的想法是继续选择所有更改并将它们合并到子分支,然后撤消对不需要的更改的挂起更改。一旦完成所有不需要的更改,请继续并办理登机手续。然后根据博客我们需要将reparent选项设置为新父级。我知道这不是一个干净的方法,但这有效!
答案 1 :(得分:4)
基于James Reed评论,在两个分支之间创建合并关系的最简洁方法是简单地删除/recursive
参数:
tf merge /baseless $/Main $/Releases/Release1.1
然后合并将只包含目标分支根文件夹,您可以在不进行任何其他更改的情况下检入该文件夹,而无需选择更改集。