微软不仅仅是一个热心的开源用户,公司现在正在使用Git版本控制系统来构建Windows。曾经的私有软件开发的主要例子是现在依赖开放源码来创建其标志性的操作系统。谁会想到呢?
事实上,如果你一直密切关注的话,你可能会这么做。早在2013年,微软就宣布了在VisualStudio开发工具套件和TeamFoundation应用生命周期管理技术中增加对Git的支持的路线图。同年晚些时候,微软技术研究员和TFS首席执行官布赖恩·哈里宣布微软将支持Git作为其分布式源代码控制平台。
并不是每个微软的人都喜欢这个想法,但正如哈里当时在博客中所言,“我们越关注它,它就越看起来是正确的。”
随着时间的推移,微软甚至为Git做出了重要的开源贡献。2017年,微软开源的Git虚拟文件系统(GVFS)获得麻省理工学院的许可.GVFS使微软的产品团队能够扩展Git客户端来处理其庞大的源代码需求。
从那时起,微软开始移植所有的,我的意思是,所有的Windows代码都是git和gvfs。这项工作在很大程度上已经完成,微软正在享用其开源劳动力的成果,在这个星球上创造了最大的Git回购协议。
哈利写道,"在过去的3个月中,我们主要完成了向MicrosoftWindows团队推出Git/GVFS的工作。"。那不是个小工作."Windows代码库大约为3.5M文件,当被检入Git回购时,会导致约300GB的回购。"
只是文件而已。“Windows团队大约有4000名工程师,工程系统每天在440个分支生产1760个”实验室构建“,以及数以千计的拉请求验证构建。所有3个维度(文件数量、回购规模和活动)都独立地提供了艰巨的缩放挑战,它们结合在一起,使创建一个伟大的体验变得难以置信地具有挑战性。”
哈利承认这是一次可怕的经历。“第一次也是最大的一次跳跃发生在3月22日,当时我们向Windows OneCore团队推出了大约2000名工程师。周五,那2000名工程师在源头仓库工作,周末回家,周一早上回来参加了一次基于Git的新体验。整个周末,我的团队里的人都屏住了呼吸,祈祷我们不会被一群愤怒的工程师打得喘不过气来,他们周一出现了,但他们无法完成任何工作。”
"令我惊讶的是,老实说,它非常顺利,工程师们从第一天起就很有成效。"
不是所有的顺利航行。"我们在第一周发现,我们的“拉请求”和“合并冲突解决”的UI简单地没有扩展到很大的变化。我们必须争相对列表进行虚拟化,并增量地获取数据,这样UI才不会挂起。我们在几天之内就解决了,总体来说,本周的情绪比我们预想的要好很多。"
今天,几乎所有的Windows开发人员都在使用Git。在接下来的几个月里,最后500名程序员将移动到Git。
他们完全有理由采取行动。哈利说:“系统运行的规模非常惊人,让我们看看一些数字。”
微软继续调优GVFS以供远程使用。哈里解释说:“Windows Team Services帐户位于美国西海岸的Azure数据中心.Windows工程师的克隆人的第80百分位数是127秒。由于我们的Windows工程师中有很高比例在雷德蒙德,这个数字是由他们主导的。”
“我们在北卡罗莱纳州的办公室进行了一次测试(该办公室距离我们更远,带宽网络也要低得多)。一个来自北卡罗莱纳州、没有代理服务器的克隆花了将近25分钟。在配置了一个最新的代理之后,它花了70秒(比雷德蒙德快,因为雷德蒙德团队不使用代理,他们必须穿越数百英里的互联网到达Azure数据中心)。70秒和近25分钟几乎是95%的进步。”
印象深刻?如果您使用GVFS,微软会很高兴的。毕竟,gvfs是一个开源项目,欢迎您试用。您所需要做的就是下载并安装它,创建一个带有Gitrepo的VisualStudioTeamServices帐户,这样就可以了。其他Git项目包括亚特兰西安原始树和吉特塔。
具有讽刺意味的是,目前还没有支持GVFS的LinuxGit客户端,而是Linux和Mac支持的内部Microsoft支持。SaeedNoursaleshi是Microsoft程控仪经理,在GVFS缺陷列表中写道,"是的,我们一定要支持Mac和Linux,我们正在寻找那些在这些平台上拥有文件系统专业知识的人。"
LinusTorvalds,Linux和Git的创建者,曾经说过,"如果微软曾经为Linux做过应用程序它意味着我已经赢了"。我认为微软也使用Git来创建Windows作为一个赢家。