Perforce是否值得? [英] Is Perforce worth it?

查看:217
本文介绍了Perforce是否值得?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的一位同事对PerForce的可能性感到兴奋(我们基本上需要一个很好的后勤组合补丁和更改,并且本机支持SCM将是非常好的)。我们目前使用的是CVS,并且可以让所有的用户使用。我们只是少数使用普通Eclipse并使用蚂蚁脚本运行构建的开发人员。



在跳水之前,我想听听技术上可以说的其他人好主意或坏主意。我也想听听你在日常工作中的侵扰。






编辑2011:只是为了纪录。我们迁移到git - 决定性的因素是我们使用Eclipse和eclipse.org去进行git,所以我们最终可以期待很好的IDE集成。我们有点儿早,直到今年夏天才开始了。今天,git在Eclipse中工作得很好。






2015年编辑:结果是,git最终成为无可争议的获奖者到github和一般的IDE支持,结合Maven终于使Java项目与IDE无关。

解决方案

2011年11月更新:



使用Git,作为强力推荐通过 Tilo 显然是一个更好的选择,原因有很多(分散化,私人提交,分支,合并,...)。

我完全了解集中式和分散式VCS之间的区别,详见描述使用版本控制(VCS或DVCS)的工作流程



但是,在大型企业中使用它 不容易

我知道。我在一个大型企业中介绍了Git:

我在 (虽然还说DVCS是非常有效的选择)



但是,我真的详细介绍了企业安装Git的主要难点 分布式版本控制系统和企业 - 一个好的组合?

我实际上已经提出了最新的代码2011(取代DevDays 2011)

演示文稿被称为在一个大公司介绍DVCS ,并且tweets是雄辩的:



  • Grundlefleck :我的总结:一个不仅仅是企业的成就

  • ben_sim :@VonC_重新定义#codeken2011的痛苦:重新编译git及其所有依赖关系,以便您可以在企业的生产服务器上使用它。


DVCS的诀窍是:您仍然需要一个服务器,这是一个集中的所有开发商获得他们的回购的祝福版本。

在一个大型公司中,这些互动的服务器是...互相混合的,已经有很多其他服务跑步,这意味着你不能傻st 添加您的Git(您不会在该服务器上拥有正确的库)。

加上,您需要自己的ssh和httpd才能将您的用户推送/拉/从该服务器。



我实际上已经在 GitHub项目compileEverything



所以是的,使用Git。

在客户端PC上,你可以安装并在几分钟内开始使用它!

但是在一个大型企业的服务器上?这不是那么容易。



记住2009年:




  • Git支持Windows是可能的,但仍在进行中,

  • Git本身不包括 smart http ,这意味着唯一具有拉/克隆和推送操作认证的协议是ssh:说服用户生成和管理公钥/私钥是...至少有问题。

    Https是可能的拉和克隆,即使请求是非常低效的。对于推送...设置涉及WebDAV并且是复杂的。智能Http更改了所有这些。

  • 授权层被笨重( gitosis )和 gitolite 几乎没有启动。

    您需要
    大型企业中的授权层。

    没有任何用户可以访问任何
    存储库,其中一些存储库是非常保密的。






原始答案,早在2009年:



在一个公司内,在一个封闭的集中式环境中,Perforce当然是一个很好的选择。

它确实检查你的工作区,快速,并且很好地管理变更集。

它支持默认锁定,这有助于查看在同一个文件中工作的人。



然而,你必须在同时与P4服务器始终,并应该有适当的基础设施来支持它,包括ng备份和DRP场景:如果没有服务器,你继续工作,删除一个文件,例如,它将不会在连续更新时恢复。



主要投诉我听到来自使用它的团队(因为我只对该工具做了一些管理任务)是文件间分支,起初有点混乱,但非常有用。



根据 Perforce with IDE(这里是eclipse)和编辑,主要的侵入方面将是以确保您的工作空间保持同步。



