全国站
网站首页 娱乐 汽车 旅游 科技 军事 文化 财经 体育 健康养生 国际 综合 社会 时事 教育
当前位置: 龙甫新闻网 > 体育 > 澳门永利娱乐玩儿赛车游戏·为何Google、微软、华为将亿级源代码放一个仓库?从全球最大代码管理库说起
澳门永利娱乐玩儿赛车游戏·为何Google、微软、华为将亿级源代码放一个仓库?从全球最大代码管理库说起
时间:2020-01-11 16:17:32 点击:1094次

澳门永利娱乐玩儿赛车游戏·为何Google、微软、华为将亿级源代码放一个仓库?从全球最大代码管理库说起

澳门永利娱乐玩儿赛车游戏,作者 | 夕颜

编辑 | just

出品 | ai 科技大本营(id:rgznai100)

【导读】2017 年,在当时微软的一篇官方博客中,时任微软云开发服务副总裁的 brian harry 表示微软内部代码开始向 git 迁移,宣布推出针对大规模 repo 的“git虚拟文件系统”gvfs(后更名为 vfs for git)。他激动地分享了微软公司 4000 名工程师采用这个代码管理仓库后三个月的运行良好状况,称其解决了很多 git 存在的问题。

时隔两年之后,这篇文章中对 vfs for git 代码管理技术思路的介绍仍然值得借鉴。

大型科技公司本身拥有庞大的代码数据,并且每天都在产生数量巨大的新代码,如何管理代码和版本成为备受关注的问题。很多公司会选择将代码托管于 git 等第三方代码托管平台,但近年来,将代码管理交给公司自己开发的统一仓库成为一种趋势。如微软的 vfs for git 就是一个典型案例。

大公司应该如何进行代码管理?微软研发并采用 vfs for git 的过程和这个系统本身有哪些可以借鉴的地方?为了更深入了解 vfs for git 和代码管理相关问题,ai科技大本营(id:rgznai100)采访了微软亚洲研究院首席研发经理邹欣,他对这些问题进行了解答。

为什么要做 vfs for git?

邹欣回忆,在将代码迁移到 gvfs 前,微软曾使用多个主要的代码管理平台,包括 slm, source depot (上世纪 90 年代开始)、tfs 的源代码控制 tfvc (2006 年开始)。直到 2017 年,微软用三个月的时间完成代码迁移到 git,并推出了 git 的变种,针对特大 repo 的 gvfs,并沿用至今。

gvfs 是一个 git 虚拟文件系统,全称为 git virtual file system,允许 git 处理 tb 规模的代码库,比如 270 gb 的 windows 代码库。gvfs 的 v 就是 virtual(虚拟),它解决了git 原来的设计缺陷(每个客户端都有所有版本的代码),而是用虚拟文件来代替那些本地用不着的文件, 大大减少了文件传输和本地机器存储的压力,让微软内部技术人员可以进行高效协作。

一段小插曲是,gvfs 从发布之初就引起了争议,原因是 gnome 项目的虚拟文件系统也叫 gvfs,而 gnome 的 gvfs 最早发布于 2006 年,之后的教程、文档、论坛都沿用这个名字。在微软的 gvfs 项目发布后,很快超过了 gnome gvfs 项目的搜索排名,且由于二者都与虚拟文件系统有关,导致用户在查找信息时容易出现混淆。于是,很多开发者要求微软改名,经过一番周折后,微软终于在 2018 年将 "gvfs" 项目的名字改为 "vfs for git"。

邹欣表示,当时微软将代码迁移到 git 主要是为了统一微软百花齐放的内部工具,并没有一个绝对好的选择,领导团队选择了 git, 但从现在的结果来看,这是一个比较好的选择。如今,微软仍然在对 git 系列的工具做改进,也把改进回馈到 git 社区。

现在,vfs for git 已经是微软内部统一的工具,同时被其他大型企业采用:https://vfsforgit.org/

vfs for git 在 github 上也已开源:

github开源地址:https://github.com/microsoft/vfsforgit

除了微软,我们发现,很多大公司的代码托管已经向自己内部开发的版本控制系统迁移,比如 google 就把使用不同语言编写的超过 10 亿文件,近百 tb 源代码都存放在自行开发的版本管理系统 piper 中,只当项目开源且需要外部协作时,才会使用业界流行的 git。(详见文章《为何google将几十亿行源代码放在一个仓库?》)

