微软开源 Scalar,提升操作巨型 Git 仓库的速度
Git 属于分布式版本控制系统,默认情况下,每个 Git 仓库都具有整个历史记录的完整文件副本。即便是中等规模的开发团队也会产生数千个提交,每个月向仓库添加几百兆的数据。而随着仓库的占用空间增加,Git 难以管理所有数据,导致其运行越来越不顺畅。如此一来,开发者的时间就会被浪费在执行命令后等待反馈的操作上,如使用git status
获取被修改的文件,或者使用git fetch
将代码拉取至本地。由于等待的时间过长,开发者大多会倾向于切换至完成另外的任务,待命令执行完成后再切换回来。而这种来回切换任务的工作方式常常会降低开发者的生产力。
对于处理巨型 Git 仓库的问题,微软显然是颇有经验。毕竟 Windows 操作系统的代码就是使用 Git 进行管理,为了克服上述的问题,微软开发了 VFS for Git(以前称为 GVFS),此项目使用虚拟文件系统绕过了许多仓库大小的限制,所以 Windows 开发者在如此庞大的项目前也能正常使用 Git。
在开发 Vit for Git 的同时,微软通过使用自定义跟踪系统和收集用户反馈来确定性能瓶颈。在此期间,微软也为 Git 客户端贡献了一些代码,包括提交树(Commit-Graph)功能以及对git push
和稀疏检出的改进。基于这些贡献以及其他许多对 Git 的近期改进,微软启动了一个项目 —— 无需虚拟文件系统即可支持巨型 Git 仓库。这就是 Scalar 的诞生背景。
Scalar 是一个使用 C# 编写的 .NET Core 应用程序,仅支持在 Windows 和 macOS 平台中运行。Scalar 通过设置所建议的配置值和运行后台维护来最大程度优化 Git 命令的性能。无论开发者使用什么服务来托管代码仓库,Scalar 都能有效地加速 Git 指令。微软提到,只要使用 Scalar 为体积最大的代码仓库进行注册,就能马上感受到 Git 执行速度大的幅提升。
对于 Scalar 的未来,微软希望将其贡献给 Git。微软计划把 Scalar 中加速 Git 的方法直接合并到 Git 项目中,最终实现让开发者不需要 Scalar,仅使用 Git 客户端就能获得这些性能改进。不过要达成这个目标,仍然有很长的路要走。微软提到,目前稀疏检出是 Scalar 用来解决仓库规模扩大的方法,尽管 Git 最近更新了稀疏检出功能,使得该功能更容易使用,但是要达到提供完整功能的阶段,还有一段距离。
Scalar 目前使用稀疏检出而非虚拟文件系统,因此在执行 Git 命令时会存在瓶颈,特别是git checkout
的速度不及 VFS for Git,微软正在研究并行版本的git checkout
,以提高执行性能。微软提到,为了真正地扩展 Git 服务以满足成千上万的工程师的需求,并构建与中央服务器交互的机器,Git 需要提供类似于 GVFS 缓存服务器的概念。他们也表示计划很快在邮件列表中提出这个想法。
另外,目前 Git 客户端仓库之所以能顺畅地执行,是依赖定期执行的前台垃圾回收器,但微软提到,对于巨型仓库来说,这是不可行的方法。因此微软计划在 Git 客户端中加入某种形式的后台维护功能,类似git maintenance start
命令,并像scalar register
一样容易使用。
详细的使用说明请查看 https://devblogs.microsoft.com/devops/introducing-scalar
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
FSF 骚操作:给微软寄硬盘,欲空手套代码
自由软件基金会(Free Software Foundation,FSF)在1月24日发起了一份请愿书,并征集大家的签名,呼吁微软将 Windows 7 作为自由软件提供,以聚集民间力量让这个系统继续“活下去”。 或许是看到了大家积极的回应,FSF 进行了一项更加激进的举措 —— 给微软邮寄了一块硬盘以及包含签名的请愿书,希望微软能将 Windows 7 源代码复制到硬盘,并提供使用许可的相关内容,然后再邮寄回 FSF。之后的事就无需微软操心了,FSF 会负责到底。 至于微软将会如何回应,目前不得而知。 自由软件基金会称: 鉴于其拥有所有必要的合法权利与措施,微软有权选择是否开源Windows—— 只待该公司一声问候,我们可随时为其提供力所能及的帮助。 尽管微软不大可能开放 Windows 7 的源码,但自由软件基金会表示将该操作系统的钥匙交由开源社区的提议,已经收到了热烈的反响。 过去几周,我们已经向其传达了这样的信息 —— 全世界成千上万的人希望 Windows 开源 —— 而我们将为其提供相应的媒介和支持。 此前,微软曾表示开源世界已对其显得尤为重要。因此即便该公司没有立即就此事...
- 下一篇
微软推出新版 Edge 路线图,Linux 支持在计划中
微软公布了基于Chromium 的 Edge 浏览器的路线图。路线图包括已计划的、还在讨论的、正在审核的以及尚未计划的功能。 根据最新的路线图,微软接下来首先要解决的是收藏夹同步问题,并启用不同设备之间的扩展同步。上周,微软已通过新版Edge 的 Canary 频道向测试人员推出同步扩展功能,此功能不需要标记/选项即可启用。 上述两项已计划的功能都将在二月实现,将在同一个月完成的功能还有:将自定义照片设置为“新标签页”背景照片,有多个配置文件时更好地处理链接。微软还预计在今年夏天完成“同步设备之间的浏览历史记录”功能。路线图中的其余功能则仍未得到具体时间安排。 一些计划中的重要功能还包括: 使 Edge 在 Linux 上可用 支持大声阅读 PDF 文件 清除浏览数据时,提供保留特定 cookie 的选项 将共享按钮添加到工具栏 添加在网页上书写的功能 提供不同的收藏夹排序方式 支持 Chrome 网上应用店的主题 禁止打开网站时自动播放音视频的选项 此外,微软还计划为浏览器框架提供透明主题、改进地址栏及其文字的大小、采用 Fluent 设计、使用方角而非圆角矩形选项卡,并引用经典版 ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8编译安装MySQL8.0.19
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7