大公司为何使用Perforce?[关闭]


113

我听说一些大公司,例如Google,Facebook使用Perforce

SVN / Git无法替代Perforce吗?


34
我听说Google在共享驱动器上使用带有时间戳的文件夹!;)
FrustratedWithFormsDesigner

10
只有共享驱动器使用MapReduce,所以它们很酷
Paul Stovell 2011年

4
一个大问题将是支持。当您购买Perforce时,您是在从系统开发人员那里购买支持,而Git 可能无法获得某些支持。
克里斯·

12
@安托:谁在乎莱纳斯怎么说?仅仅因为您是一个出色的内核开发人员,并不意味着您对任何地方都最了解。
Billy ONeal

5
两周前刚参加Perforce用户大会的时候,我可以告诉您Google使用了perforce。他们每天有超过10,000个提交到他们的1个服务器。
2011年

Answers:


83

理由可能不像从前那样重要,但是Perforce在大型存储库上的表现往往要好于Subversion。这是Microsoft获得Perforce的源许可证以构建Source Depot的原因之一。NT的存储库是一个庞然大物,没有很多产品(商业或其他)可以处理它。

另外,至少一次,Perforce的可视化工具比Subversion或Git的开箱即用(可以说)更好。如果您使用的是Meld,那么也许这些事情比以前更重要,但是Perforce仍然有一些非常出色的功能,包括可视化的分支和合并,尽管我没有详细的记忆,因为它已经自从我上次接触Perforce大约3年以来,这似乎比Github的方法要复杂得多。

一旦使用了Perforce,您可能会了解它在实践中的优势。他们长期以来一直提供免费的两用户服务器选项,并且根据您所使用的源代码管理系统的经验,在团队测试了一段时间后,您可能会发现值得花升级的成本。对于较小的商店,这加上使用它并喜欢它的开发人员的网络效应,是Perforce最终获得付费用户的原因。与德米特里(Dmitri)的愤世嫉俗的言论相反,在拥有小型开发团队的公司中出售Perforce的CTO可能不会有很多获胜者和取胜者,但这种做法经常在这种地方使用。

我在Microsoft以外从事的大多数项目都可以由Git,Mercurial或Subversion合理地很好地服务,我会说我工作过的大多数公司都使用了其中一种选择。但是有一个优点,通常是存储库大小,分支和合并模型以及团队经验/历史的结合,导致人们使用商业工具。例如,我很少见到大型的Git存储库。这可能不是由于Git的任何固有限制;我承认那完全是无知的。但是在某些项目(例如Windows NT)中,免费解决方案可能存在一些实际限制。


3
感谢您提供愤世嫉俗的“美酒佳肴”理论之外的合理答案。它可以为很多公司是真实的,但也有,公司与Perforce公司去(或重写它:P)一些合法的理由。我无法想象尝试在SVN中处理NT源。SVN和Git确实在追赶,也许对于一个新的大型项目,其中之一就是正确的决定。但是,请考虑与将一个Windows(所有版本)的实时项目从一个源代码管理系统迁移到另一个源代码管理系统相关的成本。这是不值得的,特别是当当前的源代码控制系统正常工作时。
格雷格·杰克逊

1
实际上,他们确实从SLM(内部工具)转移到Source Depot(Perforce的分支),因此在那种情况下,这笔钱值得某个人承担。但是,是的,除非有相当可观的收益,否则这是不值得的。
JasonTrue 2011年

1
describe.fogcreek.com/joelonsoftware/…具有大部分来自外部人士的历史记录。(自2004年以来,我一直是局外人,FWIW)。
JasonTrue 2011年

3
我不确定大量回购的情况。我管理一个,它是12Gb存储库(即压缩服务器目录是12Gb),其中有320,000个修订版。它足够快。没准微软使用Perforce的,因为SVN没有在1999年存在回到maillist.perforce.com/pipermail/perforce-user/2001-August/...subversion.apache.org/docs/release-notes/release-history.html
gbjbaanb

8
@gbjbaanb,这不是一个很大的存储库...如今,它被视为中等大小的存储库。;)参见例如research.google.com/pubs/archive/34459.pdf
Alex Feinman

