将Subversion存储库拆分为多个Mercurial存储库?

erj*_*ang 17 svn mercurial mercurial-convert

我们正在从Subversion迁移到Mercurial,并且在SVN-> Hg转换过程中遇到了麻烦.现在,我们的单个SVN仓库为几个不同的"项目"保留代码,我们希望在迁移过程中将它们分开.我们的SVN回购组织为:

.
|-- proj1
|   |-- branches
|   |-- tags
|   `-- trunk
`-- proj2
    |-- branches
    |-- tags
    `-- trunk
Run Code Online (Sandbox Code Playgroud)

我们想简单地制作proj1proj2他们自己的Hg回购.当然,我们也没有特定的历史记录proj1出现在proj2日志中.现在,hg convert转换什么时候,它只是非常愚蠢地读取所有文件,甚至没有区分分支与中继.

按目录过滤和识别SVN分支的过程是hg convert什么?

erj*_*ang 8

感谢ConvertExtension维基页面,我现在已经开始工作了!

我尝试了Ry4an的方法,但它的缺点是必须首先将SVN repo转换为中间的Mercurial仓库,然后才能拆分所有内容,而且分支,主干和标签都没有被识别,因为有两个项目都有自己的分支机构,主干和标签.

我发现手动指定branches,trunk和tags目录非常适合一次将一个项目从SVN转换为Mercurial:

hg \
--config convert.svn.trunk=proj1/trunk \
--config convert.svn.branches=proj1/branches \
--config convert.svn.tags=proj1/tags \
convert --authors authors.txt original-svn-dir hg-proj1
Run Code Online (Sandbox Code Playgroud)

这将负责识别SVN分支,标签和中继,并同时过滤仅proj1修订.然后,我只是重复了一遍proj2.