【问题标题】:Transplanting mercurial changeset onto hgsubversion converted repository将 mercurial 变更集移植到 hgsubversion 转换的存储库中
【发布时间】:2011-02-25 10:12:22
【问题描述】:

我一直在从颠覆迁移到反复无常的零碎,这造成了一些混乱。我有一个旧的 SVN 服务器(1.4 之前),所以这就是发生的事情。

  1. HgSubversion 不想从主干中提取完整的历史记录,所以我做了一个浅转换。
  2. 我的同事完成了他们对 SVN 的最后一次提交,而我将它们拉入了 Hg。
  3. 我们搬到了 Hg 并开始向它推进
  4. 为了安全起见,我的一位同事对 SVN 做了更多的承诺。
  5. 我成功升级了 SVN 服务器并获得了新 SVN 的完整存储库。
  6. HgSubversion 成功提取了完整的历史记录 - 包括少数额外/重复的提交。

现在我想将浅 mercurial 存储库中的提交“移植”到完整的历史记录中,存储库在内容上相关但在 mercurial 哈希中不相关。除了复制粘贴内容之外,什么是迁移的最佳方式变化 ?最终每个人都应该能够:

  1. 切换具有完整历史记录的 Hg 存储库并继续工作
  2. 作为服务用户,从 Hg 存储库自动推送合适的压缩/重新设置变更集到 SVN。

我想要一个具有以下场景的具体示例。

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

我不是很擅长 ASCII 艺术,请随意加一个加分。

【问题讨论】:

    标签: mercurial migration hgsubversion


    【解决方案1】:

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

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

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

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

    希望这会有所帮助。

    【讨论】:

    • 我将不得不尝试补丁/导出组合。我们有一个外部生产 SVN 回购 - 关于从 mercurial 回推到 SVN 的想法?
    • 不知道抱歉,也许可以试试 Mercurial 钩子机制
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 2013-12-11
    • 1970-01-01
    相关资源
    最近更新 更多