6

如果我有两个开发流(称为 Stream1、Stream2)并且我想将这两个流合并为一个流。

这就是我目前的做法:

  1. 创建一个新的流 - Stream3。Stream 3 将包含 Stream1 和 Stream2 的合并
  2. 从 Stream3 创建一个新的存储库工作区(称为 workspace1)
  3. 将workspace1的流目标设置为Stream1
  4. 在“待定更改”中,Stream1 中可用但 Stream2 中不可用的所有更改集现在应该显示为可以交付给 Stream3 的更改集

这是合并 2 个或更多流的最佳做法,还是有更优雅的方法?

4

1 回答 1

12

创建一个新流???没必要。

当您打开一个 repo 工作区时,您有一个名为“流目标”的部分,其中包含由您的流(特征为“默认”)。

向其中添加流源(您要合并的流),将其设置为“当前”,您将在“待定更改”视图中看到“传入”部分,其中包含来自该的所有更改集或基线源流。

这个想法是让您接受这些更改集,将它们加载到本地工作区并测试它们(编译和测试),然后它们交付回您的默认流。

“接受”阶段是合并发生的地方(自动进行,如果冲突则手动进行)。
正如这个线程中提到的:

RTC 中的合并算法在逻辑上与 ClearCase 中的相同,即给定一个配置(流、工作区),选择给定文件的不同版本,找到两个版本的共同祖先,然后执行 3-方式合并。
更改工作区的“流目标”只是 RTC 让您指定要合并到工作区的分支(流)的方式(cleartool findmerge为您提供相同的灵活性)。
请注意,ClearCase 和 RTC 使用不同的共同祖先算法。

最后一步假设您返回“流目标”部分,并将默认流设置回“当前”。

我更喜欢这个工作流程而不是这个:

合并

在这里,布伦特将目标流设置为当前,以传递合并的结果。这是另一种工作流程,也在“如何在 Rational Team Concert 3.0.1 中保持您的流顺畅流动”中进行了描述。

于 2012-11-30T14:41:56.620 回答