当前位置:  开发笔记 > 前端 > 正文

您将为1000多个开发者组织使用哪个版本控制系统?为什么?

如何解决《您将为1000多个开发者组织使用哪个版本控制系统?为什么?》经验,为你挑选了5个好方法。

那里有很多SCM系统.有些开放,有些是封闭的,有些是免费的,有些是非常昂贵 哪一个(请只选择一个)你会用于一个拥有多个网站的3000多个开发者组织(有些网站背后的链接很慢)?解释为什么选择你选择的那个.(给出一些理由,而不只是"因为".)



1> SAL9000..:

对于如此庞大的安装,至少有以下主要要求:数据安全性,成熟度,稳健性,可扩展性,价格(无论每个座位的价格如何,每个座位许可证与开源源总是产生巨大差异),易于管理

我认为颠覆会很好.

支持(来自collabnet,clearvision,wandisco等).你可以问他们subversion是否能够处理你的任务.

subversion有一个非常成熟的数据库后端--FSFS.它绝对坚如磐石,自1.5以来它可以处理真正的许多修改,而不会降低性能.修订版本写在文件系统中.因此,subversion存储库的可靠性取决于文件系统,操作系统和存储系统的质量.

这就是为什么我建议使用ZFS作为文件系统的Solaris 10.ZFS为生产系统提供了非常好的文件系统功能.但最重要的是它提供了数据完整性校验和.因此,在subversion存储库中使用此数量的源代码,您不必担心存储库损坏,因为存在静默硬盘驱动器位错误或控制器或电缆位错误.到目前为止,ZFS已经足够成熟,可以安全地用作UFS或其他替代品.

我不知道硬件要求.也许Collabnet可以给你建议.

但是一个非常好的开始(可以用作NFS存储或备份存储,如果结果太慢 - 你肯定能够很好地利用它)将是第二代捶击器,即Sun Fire X4540服务器:您可以(全部在一个不错的4U机架式服务器为80.000 $(标价-这将有可能面议)):48 TB的磁盘空间!8个AMD皓龙CPU内核,64 GB内存,预安装Solaris 10,3年白金来自sun的软件和硬件支持.因此,这台服务器的硬件和支持价格仅为每个3000位开发人员25美元.

为了确保真正的数据安全性,您可以按如下方式对48个硬盘驱动器进行分区:3个驱动器用于操作系统(3路Raid-1镜像),3个热备件(未使用,在发生故障时待机)其他驱动器),一个zfs池,包含14个3路Raid 1镜像(14*3 = 42个驱动器),用于subversion存储库.如果您只想将14 TB ZFS Raid空间填充80%,那么这将是存储库大约10 Tebibyte的实际可用磁盘空间,即每个开发人员平均3 GB.

使用这种配置:Sun x4540捶击器上的Subversion 1.6具有10 TiB 3路Raid-1 ZFS冗余和校验和磁盘空间,这应该是一个非常严重的开始.

如果3000+开发人员的计算能力不足以购买更强大的服务器,而该服务器可能会占用捶击器的磁盘空间.如果磁盘性能太慢,您可以将大量快速scsi驱动器连接到计算服务器,并使用thumper作为备份解决方案.

当然,从collabnet获取有关此subversion服务器的规划和部署的咨询服务以及从sun获得对硬件和solaris操作系统的铂金支持是有意义的.

