2008-12-28 88 views
6

我们有一个相当大的SVN存储库,我们希望迁移到perforce。我们非常想保留〜20k版本,分支等,但是在一些初始测试中,perforce提供的svn2p4脚本无法复制整个结构。从SVN迁移到Perforce - 技巧?经验?

有人用这个工具成功了,还是有其他人,我的谷歌搜索没有出现?最佳做法和技巧是值得欢迎的。

+0

结构的哪些特定部分是无法重现的工具?它在结束之前失败了还是还有别的东西。也许有些细节可能会让你更容易给出答案。 – 2008-12-28 16:08:29

回答

3

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

你可以在perforce wiki找到它。他们还在2007 Perforce User's Conference上做了介绍。

update 2012:另一种解决方案是使用p4convert-svn。详情在这里:p4convert-svn at perforce site

+0

正如OP所说,svn2p4不能正常工作:“在一些初始测试中,perforce提供的svn2p4脚本无法复制整个结构”。 – 2008-12-28 03:52:59

+2

但这被标记为答案 - 问:工具X不起作用,我该怎么办?答:使用工具X.哈哈。 – gbjbaanb 2009-03-11 22:09:58

+0

我用这个脚本来做一个相当大的迁移。我不得不做出一些修复和黑客。如果您想要我的脚本版本,请告诉我。 – 2009-11-06 11:22:54

-1

我最大的提示是不要这样做。从可用性的角度来看,perforce比svn更糟糕。我不得不在工作中使用它,它比基于文件的/ windows explorer svn接口更不直观。设置工作区不直观,而且很难删除。它偶尔会感到困惑,即使改变了它也不会提交。一切都是默认只读。它提交已签出但未改变的文件。我可以继续...

0

我想第二个概念,它不应该完成。恕我直言。

如果有任何事情我会转移到GIT,如果有的话,但不会触及另一个做同样的事情的源控制系统。它并没有真正解决任何问题,而且我的经验让我意识到这样一个简单的事实:从长远来看,它不会为您节省任何实时或金钱。

2

由于fuzzymonk提到,似乎唯一真正的选择是使用perl脚本svn2p4。我已经使用了这几次,它运行良好,虽然缓慢,尤其是在许多分支。

这个脚本非常有用的一件事是,无论服务器之间的地理距离如何,都可以最大限度地减少停机时间。这是可能的,因为svn2p4完全可恢复。

  • 首先,你把你的svn服务器
  • 的备份,同时保留现场服务器上,你开始从SVN您导入使用备份到Perforce的。
  • 导入完成后,您可以取下实时服务器,并通过将svn2p4指向活动服务器而不是备份来完成导入。

这意味着您只需要关闭自上次备份以来发生的少量修订的服务器。如果你的迁移在很大的地理距离上(svn和perforce服务器相距甚远),这是特别有用的,因为你的大部分导入是在本地完成的,可能在同一台机器上,而不是在互联网上。

目前我们处于一个巨大的进口环境(20K版本,18GB svn根目录),我很好奇你在初始测试中遇到了哪些问题。

2

这个问题可能是完全死了,但只是FYI,还有斯科特Bilas的的博客文章很多有用的信息在这里: http://scottbilas.com/blog/subversion-to-perforce-post-mortem/

他提到一些与svn2p4以及如何具体问题,以解决它们(当这种解决方法是可能的。)

我刚刚开始使用Perforce多年的Subversion,所以我在学习曲线的陡峭的一部分。