在我的项目中,我们有一些情况可以从一些主流分支出来,用于Beta和候选发布等重要里程碑。
一旦我们将构建版本发送给客户,我们就会将代码合并回主流。这是一个简单的交付操作,没有rebase。
现在,我们还需要将一些非常旧的流(几乎已过时)合并到主流。我找到了两个选项:
1)交付替代目标
2)合并经理
我们的项目中不允许使用选项1。
我的问题是:
两者之间有什么区别?为什么一个人比另一个人更受欢迎?
答案 0 :(得分:0)
简单:
deliver to alternate target
(或deliver to default
就此而言)是一个UCM合并,它必须遵循UCM规则,特别是关于活动依赖性,但也涉及Stream(你不应该{{ 1}}从父流到子流,应该是deliver
)
rebase
是两个分支(而不是Streams)之间的简单ClearCase合并,它可以将分支Merge Manager
中的任何文件子集传递到分支A
,而无需遵循任何merge workflow。
我经常看到“合并经理”选择用于UCM因为“活动依赖性”的原因而无法提供交付的情况,即使没有。 有关此类案例的示例,请参阅“Clearcase UCM - Cross delivering vs. delivering upwards?”。
不允许说“B
”,表示只有deliver to alternate target
,这意味着您必须遵循Streams层次结构建立的合并工作流程。
UCM合并可以更好地显示baselines之间的合并,这意味着您知道所有已合并给定组件的文件。
但是,合并管理器是一个普通合并,它可以涉及任何两个分支,以及任何两个(或更多)文件。该合并没有更高的可见性:它是逐个文件的操作(而不是组件 - 或一组连贯的文件 - 一个)。