从Mercurial转换为Subversion

时间:2009-12-14 04:55:16

标签: svn version-control mercurial migration

由于缺乏对多种工具的Mercurial支持以及管理压迫,因此有必要将多个试用版Mercurial存储库转换为Subversion,以符合公司标准。

是否有任何工具或建议可以在不丢失修订历史记录等的情况下实现这一目标?

3 个答案:

答案 0 :(得分:28)

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

hg convert --dest-type svn hgreponame svnreponame

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

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

答案 1 :(得分:9)

Ry4an上面的回答完全诀窍;对于遇到麻烦的任何人(比如我)的一些更详细的说明:

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

  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以获取有关错误的详细信息。

答案 2 :(得分:3)

Tailor应该能够做你想做的事。