65

作为用户以及设置和维护服务器,我对svn,git和Perforce都相当熟练。

对于一家公司,甚至像我这样的孤独程序员来说,源代码管理是支持开发和销售代码的真正赚钱活动的成本。因此,有几个因素需要考虑:

  • 它与您的开发模型的适应程度如何?
  • 开发人员学习和使用有多容易?
  • 开发人员的日常操作是否很快?
  • 使用它的过程是否分散了他们的实际工作,即编写代码?
  • 设置和维护有多容易?
  • 购买和维护需要多少费用?
  • 如果需要帮助,获得帮助有多容易?

我将跳过有关各个系统优缺点的tl:dr详细信息。可以说,当我去年回到全职咨询时,我对这三个方面进行了审查,以决定哪一项可以通过向客户提供优质软件而使我尽可能快地赚钱,而又不需要大量的未付费用无所事事。当我从政治上考虑“ FOSS很好,而非FOSS却是邪恶的”时,我为Perforce许可证付出了巨大的努力。

这就是大公司也选择Perforce的原因。


这是注释中的tl:dr详细信息,还有更多内容。

解决svn很容易:与Perforce相比,它速度慢。我在一家为手机嵌入Linux的公司工作,我们的完整资源运行9 GB。他们使用了Perforce。获得代码后,通常在LAN上花费数秒钟即可更新最新的资源,而从我家通过VPN连接花费几分钟就可以了。使用svn,分别需要数分钟和数小时。

git vs. Perforce更复杂。许多公司认为他们有充分的商业理由要使用具有访问控制功能的集中式存储库,并使其易于在此进行提交而很难执行其他任何操作-Perforce完全适合该模型。但是,git积极地鼓励人们在本地分支机构工作,并且没有办法使它在任何方面都不同。开发人员可以完全在本地分支机构工作,而从不参与中央仓库-因此,如果公司不希望其员工以这种方式工作,Perforce是一个更好的选择。

对于某些业务需求,git还有其他问题。我在一家使用git的公司工作,但我不知道我听到过多少次讨论:“我希望我们使用[其他VCS],因为我需要这样做[并且]我不能使用git 。” “当然,您可以使用git来做到这一点。” “怎么样?” “好吧,首先您需要编写一个bash脚本...”“没关系。”

然后需要花一些时间来初始填充具有很多历史的源代码树。使用Perforce,由于历史记录保存在服务器上,因此您只需获取所有文件的最新版本,因此它的速度非常快-甚至设置了我提到的整个9 GB树仅通过VPN花费了几个小时。使用git可能需要很长时间到永恒。有时我不得不克隆GTK +或X服务器的git repos,那是一个漫长的午休时间,或者也许是上床睡觉的时间。

确实,这是工作所需的正确工具。svn对于Apple的大多数开放源代码工作都可以正常工作,并且对于内核黑客攻击非常糟糕。git对于GTK +来说非常有用,但是在WebKit中使用它的速度却非常慢-源代码树和历史记录太庞大了(正如我发现从WebKit的svn-to-git门户中使用代码的艰难方式)。如果您有庞大的源代码树并且需要集中控制,则Perforce可以很好地工作。它们每个都在正确的环境下运行良好。


2
大公司将他们的代码放在一个存储库中的问题吗?将每个“模块”或“应用程序”放入一个单独的Git存储库,以使这些存储库的大小可管理,该怎么办?然后,每个存储库都将使用Git的子模块功能导入所需的功能。这样,存储库的维护者有时会使用pull其子模块来获取更新或新功能,只有那时,该存储库的用户才需要比存储库本身的代码大的更新。
卡尔·G

@Carl G:如果您在这里阅读所有答案,您会发现很多人选择Perforce而不是git的原因,这些原因与git围绕存储库或子模块的功能无关。
Bob Murphy

我试图解决“初始填充源树所需的时间”,但实际上我可以看到我提到的子模块问题是不相关的,因为子模块也包含了这些存储库的所有历史记录。我猜想减少历史记录的唯一方法是使用依赖项的二进制文件。
卡尔·G

