将svn转换为mercurial的非平凡转换

时间:2014-10-27 10:05:55

标签: svn mercurial

我们有以下SVN结构:

trunk
  -- A
    -- x
    -- y
  -- B
  -- C
branches
  -- b1
    -- x
    -- y
  ...
tags
  -- t1
    -- x
    -- y
  ...

意思是,我们在主干下有3个文件夹,但分支和标签只能从A文件夹创建,并且只包含其内容。 我们现在正试图将其迁移到mercurial。我们真正想要的是A,B和C的3个存储库,其中A存储库具有中继以及所有分支和标记。 有没有办法做到这一点?我尝试过以下方法:

  • 不包括B和C - 我仍然得到一个我不想要的A文件夹。
  • 包含A并将其重命名为。 - 我按需要获得A存储库,但没有分支或标签
  • 使用convert.svn.trunk = trunk / A - 我仍然可以获得文件夹B和C

如果无法进行此转换,是否至少有一种方法可以获得仅包含部分存储库的工作副本(例如trunk / A,但没有A文件夹本身)?

1 个答案:

答案 0 :(得分:1)

您只需为解决方案2定义缺少的参数:

除了--filemap(include trunk/A + rename trunk/A .)添加svn.branchessvn.tags

稍有不同的解决方案可能

  • 使用hgsubversion(使用--layout auto
  • 克隆整个存储库
  • 使用转换功能剥离不需要的部分,并使用它--filemap