我们有一个具有多年开发历史的CVS存储库和一个项目下的3个项目(CVS文件夹)。这些应该是Mercurial仓库中的不同存储库。它们采用以下方案:
项目
---子项目1
---子项目2
---子项目3
答案 0 :(得分:6)
执行此操作的最佳方法是将整个存储库从CVS转换为mercurial,然后使用带有hg convert
的{{1}}命令将该单个mercurial repo转换为多个mercurial repos(转换将转换从hg到hg)。您的文件映射会说:
--filemap
这将丢弃不在子项目1中的所有内容,然后将子项目移到顶部(注意尾随点)。
如果您使用每个子项目的文件映射运行,每次使用完整的回购作为输入,您将最终得到您想要的。
有些人已经构建了shell脚本来执行此操作,但如果它只是其中的3个,那么它应该非常快。
答案 1 :(得分:2)
只需将cvs2hg运行三次,每次都将其指向CVS存储库中的项目子目录;如,
cvs2hg [OTHER-OPTIONS...] $CVSROOT/Project/SubProject1
将结果写入三个独立的Mercurial存储库。