好吧,使用git可以执行浅表克隆,并且只获取少量历史记录,或者仅获取最新文件(git clone --depth 1)。这也适用于git子模块。
萨希尔·辛格

38

特别是GIT和SVN在一定程度上还不算老-如果您在90年代中期需要可靠的版本控制,您几乎必须要商业化,因为SVN处于起步阶段,而CVS就是CVS。一旦您对系统进行了大量投资,移动它可能会很麻烦。

哦,做出这些决定的人可能永远不会与版本控制系统进行交互,但是确实会被上述销售人员喝醉并用餐。


4
+1。我们是最近才改用git的,不得不运行perforce相当长的时间-只是因为其他所有条件都不如。
9000

11
尽管IMO Perforce浪费了我很多时间。我们仍然在工作中使用它,因为我们投入了时间来开发与之交互的自定义​​工具。要切换,我们将不得不重建那些工具。
m4tt1mus 2011年

2
Perforce和无知的开发人员让我讨厌签入代码。我宁愿写蜡笔代码和编译那个
Jim Schubert

我认为您应该在评论之前先看看perforce。
Toby Allen'3

30

我从事游戏行业的程序员已有将近9年,而我从事过的每个项目都使用了Perforce。我怀疑有一些因素使Perforce继续在该特定行业中使用。

  • 人们使用Perforce已有很长时间了,并且对此感到非常满意,因此他们不愿切换到其他解决方案。决策者可能还会犹豫,将他们3,000万美元的项目交给他们从未使用过的软件。
  • 许多公司/团队已将Perforce支持添加到其内部工具中,这可能需要大量工作才能进行更新以支持另一个VCS。
  • 尽管程序员可能很容易将时间切换到另一个Git / Hg / SVN,但是游戏开发团队的技术人员却很多,例如艺术家,设计师和制作人。让他们适应新系统可能会花费很多时间,我敢打赌他们会坚决抵制这种变化。

19
我认为“老”开发人员(+10年)可能与“非技术”人员一样抗拒变革。
韦恩·维尔纳

3
为此,专门为此行业+1。视频游戏程序员往往会忙得不可开交,以至于改变他们使用的基础设施是一个可怕的提议。“如果它还没有破裂……”是一个口头禅,通常会阻止该行业继续使用较旧的解决方案,即使它们可能更合适。
克里斯·苏巴乔

2
@Wayne-完全是老年主义者的评论。我已经六十多岁了,是中型到大型工厂的变革和创新的主要支持者。James Gosling在开始编写第一个JVM时年仅46岁。肯·汤姆森(Ken Thomson)提出UTF-8编码方案时只有49岁,而他开始使用GO语言时只有63岁。
詹姆斯·安德森

1
@JamesAnderson我想你可能在那儿。而且,如果您的组织没有改善的文化,那么您会看到死海效应正在发挥作用。我想知道是否有可能整体上改变系统,或者我们只能摆弄它的一小部分。
韦恩·沃纳2015年

2
@ MikeO'Connor您还忘了说游戏使用了大量的二进制资产。能够独占锁定二进制资产是一大优势。
CodingMadeEasy

22

也许,也许他们喜欢Perforce是因为Perforce更好?

  • Perforce很快。比Subversion或Git快得多。
  • Perforce合并比Subversion或Git更好。Git并没有真正做到合并,Subversion的版本跟踪也不太好,至少在1.5中是如此。
  • Perforce具有出色的客户支持。
  • Perforce将Subversion的存储库修订与单个文件修订结合在一起。Perforce允许您通过更改列表或单个文件修订来查看存储库修订。
  • 与多个Subversion相比,Perforce在具有多个更改列表方面做得更好。Subversion的变更列表有些事后才想到,使用它的人很少。Perforce是内置的。如果从默认更改列表中移动更改的文件,则不会意外提交该文件。
  • Perforce允许您指定工作目录的布局。例如,如果您有一个标准的源代码目录树,但是有些客户有自定义源,则可以将自定义源覆盖在标准树上。您只需指定要结帐的项目即可轻松进行稀疏结帐。

好的,在您以为我是Perforce Fanboi之前,我上一次向公司推荐Perforce的时间是7年前。Perforce每个许可证的价格为800美元-与ClearCase相比便宜,但与Subversion相比价格昂贵。我很难证明Perforce优于Subversion。

