我有一个具有以下布局的Subversion存储库:
svnrepo/projectA/trunk
svnrepo/projectA/tags
svnrepo/projectA/branches
svnrepo/projectB/trunk
svnrepo/projectB/tags
svnrepo/projectB/branches
我想转到经过修改的版式的商品回购中:
hgrepo / projectA
hgrepo / projectB
最好的方法是什么?我的一些想法是:
选项1
将Subversion中的路径重新排列(使用svn move)为中间格式:
svnrepo/trunk/projectA
svnrepo/trunk/projectB
svnrepo/tags/projectA
svnrepo/tags/projectB
svnrepo/branches/projectA
svnrepo/branches/projectB
然后hg在svnrepo / trunk上转换。这会混淆hg导入吗?
选项2
hg将每个项目/主体转换为单独的hg仓库。然后将它们合并到一个单独的hg仓库中(使用hg init,hg pull -f projectA等)。我认为这将丢失第一个导入项目上的分支名称和标签。
最佳答案
在Mercurial中,将不相关的代码库存储在同一存储库中是一个坏主意,因为它将
合并非常复杂。合并将取决于对所有项目所做的更改,而不仅仅是您要合并的项目。
导致存储和检出开销-据我所知,Mercurial不支持仅检出存储库的子目录。您必须一次分支所有项目。
解决方案是将您的单个Subversion存储库转换为多个Mercurial存储库。大多数转换工具都支持此功能。