汞和SVN工作流问题



我有一个有趣的源代码管理工作流程问题。

我的公司正在与第三方承包商合作,该承包商正在使用SVN来跟踪目前正在积极开发的产品。 我们将在未来几个月内接管这个存储库,但我们希望开始开发项目中的其他功能。 出于显而易见的原因,我们的承包商拒绝了我们提交访问权限,但同意读取其SVN存储库的访问权限。

对于我们的Windows开发机器,我们使用一个可变的存储库。 我想以某种方式将 SVN 存储库复制到新的 HG 存储库,并定期将提交到 SVN 的更改合并到 HG 中。 换句话说,我们将在两个不同的存储库中并肩工作。

有人做过这样的事情吗? 对方法有什么建议吗?

谢谢。

我想任何过程只会变得更糟,因为你的汞变化增加,并且与SVN的变化越来越远,这些变化永远不会与你的汞变化合并。 但是,我很想知道汞如何与这种复杂性公平地融合在一起。 我会这样处理它:

1) 从 svn 导出以创建您的 hg 存储库,我们称之为/SvnExportCleanHG将其克隆到一个工作副本中,您公司的所有新功能都将在其中使用:/WorkingHG

2)当您想从SVN中提取新更改时,请从/SvnExportCleanHG进行svn更新并将其提交到干净的存储库中。 现在将有 2 个修订版,来自 svn 的原始和最新版本。 从内部运行/WorkingHG hg pull /SvnExportCleanHG并合并所有不可避免的更改。 然后将其提交到 WorkingHG 存储库。

现在您已经尝试尽最大努力使用汞合并,并且您仍然有一个干净的/SvnExportCleanHG,您可以从SVN中提取下一个更改而不会发生任何冲突。

每当您想再次从 svn 更新时,请执行步骤 2。从 svn 更新并在干净存储库中提交永远不会冲突,因为它只会反映 svn,但它始终允许您从工作副本 HG 中提取和合并,因为它们基于相同。

这取决于您的更改级别以及SVN的变化,如果汞合并会为您带来很多好处。 如果你们停留在不同的代码基线中,这将是一个很好的工作流程,并节省大量的手动工作。 如果您大量重叠,这仍然有效,但它只会简化您的工作流程,而不是解决许多合并问题。

如果您尝试过,我会对它是如何工作的非常感兴趣。

SVN + Mercurial 工作得很好,直到你开始合并。但是,如果您不使用合并,为什么还需要汞。我们几乎遇到了这种情况。我们使用hgsubversion扩展将svn复制到mercurial,现在所有活跃的开发都在mercurial中。然后,我们只是将Mercurial工作目录复制到SVN,而无需历史记录和所有分支。

最新更新