我在试图转换为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回购协议。。。如果我能搞清楚怎么做的话,那个愚蠢的问题就可以在转换过程中消失。