Svn subversion后清空存储库->;汞转化

Svn subversion后清空存储库->;汞转化,svn,mercurial,Svn,Mercurial,我使用了“hgconvert”命令尝试将我的SVN存储库移动到hg,它似乎可以工作(需要一段时间并在运行时打印出所有提交消息),但最终生成的Mercurial目录是空的。它有一个.hg隐藏子目录,大约有200 MB,所以发生了一些事情,但是没有一个文件在那里 有什么想法吗 我能想到的唯一一件事是,我们没有顶级主干、brankes、标记目录,而是有许多项目,每个项目都有自己的主干、分支和标记: svn-repository/ Project1/ trunk/

我使用了“hgconvert”命令尝试将我的SVN存储库移动到hg,它似乎可以工作(需要一段时间并在运行时打印出所有提交消息),但最终生成的Mercurial目录是空的。它有一个.hg隐藏子目录,大约有200 MB,所以发生了一些事情,但是没有一个文件在那里

有什么想法吗

我能想到的唯一一件事是,我们没有顶级主干、brankes、标记目录,而是有许多项目,每个项目都有自己的主干、分支和标记:


svn-repository/  
    Project1/  
        trunk/  
        branches/  
        tags/  
    Project2/  
        trunk/  
        branches/  
        tags/  
等等


这会导致问题吗?我的理解是,SVN并不真正关心您如何组织存储库,但Mercurial?

您需要运行
hg update
来获取工作副本

(这种没有工作副本的mercurial存储库可以用作纯粹的通信点,在这里可以将修订推送到或从中取出,很像subversion服务器。在这种情况下,它是由hg convert创建的,但您也可以使用
hg clone--noupdate
hg update null
创建此类存储库。忽略工作副本。)y文件可以节省一些空间。)

另外,我建议您分别转换每个项目。如果您提供“project1”的URL,
hg convert
将自动检测
主干
分支
标记
子文件夹,并将做正确的事情


在mercurial中,分支是一流的概念,而不仅仅是碰巧从主干复制了svn的文件夹。分支不像svn那样位于任何用户可见的位置。有多个项目(每个项目都有自己的分支)在一个mercurial存储库中没有真正意义。

啊,当然,我不敢相信我没有尝试过。我仍然习惯于推/拉和提交/更新之间的区别。如果我可以问一个后续问题:为什么你建议将项目分成不同的存储库?现在将它们分组在一起的原因是y项目是模块化的,以不同的组合在一起使用,但我们仍然希望能够对它们进行分支。这种组织结构是Mercurial会抱怨的吗?@hvjackson:在subversion中,您可以在具有不同路径但具有共同祖先的文件夹之间合并更改。Mercurial的工作方式非常不同:merge是一个有两个父版本的版本。如果你复制subversion的操作方式,那么你将无法正确合并。这听起来可能令人困惑-我建议你学习hg教程:@wocoenen:好的,谢谢你的帮助。看起来我有一些周末的阅读要做!嘿,自从我在那里和做到了!