如何合并两个或多个流

时间:2012-11-30 14:22:20

标签: rtc

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

目前我正是这样做的:

  1. 创建一个新的Stream - Stream3。 Stream 3将包含Stream1和&的合并。流2
  2. 从Stream3
  3. 创建一个新的repositroy工作区(称为workspace1)
  4. 将workspace1的流目标设置为Stream1
  5. 在“待定更改”中,Stream1中可用但Stream2中未提供的所有更改集现在都应显示为可以传递到Stream3的更改集
  6. 这是合并2个或更多流的最佳实践还是更优雅的方法?

1 个答案:

答案 0 :(得分:12)

创建新流???没必要。

当您打开一个repo工作区时,您有一个名为“Flow targets”的部分,它包含在您的Stream中(表示为“Default”)。

添加Stream源(要合并的Stream),将其设置为“current”,您将在“Pending changes”视图中看到包含所有更改集或基线的“Incoming”部分来自源流。

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

“接受”阶段是合并发生的地方(如果发生冲突,则自动或手动) 如this thread中所述:

  

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

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

我更喜欢这个工作流程:

merge

此处Brent会将目标流设置为当前,以便提供合并的结果。这是另一种工作流程,也在“How to keep your streams flowing smoothly in Rational Team Concert 3.0.1”中进行了描述。