我已经创建了 SVN 存储库的 Mercurial 镜像(使用本教程:http://oreilly.com/opensource/excerpts/opensource-mercurial/migration-to-mercurial.html http://oreilly.com/opensource/excerpts/opensource-mercurial/migrating-to-mercurial.html)。同步效果很好,但我注意到它没有获取主 SVN 存储库中引用的外部存储库...
理想情况下,我希望能够将所有内容作为单个存储库提取到 Mercurial 中(如果可能的话,还包括变更集)。
我不确定的是:缺少外部是 svnsync 的限制,还是 hg Convert 的限制?
有什么方法可以强制外部同步到同一个 Mercurial 存储库中吗?
我认为一个好的解决方案是为外部重新设置同步过程。
创建当前hg镜像的fork,并将外部同步到hg镜像fork中。
问题是,外部的主干旨在进入第一个镜像的子文件夹,那么我如何使用转换来复制它?我怀疑我能否告诉转换导入到子文件夹中......
缺少外部是 svnsync 的限制还是 hg Convert 的限制?
svnsync
用于创建 SVN 存储库的镜像。这包括任何svn:externals http://svnbook.red-bean.com/en/1.5/svn.advanced.externals.html特性。因此它必须是一个限制hg convert
.
请注意,您实际上并不需要使用以下命令创建镜像svnsync
。本文建议这样做只是因为拥有本地副本可能会加快转换过程。
有什么方法可以强制外部同步到同一个 Mercurial 存储库中吗?
SVN 存储库通常包含多个松散相关的项目,每个项目都有自己的分支和标签。但 Mercurial 并不是这样工作的:当您进行分支时,您会分支存储库中的所有内容。您应该为 SVN 中的每个项目创建一个单独的 Mercurial 存储库,该存储库具有自己的主干/分支/标签。这种不同的方法很可能就是原因hg convert
忽略外部,即使它们位于同一个 SVN 存储库中。
有一个等价于svn:externals
善变的;它称为“子存储库”。而不是拥有一个或多个svn:externals
属性,你有一个.hgsub
项目根目录中包含类似内容的文件。您应该首先将每个 SVN 项目转换为单独的 Mercurial 存储库,然后将它们与子存储库连接。请参阅子存储库的 Mercurial Wiki 页面 http://mercurial.selenic.com/wiki/Subrepository更多细节。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)