我有一个SVN repo,其结构如下:
/分支
/标签
/后备箱
/中继/模块1
/中继/模块2
/ trunk / module3
我正在尝试将其分成单独的Mercurial回购,其中每个新的Mercurial回购保留该模块文件的修订历史记录。最终结果将是
/模块1-HG
/模块2-HG
/单词数-HG
根据本指南(http://wiki.colar.net/selectively_converting_subversion_repository_to_mercurial),
我尝试过使用
hg --config convert.svn.trunk=trunk/module1 convert https://repo.url/ module1-hg
但是会导致以下错误:
abort: expected trunk to be at 'trunk/module1', but not found
我能够转换整个SVN存储库,但我真的想在此时分离模块。我觉得我只是找不到一个很好的语法例子来分开这些。有人可以帮忙吗?
答案 0 :(得分:3)
我最近这样做但是我分几步完成了。
首先,我将整个回购转换为SVN回购的镜像。我使用了hgsubversion
扩展程序,但是如果您使用convert
扩展程序,那就没关系了。
第二步是拆分回存的地方。我使用convert
扩展名和文件图来排除某些文件夹并重命名其他文件夹。
例如:
hg convert bigrepo module1-hg --filemap module1.txt
module1.txt
将包含以下内容:
exclude module2
exclude module3
rename module1 .
这将创建一个名为module1-hg的repo,不包括模块2和3.它还会将module1的源移动到repo的根目录而不是子目录。
然后,您可以使用类似的文件映射文件重复模块2和3的操作。