其他有趣的链接可供您阅读:




A colleague of mine has become excited about the possibilities with PerForce (we basically need an abillity to logistically group patches and changes, and having the SCM support this natively would be very nice). We currently use CVS and are open to all posibillities. We are only few developers who use plain Eclipse and run builds using ant scripts.

Before jumping into the water, I'd like to hear others who on technical reasons can say "Good idea" or "Bad idea". I'd also like to hear how intrusive this is in your daily work.


Edit 2011: Just for the record. We migrated to git - the decisive factor was that we use Eclipse and eclipse.org goes for git, so that we could expect very good IDE integration eventually. We were a bit early out - it was not until Eclipse 3.7 this summer. Today git works very nicely in Eclipse.


EDIT 2015: And it turned out that git ended up as the undisputed winner thanks to github and general IDE support which combined with Maven finally made Java projects IDE-agnostic.

解决方案

Update November 2011:

Using Git, as forcefully advocated by Tilo, is obviously a better choice for a number of reasons (decentralization, private commits, branching, merging, ...).
I am fully aware of the differences between Centralized and Decentralized VCS, as detailed in "Describe your workflow of using version control (VCS or DVCS)".

However, using it in an large enterprise is not easy.
I know. I introduced Git in a large enterprise:
I exposed the general reasons in "Can we finally move to DVCS in Corporate Software? Is SVN still a 'must have' for development?" (while still saying that DVCS is a very valid choice)

But I really detailed the major pain points in installing Git in enterprise in "Distributed Version Control Systems and the Enterprise - a Good mix?".
I have actually presented those pain points in the latest CodeKen 2011 (replacing the ex-DevDays 2011).
The presentation was called "Introducing DVCS in a big corporation", and the tweets were eloquent:

  • Grundlefleck: My summary: one does not simply git into enterprise
  • ben_sim: @VonC_ redefines pain at #codeken2011: recompiling git and and all its dependencies so you can use it on a production server in enterprise.

The trick with a DVCS is: you still need a "server", a centralized place for all the developers to get a "blessed" version of their repo.
And in a large corporation, those mutualized server are... mutualized, there are a lot of other services already running, which means you cannot just add your Git on it (you won't have the right libraries on that server).
Plus, you will need your own ssh and httpd for your user to push/pull to/from that server.

I have actually automated the installation process for Git and all its dependencies/related services in the GitHub project compileEverything.

So yes, use Git.
On a client PC, you can install and start using it in minutes!
But on a server of a large enterprise? This isn't so easy.

Remember 2009:

  • Git support on Windows was possible, but still in progress,
  • Git itself didn't include "smart http", which meant the only protocol with authentication for pull/clone and push operations was ssh: convincing users to generate and manage public/private keys is... problematic to say the least.
    Https was possible for pull and clone, even if the request was quite inefficient. For push... the setup involved WebDAV and was complex. Smart Http changed all that.
  • authorization layers was clunky (gitosis), and gitolite was barely starting.
    And you need an authorization layer in big enterprise.
    Not any user can access to any repository, some of said repositories are quite confidential.

Original answer, back in 2009:

Within a corporation, in a closed centralized environment, Perforce is certainly a good option.
It does checkout your workspace fast, and manage changeset nicely.
It supports "locking by default" which help to see who it working on the same file.

However, you must be in sync with the P4 server at all time, and should have the proper infrastructure to support it, including backup and DRP scenarios: if no server, and you go on working, deleting a file for instance, it will not be restored on successive updates.

The main complaint I hear from the teams using it (since I only do a bit of administration tasks on the tool) is the notion of "Inter-File Branching", a bit confusing at first, but very useful.

Depending on the level of integration of Perforce with your IDE (here eclipse) and editors, the main intrusive aspect will be to make sure to keep your workspace in sync.

Other interesting links for you to read:

这篇关于Perforce是否值得?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