我们有两个版本(1.0和2.0)的项目都是积极维护的。它基本上是同一个项目(就变化而言),但基于不同的基本版本(base1.0和base2.0)。 1.0中更改的所有内容也必须移植到2.0。 base1.0和base2.0也是如此。
在mercurial中,我们有4个分支: base1.0 , 1.0 , base2.0 和 2.0 。像这样:
__2.0
__base2.0__/
/
__base1.0__/___1.0____________
现在,每当我们更改基本版本中的某些内容时,我们会在 base1.0 中进行更改并执行hg合并到 base2.0 。这里没问题。
现在,当我们为 1.0 执行相同操作并希望将它们合并到 2.0 时,我们还必须重新合并整个 base1.0 分支到 2.0 ,虽然已经完成了从 base1.0 创建 base2.0 。
解决此问题的最有效方法是什么?我有几个方法:
有什么想法吗?作为整个SCM概念的新手,我只想听听其他人在这种情况下所做的事情。感谢。
答案 0 :(得分:0)
我实际上解决了我的问题。我会将其添加为答案,也许其他人认为它很有用。
我真正需要的是挑选从 1.0 到 2.0 的所有更改。 hg graft做得非常好,但是对于每个变更集都会在 2.0 上创建一个额外的提交并使我的图形混乱。
所以我做的是创建我的repo的克隆,然后使用hg移植从 1.0 移植到 2.0 的所有变更集。然后我输出了预移植和移植后的差异,并将差异作为补丁导入到原始回购中。
基本上是累积的“贪污”,没有关于它来自何处的任何信息。在这种情况下,这正是我需要和为我工作的。