另外,大多数开发人员都习惯使用Subversion。他们不想学习Perforce,它与Subversion具有不同的工作方式。在Perforce中,您必须创建一个客户端,并且必须标记文件以进行编辑,然后才能对其进行修改。您不必使用Subversion做到这一点。

与Perforce over Subversion的集成也较少。部分原因是由于使用了客户端。它只是不能与VisualStudio甚至Hudson配合使用。部分原因是Perforce必须创建客户端集成。

专有许可证的费用称为管理费用。想象一下,如果您可以为每位用户$ 1.00的价格许可某个软件。哎呀,让我们做两点。成千上万的许可证只需花费250美元。

现在,您需要一个专职人员来管理许可证。一个普通的技术工人在一家公司呆了大约2年。这意味着每年将有500人离开,另外500人将离开。每周必须有十个人必须更改许可证。然后,有时项目启动,您需要另外250个许可证。必须对它们进行订购,输入和维护。这可能需要数周的时间。

这就是为什么许多商业公司转向开源的原因。这不是许可证的费用。您每年向开发人员支付15万美元,而Perforce许可证又需要800美元呢?它正在管理该许可证。与ClearCase相比,Perforce看起来很棒:更快,更容易,更便宜,更好。但是,反对Subversion吗?Perforce可能会更快甚至更好,但会提高800美元吗?更好地管理许可证吗?它不是更好地使用所需工具吗?

因此,Perforce可能会出现问题。

Git并不是最终的工具。在不需要集中控制谁可以访问存储库的情况下,它非常有用。但是,在许多情况下可能会很痛苦。我这样说:

  1. 您运行一个开源项目。如果有一百万个人拥有整个存储库的副本,您会感到高兴还是沮丧?
  2. 您正在运行一个使用专有软件的金融交易中心,以在您的竞争对手中占优势。如果有一百万个人拥有整个存储库的副本,您会感到高兴还是沮丧?

如果要进行集中式构建,则无论如何都需要每个人都使用一个存储库。在这种情况下,分布式系统的优势是什么?实际上,它可以鼓励人们离线工作。开发人员可能只是简单地以自己的方式离开,直到最后一刻才做出任何承诺。然后,您花了两个疯狂的日子来尝试使所有功能重新运行。

我不反对Git。我在很多情况下都推荐了Git。这些包括彼此之间连接不良的分布式团队,或者您不想跟踪有权访问源存储库的所有人的地方。

例如,一个大学计算机科学系希望让他们的学生使用源代码管理,并将其代码放在那里供老师查看。好想法。太多的孩子不了解标准的构建和开发程序就离开大学。我推荐了Git。

通过使用Git,存储库的管理员只需从他们的同伴那里进行提交即可。他们不必担心个别学生。教授可以允许学生提交其版本库。学生可以分组学习,每个小组可以共享他们的版本库。

如果学院使用Subversion,则有人必须了解所有学生,并向他们授予对中央存储库的所有访问权限。他们必须管理谁可以检查什么地方。如果教授分配了小组项目,则必须进行设置和管理。您需要专职人员来进行管理。

这不是一支球队比另一支球队更好的足球比赛。工具以不同的方式工作,每种都有其优缺点。Perforce是一个很棒的工具。不幸的是,已经出现了难以推荐的情况。

Git很棒,但是我仍然依靠Subversion来创建我的个人源代码库。毕竟,我不分享它,并且Subversion更易于使用。如果我的团队很小,我会使用Git进行个人工作,因为我不必在Internet上全时保持我的存储库。对于大多数商业网站,我仍然发现Subversion效果最好。但是,在某些情况下,Git会发光。


40
等等什么 您在这里让我迷失了“ Perforce合并比Subversion或Git更好。Git确实没有合并[...]”。你能解释一下吗?
Sverre Rabbelier 2011年

1
实际上,我发现Git非常适合合并,比老式的scm工具更令人愉快,但是当使用svn时,我想念能够像往常使用Perforce那样将其放入“请勿签入”变更列表中。(我曾尝试在SVN中执行此操作,但由于svn和p4更改列表的行为不同,最终仍会无意中进行检查)。
JasonTrue

