6

我们有一个相当大的 SVN 存储库,我们希望将其迁移到 perforce。我们非常希望保留大约 20k 的修订、分支等,但在一些初始测试中,perforce 提供的 svn2p4 脚本无法复制完整的结构。

人们是否使用此工具取得了成功,或者是否还有其他我的谷歌搜索没有出现?欢迎使用最佳实践和提示。

4

4 回答 4

3

Vitalii Pokrovskii 和 Mark Fridrich 创建了 svn2p4,这是一个 perl 脚本,可以“同步和重放”以将每个更改集导入 perforce。

你可以在perforce wiki上找到它。他们还在2007 Perforce 用户大会上做了一个关于它的演讲。

2012 年更新:另一个解决方案是使用 p4convert-svn。此处的详细信息:perforce 站点上的 p4convert-svn

于 2008-12-28T03:07:54.897 回答
2

正如fuzzymonk 提到的,似乎唯一真正的选择是使用perl 脚本svn2p4。我已经使用了几次,它运行良好,尽管速度很慢,尤其是在有很多分支的情况下。

该脚本非常有用的一件事是能够将停机时间降至几乎为零,而不管服务器之间的地理距离如何。这是可能的,因为 svn2p4 是完全可恢复的。

  • 首先,你备份你的 svn 服务器
  • 在打开实时服务器的同时,您开始从 svn 导入以使用备份执行。
  • 导入完成后,您可以关闭实时服务器并通过将 svn2p4 指向实时服务器而不是备份来完成导入。

这意味着您只需为自上次备份以来发生的少数修订关闭服务器。如果您的迁移跨越较大的地理距离(svn 和 perforce 服务器相距很远),这尤其有用,因为您的大部分导入是在本地完成的,可能在同一台机器上,而不是通过 Internet。

我们目前正处于大规模导入的过程中(20K 修订版,18GB svn root),我很好奇您在最初的测试中遇到了什么样的问题。

于 2009-02-26T01:21:38.830 回答
1

这个问题可能已经完全死了,但仅供参考,Scott Bilas 的博客文章中有很多有用的信息:http: //scottbilas.com/blog/subversion-to-perforce-post-mortem/

他提到了 svn2p4 的一些具体问题以及如何解决这些问题(当这种解决方法可能时。)

在使用 Subversion 多年后,我才开始使用 Perforce,所以我处于学习曲线的陡峭部分。

于 2011-12-20T22:30:43.083 回答
-2

我最大的建议是不要这样做。从可用性的角度来看,perforce 比 svn 差很多。我被迫在工作中使用它,而且它比基于文件的/windows explorer svn 界面更不直观。设置工作区是不直观的,并且很难删除。它偶尔会感到困惑,即使它被改变也不会提交任何东西。默认情况下,所有内容都是只读的。它提交已签出但未更改的文件。我可以继续...

于 2008-12-28T03:27:32.610 回答