Tho*_*sen 19 java eclipse git mercurial perforce
我的一位同事对PerForce的可能性感到兴奋(我们基本上需要在后勤上对补丁和更改进行分组,并且本机上的SCM支持非常好).我们目前使用CVS,并对所有可能性开放.我们只有少数使用纯Eclipse并使用ant脚本运行构建的开发人员.
在跳入水中之前,我想听听其他技术原因可以说"好主意"或"坏主意"的人.我也想知道这在你的日常工作中是多么的干扰.
编辑2011:仅供记录.我们迁移到git - 决定性的因素是我们使用Eclipse和eclipse.org用于git,因此我们最终可以期待非常好的IDE集成.我们有点早了 - 直到今年夏天的Eclipse 3.7.今天git在Eclipse中非常好用.
编辑2015:事实证明,git最终成为无可争议的赢家,这得益于github和一般的IDE支持,结合Maven最终使Java项目与IDE无关.
Von*_*onC 20
2011年11月更新:
正如Tilo 强有力地提倡的那样,使用Git 显然是一个更好的选择,原因有多种(分散,私人提交,分支,合并......).
我完全了解集中式和分散式VCS之间的区别,详见" 描述使用版本控制(VCS或DVCS)的工作流程 ".
但是,在大型企业中 使用它并不容易.
我知道.我在一家大型企业中介绍了Git:
我揭露了" 我们最终能否在公司软件中转向DVCS的一般原因?SVN仍然是'必须'用于开发吗? "(虽然仍然说DVCS是一个非常有效的选择)
但我真的详细介绍了在" 分布式版本控制系统和企业 - 一个好的组合? "中在企业中安装Git的主要难点.
我实际上已经在最新的CodeKen 2011中展示了这些痛点(取代了前DevDays 2011).
该演示文稿被称为" 在一家大公司中引入DVCS ",这些推文很有说服力:
- Grundlefleck:我的总结:一个并不简单地融入企业
- ben_sim:@VonC_重新定义#codeken2011的痛苦:重新编译git及其所有依赖项,以便您可以在企业的生产服务器上使用它.
使用DVCS的诀窍是:你仍然需要一个" 服务器 ",一个集中的地方让所有开发者获得他们的回购的"祝福"版本.
在一个大型公司中,这些共享服务器是......共享的,还有很多其他服务已经运行,这意味着你不能只在它上面添加你的Git(你不会在该服务器上拥有正确的库).
另外,您需要自己的ssh和httpd供用户推送/拉出该服务器.
我实际上已经在GitHub项目compileEverything中自动化了Git及其所有依赖项/相关服务的安装过程.
所以,是的,使用Git.
在客户端PC上,您可以在几分钟内安装并开始使用它!
但是在大型企业的服务器上?这不是那么容易的.
记住2009年:
原始答案,早在2009年:
在公司内部,在封闭的集中式环境中,Perforce肯定是一个不错的选择.
它可以快速检查您的工作区,并很好地管理变更集.
它支持"默认锁定",这有助于查看它在同一文件上工作的人.
但是,您必须始终与P4服务器保持同步,并且应该具有适当的基础结构来支持它,包括备份和DRP方案:如果没有服务器,并且您继续工作,例如删除文件,则不会在连续更新时恢复.
我听到团队使用它的主要抱怨(因为我只对该工具执行了一些管理任务)是" 文件间分支 " 的概念,起初有点令人困惑,但非常有用.
根据Perforce与IDE(此处为eclipse)和编辑器的集成级别,主要的入侵方面是确保您的工作区保持同步.
其他有趣的链接供您阅读:
Perforce非常重,尤其适合小团队.
我强烈考虑使用SVN或GIT,以获得良好的,良好支持的VCS,然后使用可用的工具和最佳实践(所有这些都可以从您友好的本地互联网上免费获得)来支持您需要的功能.
例如,使用SVN,您可以设置"bugtraq"属性,以帮助进行组更改.我们只需在每个错误修正提交中输入错误ID(您甚至可以在签入GUI表单中获得一个很好的输入字段)然后仍然将mutli-commit错误修正分组.
关于此功能的合理博客文章:http://markphip.blogspot.com/2007/01/integrating-subversion-with-your-issue.html
同样,它得到了工具的良好支持,这使得它成为我们几个团队的一个不错的调用.
我最近听说过关于GIT的更好的事情(哎呀,春天的家伙正在使用它,而且经常会说很多)但我们自己也在颠覆,所以我可以评论.
在工作中,我们过去常常使用Visual SourceSafe多年,然后在去年切换到Perforce.它绝对是昂贵的,我们还有一个在"构建"用户下运行的Ant构建脚本,它被视为一个有用的用户,它有点烧伤.该公司支付了为期2天的培训研讨会,所以这里的开发人员很快就加快了速度,但是仍然存在关于如何做foo等的问题(我是支持其他用户的小组的一部分)关于Perforce问题 - 主要是因为Visual Studio的工作方式,而不是真正的Perforce本身.
在使用Perforce方面,我认为最大的区别在于Perforce概念化跟踪变更的整个任务.例如,subversion保存一个名为.svn的目录来保存有关文件的元数据; 使用p4,p4服务器本身会保存您拥有的文件列表.这似乎是问题的最大来源 - 有人告诉p4服务器获取项目的最新文件,然后手动删除一些东西.当他/她再次向p4服务器询问最新消息时,p4服务器认为他/她已经拥有它,因此它不会更新.一旦人们"得到"这个,就会变得更加容易.您只需告诉服务器"从工作区中删除"然后再次获取它.
我们混合使用MS Visual Studio用户以及Eclipse和IntelliJ,并且p4插件支持所有这些工作非常好.入住/退房和获取最新的日常工作也不例外.我们大多使用基本功能,即便如此,它似乎是对Visual SafeSafe的改进(然后再次,从我看到有时在网上看到的咆哮,可能任何东西都是对Visual SourceSafe的改进).只要同时拥有多个开放式变更清单,我们就可以为我们的工作方式提供很多灵活性.似乎Perforce插件设置更喜欢静音检查,许多用户立即注意到,但我非常喜欢它,我认为总体而言,这是对生产力的改进.IDE将突出显示不同颜色的文件名,因此您可以查看是否已修改某些内容 - 并且p4更改列表始终显示您已检出的内容.
当多个用户签入文件更改时合并更改非常简单.差异工具并不是非常壮观,但我们可以很好地比较冲突,只需点击我们想要的.我应该注意gui工具非常好.这里的大多数开发人员都不使用p4v客户端,但有些人和我一直使用它.我提到gui工具很棒吗?您可以查看所有提交的更改列表,查看文件历史记录,将一个修订版拖放到任何其他修订版本并获得即时差异,查看显示分支历史记录的修订图,查看"延时"视图文件的修订版(非常简洁的功能 - 在顶部来回拖动滑块,并观察每个版本的文件内容更新).
我们只完成了一些代码分支,所以我们还没有很好的经验.到目前为止,它非常简单,合并更改也很容易.作为培训课程的一部分,每个人都获得了Perforce的技术副总裁或其他人编写的"Practical Perforce".关于处理代码行和分支的不同方法,有很多内容.我认为当我们使用SourceSafe时,我们在它能做的事情上是如此有限,我们只能以某种方式思考 - Perforce更加灵活,突然之间实际上可能有不同的哲学关于何时/如何/为什么应该设置代码行在这方面,我们仍在尝试分支和整合(合并)方面的许多事情.
PS双用户设置不需要许可证,仅限制您使用5个工作区.您可以不受时间限制地评估它.他们还为开源项目提供免费(但不受支持)的许可.
| 归档时间: |
|
| 查看次数: |
3777 次 |
| 最近记录: |