我已经使用'hg convert'命令尝试将我的SVN存储库移动到hg,它似乎工作(需要一段时间并打印出所有提交消息),但最后结果Mercurial目录为空。它有.hg隐藏的子目录,它大约200 MB所以SOMETHING发生了,但没有文件存在。
有什么想法吗?
我唯一可以想到的是,我们有很多项目,每个项目都有自己的主干,分支,标签,而不是拥有顶级主干,分支机构,标签目录:
svn-repository/
Project1/
trunk/
branches/
tags/
Project2/
trunk/
branches/
tags/
等...
这会导致问题吗?我的理解是SVN并不真正关心你如何组织存储库,而是Mercurial?
答案 0 :(得分:29)
您需要运行hg update
才能获得正常工作的副本。
(没有工作副本的这种mercurial存储库可以用作纯粹的通信点,其中推送或撤销修订,就像一个subversion服务器。在这种情况下,它是由hg convert创建的,但你也可以创建这样的存储库使用hg clone --noupdate
或hg update null
。省略工作副本文件可节省一些空间。)
另外,我建议您单独转换每个项目。如果您提供“project1”的网址,hg convert
会自动检测trunk
,branches
和tags
子文件夹,并会做正确的事情。
在mercurial中,分支是一流的概念,而不仅仅是恰好已经从主干中复制svn的文件夹。分支不在svn中的任何用户可见位置。在一个mercurial存储库中拥有多个项目(每个项目都有自己的分支)并没有多大意义。