再如华为的内源(inner source)平台,承载着华为 1100 亿源代码、60 万+ 代码仓库、每天 60 t 的下载容量、1 万次/秒的高峰并发下载。

这是否说明在大公司中流行的单一仓库就是最好的做法?这些公司在选择采用代码托管方式时需要考虑哪些不同的问题?

邹欣对 ai科技大本营进行解释,在他看来,用 gvfs 也可以创建各种独立的仓库。用一套工具有利于公司内部进行代码共享,让人员流动、代码复审、改进工具变得更简单,效率提高。

其次,大公司有很大量的代码,很长的历史和很多工具,如果贸然选择一个新工具就会出现以下问题:

a) 一些市面上的工具并不是为大规模代码设计的,处理不了大量代码, 我们以前用第三方的代码分析工具, 结果处理 office 的代码的时候,自己崩溃了,因为 office 的代码量太大,这个工具的开发者没有为如此大的代码设计软件。

b) 很多工具在历史中不断演化, 有自己独特的特点,很多和企业内部的某些特殊需求有关,外部工具很难都实现这样的功能。

很多工具联合在一起,会形成了一个工具的生态,但如果只改变一个工具,让其他的工具变得不兼容, 那整个团队的很多工作流就会出现问题。

此外,邹欣表示,代码托管与 ai 结合是未来发展方向。例如,这种结合会告诉你昨天晚上签入代码有问题, 或者签入代码和某个其他团队的代码相似,建议重用。或者告诉你签入的代码是从网上拷贝来的, 而且把原来代码中的 bug 也拷贝过来了。

最后,ai 科技大本营引用此前微软云开发服务副总裁 brian harry 于 2017 年发表的一篇博文内容,在微软推出 vfs for git 三个月后,他分享了该平台的更多细节及其未来目标,包括扩大开放源代码并改善其在 microsoft 上的运行表现,想要了解 vfs for git 更详细的信息,不妨仔细研读一下这篇文章:

用 git 管理 windows

在过去三个月中,我们已经基本完成了向 microsoft windows 团队推出 git/gvfs 的工作。

windows 代码库大约有 350 万个文件,当迁入 git 版本库时将产生 300gb 的存储量。此外,windows 团队约有 4000 名工程师,这个庞大的工程师系统每天都要处理成千上万次验证请求,在 440 个分支里进行 1760 次实验性变更。在所有的三个维度(文件计数、版本库大小和活动)都是令人生畏的扩展挑战,这些因素夹杂在一起使得这个工作变得异常困难。在迁移到 git 之前,这些数据储存在 40 多个不同的仓库里,我们需要跨越多个库进行操作。

网市新闻网

相关新闻
襄阳铁路警方开展“猎鹰-2020”战役,严打涉票违法犯罪活动
襄阳铁路警方开展“猎鹰-2020”战役,严打涉票违法犯罪活动
目前,顾某因涉嫌盗用身份证件案,已被襄阳铁路警方刑事拘留。另据了解,在“猎鹰-2020”战役中,襄阳铁路警方还抽调专门警力,以公开和便衣相结合的方式,在辖区开展打击工作。在此,襄阳铁路警方提醒广大旅客,一定要从正规渠道购买火车票,不要从陌生人手中购买,以免上当受骗,耽误行程。... [详情]
热点新闻
国六排放,是载货也是自卸车,带您见识飞碟奥驰3轴侧翻自卸车
国六排放,是载货也是自卸车,带您见识飞碟奥驰3轴侧翻自卸车
奥驰x6是一辆可用于短途运输或区域性运输的载货车,它最大的特点是还可以当自卸车用,不同于其它形式的自卸车,x6车厢为侧翻式。侧翻式自卸车都需要一个支撑点来稳定车身,避免倾斜角过大而导致翻车,奥驰在车尾单独设立一个液压缸,兼顾稳定与安全。标配气囊座椅,奥驰在这个领域算是少有配置气囊座椅的车型。同时,奥驰的绝对优势在于它满足国六排放标准,用户在购车后可一步跨入国六队列,提高使用年限,争取利益最大化。... [详情]
© Copyright 2018-2019 iaswedding.com龙甫新闻网 Inc. All Rights Reserved.