我想任何过程都只会随着您在 mercurial 中的变化增加而变得更糟,并且与 SVN 中的变化相距甚远,而 SVN 中的变化永远不会与您的 mercurial 变化合并。但是,我很想知道 mercurial 与这种复杂性如何公平地合并。我会这样处理:
1)从 svn 导出以创建您的 hg 存储库,让我们将此/SvnExportCleanHG
Clone 称为工作副本,您公司的所有新功能都将在该副本中使用:/WorkingHG
2)当您想从 SVN 中提取新更改时,请执行 svn update from/SvnExportCleanHG
并将其提交到 clean repo。这将有 2 个修订版,来自 svn 的原始版本和最新版本。从内部/WorkingHG
运行hg pull /SvnExportCleanHG
并合并所有不可避免的变化。然后将其提交给 WorkingHG 存储库。
现在,您已尽最大努力尝试使用 mercurials 合并,并且您仍然/SvnExportCleanHG
可以从 SVN 中提取下一个更改而不会发生任何冲突。
每当您想再次从 svn 更新时,请执行第 2 步。从 svn 更新并在 clean repo 中提交永远不会冲突,因为它只会反映 svn,但它始终允许您从工作副本 HG 中提取和合并,因为它们是基于相同。
这取决于您的更改级别以及 SVN 的更改是否会为您带来很多收益。如果你们停留在代码的不同基线中,这将是一个很棒的工作流程,并且可以节省大量的手动工作。如果您重叠严重,这仍然有效,但它只会促进您的工作流程,而不是解决许多合并问题。
如果您尝试过,我会对它的结果非常感兴趣。