12
@SverreRabbelier三年后,仍然有人在等待您的问题的答案。
纳文2014年

1
“因为Perforce更好”……“这不是一支球队比另一支球队更好的足球比赛”。...
RJFalconer 2014年

4
perforce很快。比svn或git快得多。---基准,或者没有发生...; p
sjas 2014年

14

我不知道“酒与饭”贿赂是否仍然适用,但是对于大多数管理者来说,当他们决定寻找一种产品时,会在各种出版物中读到(针对管理),并查看宣传该产品的小册子和小册子。美德。

猜猜,那些地方没有FOSS产品!

因此,几乎可以肯定的是,大多数管理采购决策都是由广告和营销驱动的。他们可能会执行评估,但是会评估其中一些产品。

另一个原因是由于成熟。我们今天使用的某些产品直到最近才足够稳定,可以用于严肃的业务用途,有些产品没有支持选项,有些产品没有作为业务解决方案的可靠记录。这些是需要考虑的重要问题(尽管作为技术人员,如果使用它们并使它们失败的风险对于保持业务正常运转的影响很小,我将很乐意评估FOSS解决方案),并且一些管理人员应该谨慎地避免将它们存在。他们对老板负责,如果产品背后有支持组织,他们会感到更加自在-毕竟,您有一个可以为您的企业服务的组织。

最后,尽管许多FOSS产品确实有支持(想想SVN的Collabnet或Wandisco),但它仍然获得“极客在他们的后卧室制造”的声誉。我们都知道这是一般B * * **吨和FOSS竞争令人难以置信的商业产品是最好的,但我的经理仍然需要被说服。也许他只是没有意识到未成熟和成熟的FOSS产品之间的区别;也许他不在乎。

无论如何,Perforce是一个很好的SCM,没有理由不选择它。对于其他SCM,我可以说同样的话,但在那之后,我只能说一些关于其他SCM的坏话,并且在涉及某些特定产品时仍然会做噩梦。


十年前,这是一个更具说服力的论点,但如今许多FOSS产品已成为主流。包括在一些大公司中使用的SVN。
Jeremy

我不在乎FOSS是否拥有合适的竞争产品-我在乎经理认为他们没有。此外,一些大型企业的发展确实很缓慢,因此他们仍然可以到达那里,其中一些需要再花几年的时间来考虑评估FOSS产品。
gbjbaanb

gbjbaanb你误会我了。我认为您所描述的因素在任何管理水平上都没有十年前那么重要。虽然这可能是您的情况,但将其概括化将是错误的。FOSS是主流,这意味着它被大多数大公司采用并用于核心系统。
杰里米

6
我认为这是关键点:FOSS工具不会自己做广告,真的是因为它们没有理由这样做。其中一部分是您提到的小册子和资料,但是即使我使用Google“比较SCM系统”或“比较版本控制系统”,我发现的唯一内容还是由Perforce完成。当然,我必须考虑来源,但是我不知道FOSS工具会努力宣传自己,并谈论为什么它们是最好的。我知道我们看不起商业主义,但有时营销和广告实际上可以帮助我做出明智的选择。
机遇

1
我认为有两个不选择Perforce的理由:1.分支非常昂贵,并且2.签出然后编辑过程使脱机工作很难协调。
凯文·克莱恩

14

因为诸如Perforce之类的工具具有推销员来用餐并负责购买的人,而Git却没有。当然,这只是我说话时的玩世不恭,但这是近距离观察过程带来的一种犬儒主义。

只是为了清楚起见:我并不是说您每次看到CIO都醉在大街上时,都希望在下个季度使用新的版本控制系统。只是许多组织在使用和获取之间存在脱节。当然,公司使用Perforce还有其他原因:例如,他们可能已经在其工作流程中的实施上投入了大量资金。但是总的来说-这个问题非常普遍-不使用FOSS工具没有功能上的优势。


13
听起来有些愤世嫉俗,但实际上您已经打中了要害。在我自己的公司中,我努力推广任何FOSS解决方案,因为高管认为,如果免费,那就没有好处。
wolfgangsz

