代码之家  ›  专栏  ›  技术社区  ›  Matt Joiner

从反复无常到颠覆

  •  23
  • Matt Joiner  · 技术社区  · 15 年前

    由于几种工具缺乏灵活的支持和管理上的压迫,为了符合公司标准,有必要将多个试用版的Mercurial存储库转换为颠覆版。

    对于如何在不丢失修订历史等情况下实现这一点,是否有任何工具或建议?

    3 回复  |  直到 9 年前
        1
  •  28
  •   Matt Joiner    15 年前

    使用mercurial附带的convert扩展可以使用mercurial作为src,使用subversion作为dest。

    hg convert --dest-type svn hgreponame svnreponame
    

    确保在.hgrc文件中启用它。

    如果你想秘密使用mercurial,那么 hgsubversion 将允许您进行双向同步。

        2
  •  9
  •   nitwit    13 年前

    上面Ry4an的答案确实能做到这一点;对于像我这样有困难的人,一些更详细的说明:

    1. 帮你自己一个忙 不要 在Windows上尝试此操作。您必须安装一个非常特定的SVN版本,即使这样,某些事情也会因各种错误消息而失败。我的解决方案是启动一个干净的AWS实例,yum将最新版本的mercurial和svn放到上面,克隆hgprepo,然后在那里运行convert。

    2. 将此添加到.hgrc文件以启用 convert 扩展:

      [extensions]
      hgext.convert=
      
    3. 运行此命令:

      hg convert --dest-type svn <hg_directory> <directory_for_svn_output>
      
    4. 可能会出现以下错误:

      abort: svn exited with status 256
      

      不要放弃!只需再次运行相同的命令,它就会在停止的地方继续运行。

      如果您继续遇到麻烦,请添加 --debug --traceback 到命令行,以获取有关发生错误的详细信息。

        3
  •  3
  •   Mikael S    15 年前

    Tailor 应该能够做你想做的。