我们有一个相当大的SVN代码库,我们希望迁移到Perforce。我们非常希望保留约20,000个版本、分支等内容,但在一些初始测试中,Perforce提供的svn2p4脚本无法完全复制整个结构。
人们使用这个工具有成功吗?还是有其他我在谷歌搜索中没有找到的工具?欢迎分享最佳实践和技巧。
我们有一个相当大的SVN代码库,我们希望迁移到Perforce。我们非常希望保留约20,000个版本、分支等内容,但在一些初始测试中,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 服务器之间相隔较远),这尤其有帮助,因为您的大部分导入是在本地完成的,可能是在同一台机器上,而不是通过互联网。
我们目前正在进行一次大规模的导入(20K修订,18GB svn根),我很想知道您在初始测试中遇到了哪些问题。
This issue is probably totally dead, but just FYI, there s a lot of useful information in Scott Bilas s blog post here: http://scottbilas.com/blog/subversion-to-perforce-post-mortem/
他提到了svn2p4的一些具体问题,以及如何解决它们(如果可能的话)。
我之前用了几年Subversion, 现在才开始使用Perforce,所以我还处于学习曲线的陡峭部分。
我的最大建议是不要使用它。从可用性角度来看,Perforce比SVN要糟糕得多。我在工作中被迫使用它,它比基于文件/Windows资源管理器的SVN界面不直观得多。设置工作空间很不直观,而且很难删除。它有时会混淆不清,即使文件已被更改,也不会提交。默认情况下,所有内容都是只读的。它提交已检出但未更改的文件。我可以继续说下去...