1
对此,虽然当我用一种“企业”解决方案替换SVN解决方案时,我可能已经对其进行了一些改动,但这种解决方案花费了巨额的财富,需要顾问,2个承包商来管理它,并且经过大量的哭泣,咬牙切齿,有故障的操作生产力的丧失……被淘汰了,取而代之的是我们以前的SVN解决方案。
gbjbaanb

7
Google并不是真的以这种文化而闻名。
杰里米(Jeremy)

11
@Chance:您需要联系技术支持什么样的事情?我曾经使用过CVS,Subversion和Mercurial,但我从未发现自己希望有人可以打电话给我。如果我有问题,我会用谷歌搜索或发布问题,通常在几分钟之内就能解决。我建议需要系统开发人员支持的源代码控制工具存在严重问题。
Tom Anderson

2
@TobyAllen:大约六年了(请注意问题的日期),但是现在看来,即使Perforce也想使用Perforce之外的其他东西: perforce.com/git
Dmitri

12

我的公司拒绝使用许多开源软件的原因可能与此相同(我不同意):

当出现问题时,他们希望有人可以打电话并大喊大叫。


2
我同意:这是许多IT部门的重要原因,但似乎还不成熟。“这不是我们的错,这是他们的错”。仅仅由于“一根脖子要拧”手指的潜力而选择劣质产品似乎是一个幼稚的决定。并不是说它并不经常制造,只是它看起来很幼稚。
Bruce Ediger

您的答案与Perforce的技术支持无关。太糟糕了,因为如果您知道它有多好,那么您的答案可能就没有出来。Perforce的技术支持非常出色且坚定不移,他们可以快速解决问题。
Br.Bill

9

尽管所有答案都涉及使用P4的大公司(它们回答了Google为什么使用P4的原因),但Google继续使用Perforce的主要原因之一是Perforce允许您签出仓库的子树,而Git则不能。像Google这样的大型资源库可以发挥很大的作用。

据我所知,Facebook使用SVN和Git-SVN


1
绝对,subrepos鼓励并简化代码的重用。这就是为什么我对此事有发言权时选择Perforce的原因。大事了!轻松混合和匹配来自不同存储库(hg的子存储库)的代码,跟踪谁在使用特定的子存储库,能够轻松跟踪签入,分支和合并到所有存储库。一直以来,通过单一客户规范即可使最终开发人员变得非常简单,并将详细信息保留在分支规范中以供超级用户使用。现在,我被迫在一个大型项目上使用Mercurial,而处理汞的补货正在使生产力损失很多。
stephenmm 2012年

8

因为SVN很好,所以SVN和Perforce(比起工具来早4年)在某些方面比SVN更好。(我认为分支是其中之一。)

分布式一样,GIT是Dvcs 。对于公司团队而言,分散部分可能是无关紧要的。


5
您可以在不同的工作流程中很好地使用Git,因此分发不是问题……除非公司团队无能为力。whygitisbetterthanx.com/#any-workflow
M. Dudley

2
我不会说Perforce可以很好地进行分支...创建Perforce分支会导致所有分支的繁忙副本。SVN通过延迟复制分支,因此分支速度更快。
凯文·克莱恩

1
@Jason-Subversion上的分支发生的速度比我键入的速度快:“ svn cp ...; svn switch ...”在perforce上,分支创建非常复杂;创建分支规范,创建工作区,集成,提交。哎呀,perforce就是这样。没有快速简便的分支,我认为RCS本质上是不可用的。从净流量和增强速度来看,Perforce似乎是报废产品。
凯文·克莱恩

1
@kevin,我不确定您的分支方式如何,但我只是进行集成,提交部分。我从未制定过分支规范,也从未创建过要分支的工作区(尽管如果我决定在视图中排除目录,则可能不得不更改视图映射)。话虽这么说,我没有用svn做任何事情,所以我不能在这方面发表评论。
机遇

1
@kevin:您知道,某些事情“做得更好”不一定与执行此操作所需的CLI命令数量有关。只是对既不精通SVN也不精通Perforce的人的评论。
马丁的Ba

6

