6

我有以下分支结构:

- Main
   |- Release 1
      |- Release 1.1
   |- Release 2

我想将 Release 1.1 重新设置为 Main 所以它看起来像

- Main
   |- Release 1
   |- Release 1.1
   |- Release 2

我想这样做的原因是因为许多变更集需要从 Main 合并到 Release 1.1 而不是Release 1

我一直在尝试使用以下命令从 Main 到 Release 1.1 进行毫无根据的合并:

tf merge /recursive /baseless $/Main $/Releases/Release1.1

效果很好,一旦签入,我可以将 Release 1.1 重新设置为 Main。

但问题是,这个命令合并了 Main 中的所有内容,我只想创建一个合并关系。我不想合并从 Main 到 Release 1.1 的所有内容,因为同时发生了其他分支的许多其他更改。

有没有办法实现这一点,或者所有未来的变更集每次都需要毫无根据地合并?

4

2 回答 2

5

根据 James Reed 的评论,在两个分支之间创建合并关系的最简洁方法是简单地删除/recursive参数:

tf merge /baseless $/Main $/Releases/Release1.1

然后,合并将仅包含目标分支根文件夹,您无需任何其他更改即可签入该文件夹,而无需挑选更改集。

于 2016-06-21T02:58:30.857 回答
4

为了仅仅创建关系 [而不是合并所有内容],我们需要通过传递选定的变更集编号来执行从父分支到潜在子分支的毫无根据的选择性合并。这可以按照博文中提到的以下步骤通过 GUI 实现: http: //roadtoalm.com/2012/09/19/reparent-of-a-source-controlled-branch-why-and-how/

虽然这篇博客讨论了重新父化,其中我们将潜在父分支的所有更改合并到子分支……但有时我们不需要新父分支的所有更改。那我们怎么办?这个想法是继续选择所有更改并将它们合并到子分支,然后撤消不需要的更改的挂起更改。一旦所有不需要的更改都取消完成,请继续并签入。然后根据博客,我们需要将 reparent 选项设置为新的父级。我知道这不是一个干净的方法,但这有效!

于 2014-06-16T15:17:56.110 回答