我们有一个相当大的 SVN 存储库,我们希望将其迁移到 perforce。我们非常希望保留大约 20k 的修订、分支等,但在一些初始测试中,perforce 提供的 svn2p4 脚本无法复制完整的结构。
人们是否使用此工具取得了成功,或者是否还有其他我的谷歌搜索没有出现?欢迎使用最佳实践和提示。
我们有一个相当大的 SVN 存储库,我们希望将其迁移到 perforce。我们非常希望保留大约 20k 的修订、分支等,但在一些初始测试中,perforce 提供的 svn2p4 脚本无法复制完整的结构。
人们是否使用此工具取得了成功,或者是否还有其他我的谷歌搜索没有出现?欢迎使用最佳实践和提示。
Vitalii Pokrovskii 和 Mark Fridrich 创建了 svn2p4,这是一个 perl 脚本,可以“同步和重放”以将每个更改集导入 perforce。
你可以在perforce wiki上找到它。他们还在2007 Perforce 用户大会上做了一个关于它的演讲。
2012 年更新:另一个解决方案是使用 p4convert-svn。此处的详细信息:perforce 站点上的 p4convert-svn
正如fuzzymonk 提到的,似乎唯一真正的选择是使用perl 脚本svn2p4。我已经使用了几次,它运行良好,尽管速度很慢,尤其是在有很多分支的情况下。
该脚本非常有用的一件事是能够将停机时间降至几乎为零,而不管服务器之间的地理距离如何。这是可能的,因为 svn2p4 是完全可恢复的。
这意味着您只需为自上次备份以来发生的少数修订关闭服务器。如果您的迁移跨越较大的地理距离(svn 和 perforce 服务器相距很远),这尤其有用,因为您的大部分导入是在本地完成的,可能在同一台机器上,而不是通过 Internet。
我们目前正处于大规模导入的过程中(20K 修订版,18GB svn root),我很好奇您在最初的测试中遇到了什么样的问题。
这个问题可能已经完全死了,但仅供参考,Scott Bilas 的博客文章中有很多有用的信息:http: //scottbilas.com/blog/subversion-to-perforce-post-mortem/
他提到了 svn2p4 的一些具体问题以及如何解决这些问题(当这种解决方法可能时。)
在使用 Subversion 多年后,我才开始使用 Perforce,所以我处于学习曲线的陡峭部分。
我最大的建议是不要这样做。从可用性的角度来看,perforce 比 svn 差很多。我被迫在工作中使用它,而且它比基于文件的/windows explorer svn 界面更不直观。设置工作区是不直观的,并且很难删除。它偶尔会感到困惑,即使它被改变也不会提交任何东西。默认情况下,所有内容都是只读的。它提交已签出但未更改的文件。我可以继续...