使用Perforce而不是Subversion有什么好处?

时间:2020-03-06 14:58:27  来源:igfitidea点击:

我的团队已经使用SVN几年了。现在,我们可以选择切换到Perforce。

进行这样的转换有什么好处(和陷阱)?

解决方案

我目前在不同的项目上都使用。

  • perforce分支机制优越。
  • perforce冲突解决工具更好。
  • 我真的很喜欢perforce强烈的变更列表概念。
  • Perforce似乎更快。
  • 设置和运行起来更容易。
  • 我们的某些成员非常喜欢perforce的MS Office插件,我在Mac上无法使用。

  • SVN客户端更好,尤其是eclipse插件。
  • Perforce更昂贵。

这些仅仅是意见,所以也许这是一个糟糕的答案:)

如果我已经在使用一个或者另一个,则切换起来会很困难,因为两者似乎都不比另一个提供明显的好处,但是切换的中断可能很大。

更新:自撰写本文以来,我已经完全切换到将GIT用于个人和商业目的。我会选择在SVN或者Perforce上进行选择。

正确的分支并使分支成为名称空间的一部分是我在Perforce中看到的最大好处。合并很容易。我认为离开Subversion并没有不利之处。

  • 如果我们弄乱了文件并且不告诉服务器,那么我们就有麻烦了!我们不能只删除文件-我们必须使用P4客户端删除文件,以便服务器知道。请注意,如果我们在本地删除文件,则该文件将不会在后续更新中再次下载,因为服务器认为我们已经拥有该文件!当发生了很多此类情况,而我最终却变得完全不同步时,我通常不得不诉诸于清理本地副本并再次下载,这可能会很耗时。我们必须对此小心。
  • Explorer Shell扩展客户端(认为TortoiseSVN)很烂,完全无法使用。
  • 有两个提供最佳功能的GUI客户端应用程序:P4Win和P4V,其中P4V较新且更易于使用,但功能并不丰富。
  • 有一些Visual Studio和Eclipse插件,尽管它们没有许多高级功能,但它们的效果相对较好。
  • 一般来说,P4提供的功能比SVN少得多,有时甚至令人困惑。
  • 工作副本定义很好而且很灵活。我相信P4在这里优于SVN:我们可以为工作副本文件夹定义掩码并创建各种奇异的树,因此我们只需将所需的内容下载到所需的位置,而无需手动进行多次检出。当我在服务器上有千兆字节的东西并且只想要它的特定子集时,这非常方便。我在类似情况下使用SVN时遇到了很多麻烦。
  • 在P4下分支是...奇怪。分支集和各种分支以及令人困惑的UI。不幸的是,我不记得很多细节。

除此之外,这是相当标准的。

我建议我们保留SVN,除非我们处理大量的代码库或者讨厌.svn文件夹,使文件系统乱七八糟。 SVN + TortoiseSVN在大多数情况下要舒适得多。

我使用SVN并不是很多,只是尝试一下。我使用Perforce大约三年了。我以为很好。客户服务非常出色,可以很快地解决一个问题,事实证明err只是我很愚蠢,他们甚至实现了我建议的功能。

其他一些开发人员,尤其是必须使用它的非开发人员,发现使用起来有些棘手,特别是在定义客户端规范(服务器上的文件夹到本地文件夹的映射)时。

我发现它可以非常快速地进出文件,并且非常可靠。我认为与我合作的大多数开发人员一旦习惯了,都会非常喜欢它。但是,在切换之前,我们一直在使用Visual Source Safe,因此,几乎所有东西都比这更好。

缺点是,它要花钱。我相信SVN是非常好的系统,因为SVN是免费的,所以我认为我们必须有一个令人信服的理由进行切换,尤其是Perforce确实需要一段时间才能学习。如果SVN正在为我们完成这项工作,并且我们对此没有任何投诉,我建议我们继续使用它,并省下钱以备不时之需!

我曾经用过,根据我的经验,如果我们有一支庞大的团队和/或者代码库,Perforce很有用。否则,我会选择SVN,它更易于设置和维护。

团队评估了Git吗?它具有类似于Perforce中可用功能的功能,但是是免费的(FOSS)。

与大型团队合作时,这两种方法都可以替代SVN。

在我看来,使用Subversion而非Perforce的主要好处是能够离线编辑并与同事同时进行编辑。

如果数据基础架构是松散结合的(存在脱机时间),svn会很困难。即使服务器无法访问,我们也可以做很多事情。 Perforce本质上需要始终可用的服务器连接。

免责声明:我在Perforce上的信息很旧,在完全转换为svn之前于2005-06年使用了一段时间

我在工作中使用perforce,在家里使用svn。

perforce GUI非常漂亮,但是只有我们习惯了它。它肯定有一个学习曲线,当非程序员开始使用perforce时,通常要花一些时间才能获得概念。

乌龟很棒,很容易使用。我的律师妻子用它来颠覆她所有的文件;)

perforce在perforce中很容易。实际上如此简单,以至于人们没有太多理由就可以分支。然后合并,因为分支了。它很容易成为我们要做的唯一事情。

Svn集成在更多产品中。至少我使用的产品更多。这是一个很大的优势,因为如果必须在开发环境之外使用任何一个,它们都会变得笨拙。

我们偶尔会遇到perforce的问题,它认为本地副本是最新的,但不是。然后,我们必须强制进行同步,如果仍然不成功,请删除本地文件并重新同步。 svn从未遇到过此类问题。这实际上是一个巨大的问题,因为我们甚至都不知道我们正在处理旧副本。

要考虑的另一件事是为什么要更改。如果我们拥有一个可以正常工作的系统,并且每个人都对它感到满意并满意,那么为什么要替换它呢?

在Perforce网站上,他们有一篇论文将两者进行了比较:
P4 vs SVN

显然,从源头上讲,我们必须意识到它强调了Perforce优于SVN的优点,但仍然是一本有用的书。我们永远不会知道,其中一项好处很可能是团队在给定自己独特情况下可以从中受益的杀手item。

我肯定会推荐Perforce,原因是其他答案已经涵盖了许多原因,但是我无法与从未真正使用过SVN的产品进行比较。

我们可以根据需要在Perforce中离线编辑内容。工作空间定义文件是只读文件还是可写文件,因此我们可以使它们全部都可写,入侵,然后要求Perforce找出需要检入的内容。

最好将文件设置为只读并检查我们需要什么,以便其他人(和我们自己)知道我们在做什么/正在做什么。

对于我们而言,更好的系统取决于要求,如果我们没有要求,则Perforce会获胜。

谁使用Subversion?
小型非商业团队
廉价或者小型商业团队

谁使用Perforce?
谷歌
了索尼
三星
nVidia
赛门铁克

我记得,随着席位数量的增加,Perforce许可的成本下降。因此,每个席位的价格不完全是900美元。它也是基于服务器的许可证。我们是为使用它的人工开发人员总数付费,而不是为使用它的每个计算机客户端付费。因此,如果商店有200名员工,那么200个座位的许可证就可以让他们全部使用perforce,甚至可以在家中使用。

从最新版本开始,Perforce具有搁置更改的新功能:

Shelving is the process of temporarily storing work in progress on a Perforce Server without submitting a changelist. Shelving is useful when you need to perform multiple development tasks (such as interruptions from higher-priority work, testing across multiple platforms) on the same set of files, or share files for code review before committing your work to the depot.

这与git的分支模型类似,当需要执行多任务时,该模型可让我们毫不费力地从一个本地分支切换到另一个本地分支。

AFAIK,Subversion没有类似的功能。

在Perforce博客上的更多信息。