如何将svn repo导入mercurial repo?

时间:2010-11-29 12:00:27

标签: svn mercurial

我正在使用转换扩展程序,所以我不确定它是否是正确的工具,因为:

hg convert svn://svn blah

给出:

svn://blah does not look like a Subversion repository

假设我的仓库没有匿名访问权限,我该怎么做?

2 个答案:

答案 0 :(得分:3)

您需要在您的subversion存储库中使用http网址,或者更好地将整个内容与svnsync结合使用,并使用file网址。以下是一些更多细节:

https://www.mercurial-scm.org/wiki/ConvertExtension#More_about_Subversion_URL_and_Paths_Handling

答案 1 :(得分:1)

使用Mercurial的convert extension

  1. 启用转换扩展;将convert=添加到.hgrc的[extensions]部分,如下所示:
      

    [扩展]
      转换=

  2. Linux需要额外的python绑定:sudo apt-get install python-subversion
  3. 执行hg convert命令
    • 请参阅hg convert -h寻求帮助
    • 示例:hg convert http://[svnserver]/[Project] --source-type svn [DestinationDir] (参见注释2)
  4. 推送到新创建的Mercurial存储库:hg push https://[mercurialserver]/[Project]
  5. 注意:您甚至可以重复执行hg convert命令,以包含上次转换后在svn存储库中所做的新更改。

    note 2 :当hg转换无法使用http://svn://时,您可以首先签出Subversion存储库(或更新现有存储库)并进行转换使用当地结账;例如:hg convert [DirectoryOfLocalCheckout] --source-type svn [DestinationDir]