如何合并两个或多个流

blu*_*sky 6 rtc

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

这是我目前的工作方式:

  1. 创建一个新的Stream - Stream3.流3将包含Stream1和Stream2的合并
  2. 从Stream3创建一个新的repositroy工作区(称为workspace1)
  3. 将workspace1的流目标设置为Stream1
  4. 在"待定更改"中,Stream1中可用但Stream2中不可用的所有更改集现在都应显示为可以传递到Stream3的更改集

这是合并2个或更多流的最佳实践还是更优雅的方法?

Von*_*onC 12

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

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

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

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

"接受"阶段是合并发生的地方(自动,或者如果发生冲突则手动).
正如这个帖子中提到的:

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

最后一步假设您返回"流目标"部分,并将"当前"设置为默认流.

我更喜欢这个工作流程:

合并

在这里,布伦特将当前设置为目标流,以便提供合并的结果.这是另一种工作流程,也在" 如何使您的流在Rational Team Concert 3.0.1中流畅地流动 "中进行了描述.

  • @ user470184"不良做法":是的.当您从"流A"合并到"流B"时,您*不会*创建新流."流B"*意味着*接收这些变更集.这就是合并的全部内容.如果合并太复杂,你想要与几个开发人员合作完成它,你需要创建一个新的Stream,然后再将你的`Stream3`合并到`Stream2`.尽可能避免这种情况. (2认同)