我的团队已经使用SVN几年了.我们现在可以选择切换到Perforce.
进行这样的转换有什么好处(和陷阱)?
P4会在服务器上跟踪您的工作副本.这意味着
处理大型工作副本的速度要快得多.我曾经有一个大型的SVN项目和一个简单的更新花了15分钟,因为它必须创建一个本地工作副本的树(数千个文件夹).文件访问速度很慢.P4将有关工作副本的信息存储在数据库中,因此任何操作总是接近瞬时.
如果你弄乱你的文件并且不告诉服务器,你就麻烦了!您不能只删除文件 - 您必须删除P4客户端的文件,以便服务器知道.请注意,如果您在本地删除文件,则在连续更新时不会再次下载该文件,因为服务器认为您已经拥有该文件!当很多这种情况发生并且我最终疯狂地不同步时,我通常不得不求助于清理我的本地副本并再次下载,这可能非常耗时.你必须小心这一点.
Explorer shell扩展客户端(想想TortoiseSVN)糟透了,完全无法使用.
有两个GUI客户端应用程序提供最佳功能:P4Win和P4V,其中P4V更新,更易于使用,但功能不丰富.
虽然它们没有很多高级功能,但Visual Studio和Eclipse插件工作得相对较好.
一般来说,P4提供的功能远少于SVN,有时候会让人感到困惑.
工作副本定义很好而且灵活.我相信P4在这里优于SVN:您可以为工作副本文件夹定义蒙版并创建各种奇异的树,因此您只需要下载您想要的内容,而无需手动使用多个签出.当我在服务器上有数十亿字节的东西并且只想要它的特定子集时,这非常方便.我在类似的情况下使用SVN更麻烦.
P4下的分支是......奇怪的.分支集和不同种类的分支和令人困惑的UI.不幸的是,我不记得很多细节.
除此之外,它非常标准.
我建议您保留SVN,除非您处理巨大的代码库或讨厌乱丢文件系统的.svn文件夹.SVN + TortoiseSVN在大多数情况下更加舒适.
我目前在不同的项目中使用它们.
perforce分支机制是优越的.
perforce冲突解决工具更好.
我非常喜欢perforce强烈的改变列表概念.
Perforce似乎更快.
设置和运行更容易.
我们的一些成员非常喜欢perforce的MS Office插件,我在Mac上,所以我无法使用它.
但
SVN客户端更好,尤其是eclipse插件.
Perforce更贵.
这些只是意见,所以也许这是一个糟糕的答案:)
如果我已经在使用其中一个,我将很难切换,因为它们似乎都没有提供真正显着的优势,但转换的中断可能很大.
更新:自写这篇文章以来,我已完全转向使用GIT用于个人和商业目的.我会在任何一天通过SVN或Perforce选择它.
你的团队是否评估过Git?它具有类似于Perforce中可用的功能,但是是免费的(FOSS).
在与大型团队合作时,要么是SVN的绝佳替代品.
我在工作中使用perforce,在家里使用svn.
perforce GUI非常好,但只有在你习惯它之后.它肯定有一个学习曲线,当非程序员开始使用perforce时,通常需要一些时间才能获得概念.
乌龟很棒,很容易使用.我的律师妻子使用它来颠覆她的所有文件;)
分支很容易.事实上这么容易,人们分支的原因不是太多.然后你整合,因为你分支.它很容易成为你唯一做的事情.
Svn集成在更多产品中.至少我使用的产品.这是一个很大的优势,因为如果你必须在开发环境外部使用eithere,它们都会变得笨重.
我们每隔一段时间就会遇到问题,因为它认为您的本地副本是最新的,但事实并非如此.然后你必须强制同步,然后如果仍然不好,删除你的本地文件并重新同步.从来没有与svn有这样的问题.这实际上是一个很大的问题,因为您甚至不知道您正在处理旧版本.
要考虑的另一件事是你想改变的原因.如果你有一个有效的系统,每个人都熟悉它并对它感到满意,为什么要更换它?
在Perforce网站上,他们有一篇比较两者的论文: P4与SVN
显然,鉴于源代码,您必须意识到它强调Perforce优于SVN的优势,但它仍然是一个有用的读物.你永远不会知道,鉴于你自己独特的情况,你的团队可以从中受益的一个好处是其中一个好处.
我肯定会推荐Perforce,其原因已在其他答案中提到过,但我无法与从未真正使用它的SVN进行比较.