代码之家  ›  专栏  ›  技术社区  ›  jkerian

hg从svn转换,需要从多个地方拉分支

  •  2
  • jkerian  · 技术社区  · 14 年前

    我在试图转换为hg的svn存储库中遇到了一些奇怪的问题。我们的存储库大致是这样的。

    proj_root  ___ trunk
           \  \___ tags
            \_____ branches __A
                       \   \__B
                        \_____Q __ C
                              \___ D
    

    理想情况下我可以指定 --config convert.svn.branches=branches;branches/Q 或是一些不理智的事情。(Q本身不包含分支机构,仅包含两个“分支机构”。

    我刚刚转换完一个存储库,其中Q只有一个子目录,解决方案很简单。 rename C/ . 在--filemap选项中,但在这种情况下(Q分支交错C和D)会非常明显地失败。

    理想情况下,我可以一次完全忽略Q,然后使用convert.svn.branchs选项设置为branchs/Q执行第二次转换,但无法在文件映射中使用以下语法:

    exclude "Q C D"
    

    也不是

    exclude "C D"
    

    我希望排除C和D将防止在该分支上导入任何文件,并且由于我有一个指定的filemap,因此生成的空提交将被删除。无论我尝试过何种语法选项,都无法使用exclude指令来排除任何目录。

    编辑:我希望得到的最终结果是一个以主干为正常尖端、命名为分支a、B、C和d的mercurial回购协议。。。如果我能搞清楚怎么做的话,那个愚蠢的问题就可以在转换过程中消失。

    1 回复  |  直到 14 年前
        1
  •  1
  •   jkerian    14 年前

    因为某些原因,当我昨天尝试这个的时候,它不起作用,但是今天它起作用了。。。

    文件映射

    exclude "C"
    exclude "D"