编辑(回答评论#1):对于分布式团队,可以进行主从配置:WebDAV-Proxy.每个本地团队都有一个从服务器,它复制存储库.开发人员从这个奴隶获得所有结账.签到密钥从从站转发到主站.通过这种方式,主设备始终是最新的.绝大多数流量都是结帐:每个开发人员都会在任何开发人员提交的内容中获得所有签名.因此,结账流量应该是拥有3000名开发人员的流量的99.97%.如果您有一个拥有50名开发人员的本地团队,结账流量将减少98%.签到应该不是问题:任何人输入新代码的速度有多快?显然,对于一个小团队,你不会买一个捶击者.您只需要一个具有足够硬盘空间的盒子(即如果您打算将洞穴存储库保存在10TB).它可以是raid5配置,因为数据丢失不是公司的终点.您也不需要Solaris.如果当地人对此感觉更舒服,你可以将linux放在上面.再说一次:如果这是一个合理的概念,请问一个像collabnet这样的顾问.有这么多座位,支付一次性咨询不应该是一个问题.他们可以建立整个事物.Sun提供预安装solaris的盒子.你有太阳支持.所以你不需要现场的solaris大师,因为配置不应该在接下来的几年里改变.这种配置意味着 在现场需要一名solaris大师,因为配置不应该在接下来的几年里改变.这种配置意味着 在现场需要一名solaris大师,因为配置不应该在接下来的几年里改变.这种配置意味着

从团队到总部的缓慢线路不会被多余的结账数据堵塞

本地团队的成员可以快速获得他们的结帐

它会大大减少捶击器的负载 - 这意味着使用这种配置你根本不必担心捶击器是否能够处理负载

它降低了带宽成本

编辑(在M3000发布之后):更加极端的硬件配置更多地针对疯狂的数据完整性,将是M3000服务器和J4500阵列的组合:

J4500存储阵列实际上是一个捶击器,但没有CPU电源和外部存储接口,使其能够连接到服务器.

M3000服务器是Sparc64服务器,具有中端价格,具有高端RAS功能.大多数数据路径,甚至CPU寄存器执行校验等RAM不仅ECC保护,但有IBM的Chipkill功能等价的:它的内存RAID:不是只检测单比特错误和纠正,但整个内存芯片可能会失败完全没有数据丢失 - 类似于RAID阵列中的硬盘驱动器故障.

由于ZFS文件系统在数据来之前或之后对数据进行基于CPU的错误校验和,因此存储控制器的质量和J4500的布线并不重要.重要的是M3000 CPU,内存,内存控制器等的位错误预防和检测功能.

Unfortuntely,高品质记忆棒太阳使用,以提高质量更是贵多少,四个核心(八个线程)的组合4GB内存M3000 + 48 TB J4500将大致相当于锤击,但如果你愿意为了将服务器内存从4GB增加到8,16或32 GB以用于内存缓存,价格急剧上涨.但是如果使用分布式团队的主从配置,那么4GB配置甚至可能就足够了.

如果管理层非常重视此3000开发人员存储库的源代码和数据完整性,那么这种硬件组合将值得考虑.然后,添加两个或更多个捶击器作为旋转备份解决方案也是有意义的(不需要防止硬件故障,但要防止管理员错误或在发生物理灾难时进行异地备份).

由于这将是Sparc而不是x86解决方案,因此可以免费获得该平台的经过认证的Collabnet Subversion二进制文件.

颠覆的优势之一也是出色的文档:O'Reilly(Version Control with Subversion)有一本优秀的书籍,也可以免费获得PDF或HTML版本.

概括起来:随着组合颠覆1.6 +的Solaris 10 + 3路-RAID-1冗余和校验和ZFS的本地团队+ Sun支持+的CollabNet /的ClearVision/orcaware /卡尔·沃格尔咨询+锤击+主从服务器复制+为所有开发人员提供优秀且免费的subversion手册,您应该提供解决方案

极高的数据安全性(对于如此多的源代码非常重要 - 您不希望破坏您的存储库,确实会发生位错误,硬盘驱动器会失败!)您有一个主数据存储库可以真正可靠地保存您的所有版本/修订版:源控制系统的主要特征.

成熟度 - Subversion已被许多公司和开源项目所采用.

可伸缩性 - 使用主从复制,您不应该在主服务器上出现负载问题:签入的负载可以忽略不计.结账由奴隶处理.

缓慢连接后的本地团队没有高延迟(因为复制)

低价:颠覆是免费的(没有每个座位费),优秀的免费文档,三年期间每个座位每年仅8美元主服务器的硬件和支持成本,奴隶便宜的linux盒,一次性咨询合作社等.另外,由于主从复制,带宽成本低.

易于管理:基本上不管理主服务器:subversion顾问可以部署所有内容.Sun工作人员将更换有故障的硬盘驱动器等.奴隶可以是Linux机箱或本地站点提供的任何管理技能.优秀的颠覆文档.


我曾经认为SVN与慢速网络连接一起运行良好...直到我使用Git :)
而且我认为人们实际上主张SVN的时代已经过去了.我吓坏了.

