Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将复杂SVN分支层次结构迁移到Mercurial_Svn_Mercurial_Migration - Fatal编程技术网

将复杂SVN分支层次结构迁移到Mercurial

将复杂SVN分支层次结构迁移到Mercurial,svn,mercurial,migration,Svn,Mercurial,Migration,我们的团队一直在使用SVN来管理规模合适的应用程序,随着时间的推移,已经建立了相当复杂的分支和标记层次结构,它遵循SVN存储库的基本标准布局,但更加嵌套: |-trunk |-branches | |-releases | | |-releaseA | | `-releaseB | `-features | |-featureX | `-featureY |-tags |-releaseA | |-bet

我们的团队一直在使用SVN来管理规模合适的应用程序,随着时间的推移,已经建立了相当复杂的分支和标记层次结构,它遵循SVN存储库的基本标准布局,但更加嵌套:

|-trunk |-branches | |-releases | | |-releaseA | | `-releaseB | `-features | |-featureX | `-featureY |-tags |-releaseA | |-beta | `-RTP `-releaseB |-beta `-RTP |-树干 |-分支机构 ||-释放 || |-释放a ||`-释放b |`-特征 ||-特征x |`-特点 |-标签 |-释放 ||-beta |`-RTP `-释放b |-贝塔 `-RTP (功能分支机构显然是临时分支机构,但我们必须考虑它们,因为在不久的将来一次关闭所有分支机构是不可行的)

出于几个原因,但主要是因为合并已经成为一种日益增加的痛苦,我们正在考虑转向Mercurial

我们目前面临的主要问题是在不丢失历史记录的情况下迁移现有代码库。我尝试了几种迁移工具(如和),yasvn2hg是最有前途的,但它们似乎都不能处理嵌套的层次结构,但它们都假设分支和标记分别组织在一个平面目录中

在这种情况下,选择命名分支或克隆作为旧SVN分支的转换目标并不是限制因素,这两种解决方案都是可取的。我们目前正在试验这两种选择,以及它们如何适合我们当前的流程,但尚未决定一种。很明显,我也会对关于这个问题的类似设置的建议或经验感兴趣

那么,将这样的嵌套SVN分支层次结构转换为Mercurial的最佳方法是什么


一次将一个分支转换为一个单独的存储库会非常烦人,我不确定这是否是正确的方法,这取决于工具如何处理历史合并,并且需要了解所有其他分支?

您真的应该在网上问这样的问题。这就是Mercurial开发人员常去的地方,随着时间的推移,有许多Subversion迁移问题

也就是说,a可能会帮助你——它声称让你

[…]修复即使是管理最糟糕的存储库,并将它们转换为结构良好的Mercurial存储库


我自己还没有试过,所以我无法评论它对您的具体情况有多有效。

谢谢,我会看看是否能找到您提到的修复方法并试一试。关于邮件列表,这也是我一定会探讨的一个选择。我找到的大多数关于Mercurial迁移的谷歌点击要么指向一个博客条目,要么指向某个博客条目,所以这似乎是询问权限的第一个方便的地方。我建议这样做,因为我认为在维基、邮件列表和现在的stackoverflow上散布答案是一种耻辱。此外,邮件列表中有许多人曾处理过代码的这一特定部分。如果你喜欢IRC,那么我看到很多人在IRC.freenode.net上的#mercurial频道获得帮助。嘿,刚才我几乎发布了完全相同的问题。我很想知道你问了这个问题后是否决定了解决方案。正如下面一篇评论中提到的,在我的例子中,每个嵌套分支都有一个“克隆”并不是一个解决方案,我确实希望找到一种方法,能够将分支作为分支导入HG,而不必通过拆分成多个repo来复制堆积如山的数据。