【问题标题】:How to convert a single Subversion project to Mercurial repository?如何将单个 Subversion 项目转换为 Mercurial 存储库?
【发布时间】:2013-06-04 04:13:31
【问题描述】:

我有一个旧的 Subversion 存储库,其中包含 许多项目。每个项目都遵循 SVN 的规范 trunk-branches-tags 约定。

我可以使用以下方法将整个 SVN 存储库转换为 Mercurial:

$ hg convert /some-path/old-svn-rep
# This creates old-svn-rep-hg

$ cd old-svn-rep-hg
$ hg update
# Can see all the projects as separate directories

如果你了解SVN,你就知道/some-path/old-svn-rep里面的目录组织是:

$ ls /some-path/old-svn-rep
conf/
db/
hooks/
locks/
format
README.txt

我如何将这个 SVN 存储库中的单个项目(例如名为 Foo)转换为 Mercurial 存储库?

这显然行不通:

$ hg convert /some-path/old-svn-rep/Foo
assuming destination Foo-hg
initializing destination Foo-hg repository
/some-path/old-svn-rep/Foo does not look like a Subversion repository

请假设SVN项目的主干、很多分支和标签都有变化。

【问题讨论】:

    标签: svn mercurial mercurial-convert


    【解决方案1】:

    hg convert 可以采用任何 URL,您可以在 SVN 存储库中签出项目。

    在我的测试中,svn checkout /some-path/old-svn-repo/Foo 也不起作用。如果您要从本地文件系统克隆某些内容,则需要在其前面加上 file:// 前缀 - 即 svn checkout file:///some-path/old-svn-repo/Foo

    hg convert 也一样,所以试试hg convert file:///some-path/old-svn-repo/Foo

    【讨论】:

    • 史蒂夫:我在使用file://时遇到了同样的问题。
    • 你有三个'/'吗?两个用于file://,一个用于路径的开始。我会尝试使用 svn 检查项目并将该确切路径复制到 hg convert 语句中 - 它应该可以工作。
    【解决方案2】:

    HGSubversion 扩展和克隆 SVN-repo (hg clone)从项目根目录

    【讨论】:

      【解决方案3】:

      我可以通过以下步骤做到这一点:

      svnadmin create Foo
      

      我需要更改此命令,因为我无权访问 svn 服务器,因此在克隆期间版本不匹配:

      svnadmin create --compatible-version 1.6 Foo
      

      在此处执行步骤 1-5:howto use svnsync to mirror a repository on windows

      svnsync init file:///projects/Foo /some-path/old-svn-rep/Foo
      svnsync sync file:///projects/Foo
      

      按照此处的步骤 2 创建 usermapping.txt:Goodbye Subversion, Hello Mercurial: A Migration Guide

      安装 hgsubversion:hgsubversion

      hg clone --config extensions.hgsubversion=/path-to-hgsubversion / 
      --config hgsubversion.authormap=usermapping.txt / 
      file:///projects/Foo hg-Foo
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多