2> 小智..:

我曾在一些拥有1000多名员工的公司工作过,我发现他们都使用Perforce.

我问过"你为什么不用别的东西?SVN?Git?Mercurial?Darcs?" - 他们已经说过了(这对所有公司来说都是一样的) - 当他们做出决定时Perforce,无论是那个,还是SourceSafe,还是CVS - 老实说,考虑到这三个选择,我也会选择Perforce.

"更难"的版本控制系统很难获得如此多的人的关注,当你的大部分软件团队在彼此18英尺范围内工作时,DCVS的许多好处都不那么有用.

Perforce有许多API钩子供开发人员使用,而对于集中式系统,它有很多chutzpah.

我并不是说这是最好的解决方案 - 但我至少看过Perforce工作的一些非常大的公司,而且它几乎无处不在.


我认为大型开发商店的心态也是Perforce得到专业支持(我也为一对夫妇工作).当审核员来到时,他们感到不舒服,说他们的工程骨干是建立在OpenSource项目上的.Perforce对那些不了解的人来说更安全.

3> ceejayoz..:

Git是为Linux内核编写的,它可能是您可以找到公共信息的最接近的例子.



4> Sijin..:

我想说git,但不要认为那个规模的公司将成为所有Linux(Windows对git的支持仍然很糟糕).那么请使用Linux在git之前使用的SCM,即BitKeeper



5> Lanny..:

截至2015年,最重要的因素是使用分布式版本控制系统(DVCS).使用DVCS的主要好处是:通过减少源代码操作的摩擦,允许在多个级别进行源代码协作.这对于1000多个开发者组织尤为重要.

减少摩擦

单个开发人员签入与协作活动分离.轻量级登记表可以在短时间内(每小时或每天多次登记)鼓励清洁单位的独立工作.随着系统在分布式组织中建立,协作自然会以不同的,通常更长的时间尺度(每天,每周,每月与其他人同步)进行处理.

使用Git

在DVCS选项中,你应该只使用Git并利用GitHub或Bitbucket的优秀社区.对于大型私人组织,内部社区内部源代码托管可能很重要(有供应商销售私人托管系统,如Atlassian Stash和其他人).

使用Git的主要原因是它是最受欢迎的DVCS.因为这:

Git很好地集成到了广泛的开发工具链中

Git是大多数开发人员所熟知和使用的

Git是有据可查的

或Mercurial

作为Git的替代品,Mercurial也非常出色.Mercurial比Git具有更清晰,更正交的命令集.在2000年代后期,它曾经比Windows系统上的Git更好地支持,主要是因为核心开发人员更关心Windows.

GUI

对于那些想用的,而不是一个GUI谁githg在命令行上,SourceTree是一个伟大的Windows和OS X应用程序,它提出了一个干净的界面既Git和水银.

过时的建议书

截至2010年,我推荐水银与TortoiseHG.它是Windows支持和分布式版本控制功能的最佳组合.

从2006年到2009年,我推荐了Subversion(SVN),因为它是免费的,并且与大多数IDE有很好的集成.对于组织中旅行或喜欢更分散的模型的人来说,他们可以使用Git进行所有本地工作,但是当他们想要共享代码时仍然会提交到SVN存储库.这是集中式和分布式系统之间的重要平衡.请参阅Git-SVN速成课程以开始使用.使用SVN的最后也许是最重要的原因是TortoiseSVN,一个用于SVN的Windows客户端,可以让任何人右键单击访问存储库.在我的公司,这已被证明是向非开发人员提供存储库访问权限的好方法.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有