大公司倾向于购买大型,笨拙的“企业”版本控制系统的另一个原因:

IT部门的中高层管理人员将VCS视为每个项目都使用的东西,或者您可以强制使用它。强制使用VCS之后,为什么不在那里也添加一些“流程”呢?我的意思是,您有机会指定一个“企业级”系统,为什么不将其置于中央控制之下,并添加“灾难恢复”和一些“工作流功能”,因此您可以说“我们是CMM Level StraightJacket符合!”。VCS太容易成为目标,因此无法采用工作流执行功能。

至于某些变态的,粗糙的软件(Serena Dimensions)的选择,据说在巴哈马的几轮比基尼高尔夫运动以及几名20多岁的女性销售人员可以说服总监或副总裁。


无可奉告,但我想知道我们哪些承包商或经理必须参加比基尼高尔夫比赛!
gbjbaanb

5
我承认,比基尼高尔夫可能也会对我起作用。
2011年

5

大公司需要某种集中式模型。开发人员完成开发后,便会移交给客户支持。当他们必须梳理50-200个分布式开发人员存储库时,您真的要穿上支撑鞋吗?并且构建是基于中央存储库完成的,构建必须始终,始终,始终可追溯和可复制。当您第一次因某种愚蠢的专利侵权而上法庭时,就会学到这一点。

Git在此模型中效果不佳。如果您的公司规模较小,或者VPN访问能力较差,那才是真正的亮点。


2
这一切都与定义工作流程有关,集中式还是分散式都没有关系。尝试在中央存储库中梳理200个分支时,支持人员的工作变得轻松多了。总的来说,公司选择集中式解决方案是因为他们对此感到满意。与集中式共享存储库一起使用的DVCS没有明显的优势。
wadesworld 2011年

4

大多数大公司使用Perforce的原因之一可能是IT部门有更多的专业人员,他们对此有很多了解,并且有多年解决相关问题的经验。

我觉得将来公司可能会开始从Perforce转移到GIT ...我知道的大多数开发人员似乎都更喜欢它!另请访问http://whygitisbetterthanx.com/#git-is-fast,以获取有关为什么Perforce在未来几年内可能不那么占主导地位的更多证据!


4

以前,我们从一组VCS(我肯定知道以前使用过RCS,CVS,ClearCase,Perforce,也可能还有其他)切换到Perforce作为正在使用的独特系统。那不是一个小项目:迁移花费了一年的时间。负责团队(我不是团队成员)评估了多个VCS,并且至少考虑了git和svn以及已经使用的那些。我记得他们的报告,他们过滤掉了没有所需功能的工具,然后考虑了:

  • 典型使用情况下的性能,特别是对于远程站点

  • 资源需求

  • 改变工作习惯的重要性

  • 支持可用性和成本

Perforce总体上是一个明显的赢家。git在第一点上略胜一筹,但在其他方面则处于劣势。


3

曾几何时,不久前(IDE被称为VI)时,唯一的免费(开源)系统是CVS,RCS和SCCS。

  • 这些都无法很好地解决文件重命名的问题。
  • 他们没有记录合并,因此如果两个分支都在积极工作,则很难合并,直到在一个分支上完成工作为止。
  • 它们无法很好地扩展到非常大的代码库
  • 他们没有提供大型项目所需的访问控制和流程通知者级别。

那里有很多商业源代码控制系统,其中大多数是由单个机器供应商(IBM,DEC,HP等)提供的,并且只能在其硬件上运行。

然后,一些公司表示要出售包括Perforce和ClearCase在内的跨平台商业源代码控制。

ClearCase基于RPC构建,由于许多小型网络数据包被“往返”,RPC无法在广域网(仅互联网)上运行良好,IBM和Rational也将ClearCase视为“摇钱树”,但从没有表现出来爱。

因此,唯一仍普遍使用的“旧”商业源代码控制系统是Perforce。一旦使用了perforce并将其集成到构建系统和错误跟踪系统中,公司迁移到其他产品几乎不会带来短期利益

因此,总而言之,在没有太多其他选择的情况下,perforce便成为了“门口之门”,而且它们还没有弄得一团糟,无法让人离开

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.