(另一个)从SVN存储库到HG存储库的最佳转换是什么?

时间:2010-03-04 18:09:09

标签: svn mercurial migration repository

我的公司有一个大型Subversion(SVN)存储库,由于各种原因,我们正在考虑迁移到Mercurial(HG)。我希望能够为我们的情况学习“最佳实践”的想法。

我们的SVN存储库相当单一,看起来像这样:

  • 躯干
    • Python_Project_1
    • Python_Project_2
    • Python_Shared_Code
    • Flex_Code
    • ObjC_Code
    • ...
  • 分支
    • Python_Project_1_Release_1.0.x
    • ...
  • 标记
    • Python_Project_1_Release_1.0.0
    • ...

目前,我们是我们任何代码和产品的唯一消费者。存储库中的其他资源,但转换原因的部分原因是我们可能/将与其他消费者共享我们代码的某些部分。因此,我们的项目将分为以下几类可访问性:

  • 私人密码(仅供我们使用)
  • 共享代码(与非公共合作伙伴共享)
  • 公共代码(通过开源许可共享)

此外,为了强调这一点,一些代码(例如,上面SVN存储库示例中的Python_Shared_Code文件夹)是跨项目共享的,因此应该可以轻松地用于任何Python项目(私有代码),并且可能需要适用于外部消费者(共享代码或公共代码)。

我有一些想法,我认为我会如何解决这个问题,但我希望在继续迁移之前先了解一些想法。

更新:我不确定从上面是否清楚,但特别是,我正在寻找有关HG存储库布局及其如何互动的建议。

更新:这个问题与之前提出的其他几个问题类似 - 但并不完全相同:

与之前问题的主要区别在于“可访问性”和共享代码的概念。一些项目是相互关联的(例如,Python_Project_1和Python_Shared_Code),并且一些项目可能需要与外部实体共享(即,共享代码和公共代码)。已经讨论了将单个单片SVN存储库拆分为多个HG存储库的概念,但我还没有找到任何先前讨论过的共享类型的概念。

1 个答案:

答案 0 :(得分:1)

我会说this answer做得很好,建议每个模块单独回购。

this answer中,我建议使用子版本(are ready)或(我的偏好)构建系统,该系统从常春藤等本地构建框中提取依赖项。