我们的开发商店目前使用 Visual SourceSafe。我们都知道这会如何结束(很糟糕),所以我们正在调查其他系统。首先是 Perforce。有没有人有使用它并将其集成到 Visual Studio (2003/2005/2008) 的经验?它是否和其他任何产品一样好,或者相对而言它是否具有良好的功能?
9 回答
我在最近的 3 份工作中使用了 Perforce(我目前的工作使用的是 Subversion,我几乎不喜欢它。)我是 Perforce 的忠实粉丝,从 SourceSafe 迁移它看起来就像 Nirvana。只需进行原子签入将对您的公司产生巨大的推动作用。否则,Perforce 速度很快,它有很好的工具,而且工作流程很简单,可以做合并和集成之类的事情。我全心全意地推荐它。它可能不像最新的分布式 VCS 那样全新和华丽,但老实说,我更喜欢客户端/服务器模型,因为它的速度,特别是如果你正在与其他国家的人一起工作,这些人可能与你的连接速度很慢。
Visual Studio 的集成非常好,但它有一些恼人的问题。如果您同时运行另一个 Perforce 客户端(如 P4V),那么在显示当前签入/签出哪些文件方面,它在保持来自另一个客户端的更改同步方面非常糟糕。如果希望正确同步,通常必须关闭 Visual Studio 并再次加载项目。但是,同步状态实际上并不会影响签入/签出/更新的正常工作,它只是意味着您可能会误以为某些东西处于与您在 Visual Studio 中实际不同的状态。Perforce 客户端将始终显示正确的状态,因为它们不断与数据库同步。
此外,有时您会发现您需要“离线”工作(由于某种原因未连接到 Perforce 数据库),当您下次再次加载项目时,您的 Perforce 绑定可能会丢失,您将不得不重新绑定每个项目单独。如果您使用包含许多项目的解决方案,这可能是一个很大的麻烦。当您第一次签出解决方案时也是如此,在集成发生之前需要绑定到 Perforce。
很难说每位用户 900 美元是一项好功能。
在最近切换到 SVN 之前,我们使用 Perforce 已经一年多了。虽然我确实喜欢这些工具(例如,视觉差异和合并以及管理位),但正如 Chris 所提到的,我们在绑定方面遇到了一些非常烦人的问题;否则,VS 集成是令人满意的。如果有的话,我发现使用 SVN 比使用 Perforce 更容易、更直观。TortoiseSVN(Windows Explorer shell 扩展)很棒,我们购买了几个 VisualSVN 许可证用于 VS 集成。与 Perforce 不同的是,VisualSVN 不能与 MS SCC 接口一起工作,而是直接与 SVN 客户端一起工作,我个人认为这是一个优势。Perforce 确实支持许多其他操作系统,但我们的非 Windows 开发人员也对 SVN 感到更舒服。如果我不得不再次选择,我会坚持使用 SVN。
Sourcegear Vault 是将 VSS 用户迁移到的最佳 SCM。
而且它便宜。
Perforce 可以在 Visual Studio 中正常工作,包括“离线”模式,其中 VS 将使您的本地文件可写并稍后与服务器同步。
我倾向于将 Perforce GUI 用于许多操作(提交、差异),只是因为它更快/更好,但 IDE 的检查过程是无缝的。
根据我的经验,Perforce 是坚如磐石的,如果成本不是一个因素的话,最好的混合(代码+数据)版本控制产品。
我最大的抱怨是 Windows 下的服务器性能远不如 *nix 下的好,如果你使用的是 *nix 服务器,它们不正式支持不区分大小写的文件名选项(这意味着你要么放弃支持与文件系统错误有关,或者设置一个触发器,如果 Foo.cpp 存在,则阻止人们添加 foo.cpp)。
我的另一个主要缺点是,对于一些常见的操作,您必须恢复到命令行,通常将函数连接在一起。一个示例是获取不在源代码控制下的目录中的文件列表。
不过,这两个问题都更多地反映在公司而不是产品上。IMO Perforce 知道他们处于市场顶端,因此认为没有理由投资修复此类问题。
我有使用 Perforce 衍生产品的经验。
从管理员的角度来看,这似乎很难管理,但从程序员的角度来看,它很好用。
再说一次,我对命令行版本控制很感兴趣,所以不能说 VS 集成。
几年来,我亲自使用并管理了许多从事 Perforce 和 Visual Studio 的团队。它工作得很好。可能有几个绑定/重新绑定的陷阱,但这些通常很容易解决 - Perforce 知识库和/或邮件列表是一个很好的信息来源。
同时使用命令行、可视客户端和 VS IDe 从来没有任何问题 - 刷新通常可以正常工作。
我们在公司中广泛使用 perforce,包括大型项目的分支、在 Sun Solaris 和 Windows 上的开发以及 120 多个用户。
它非常快,而且 Windows GUI (P4V) 非常好。Explorer 集成是可以接受的。我已禁用 VS 集成,并使用宏(调用 eg p4 edit
)来编辑/恢复/差异文件。VS 集成对于大型项目非常烦人(我们的解决方案有超过 130 个项目),但可能适用于较小的项目。
我没有使用过 Perforce,但我发现迁移到 Team Foundation Server 是使用 Visual Studio 时的最佳选择之一。