将mercurial变换集移植到hgsubversion转换的存储库中

时间:2011-02-25 10:12:22

标签: mercurial migration hgsubversion

我一直在从颠覆转向mercurial零碎,这造成了一些纠结。我有一个旧的SVN服务器(1.4之前的版本),所以这就是发生的事情。

  1. HgSubversion不想从主干中提取完整的历史记录,所以我进行了浅层转换。
  2. 我的同事们最后一次向SVN做了承诺,然后把它们拉进了Hg。
  3. 我们搬到了Hg并开始向它推进
  4. 为了安全起见,我的一位同事对SVN提出了更多承诺。
  5. 我管理升级SVN服务器并获得新SVN的完整回购。
  6. HgSubversion成功完成了整个历史记录 - 包括少量额外/重复提交。
  7. 现在我想将浅层mercurial存储库中的提交“移植”到完整的历史记录中,存储库与内容相关但在mercurial哈希中无关。只需复制粘贴内容,这将是迁移的最佳方式变化 ?最终每个人都应该能够:

    1. 使用完整历史记录切换Hg回购并继续工作
    2. 作为服务用户自动从合适的压扁/重新定位的变更集的Hg回购推送到SVN。
    3. 我想要一个具有以下场景的具体示例。

      • 第2步的最后一个mercurial哈希 - A
      • 推送步骤3 - B后的当前mercurial哈希
      • 从升级的SVN-C
      • 拉出后的最后一次提交的哈希
      • 完整SVN历史记录拉后的第2步哈希 - D

      我不擅长ASCII艺术,随意添加一个奖励积分。

1 个答案:

答案 0 :(得分:2)

我们做了一个CVS - > Mercurial迁移上周在工作。就像你的情况一样,有些人继续使用CVS一段时间。

为了在CVS服务器最终关闭时同步这两个存储库,我执行了以下操作:

  1. 通过cvs2hg
  2. 将CVS转换为mercurial
  3. 使用hg export
  4. 导出每个新修订
  5. 使用hg patch
  6. 导入补丁文件

    只有十几个版本,所以这没什么大不了的...如果你有更多的修订,你可以看看移植扩展。

    希望这有帮助。