《电子技术应用》
您所在的位置:首页 > 模拟设计 > 业界动态 > 微软开源Scalar,提升操作巨型Git仓库的速度

微软开源Scalar,提升操作巨型Git仓库的速度

2020-02-19
来源:中国电子网
关键词: 软件 开源 微软

  Git属于分布式版本控制系统,默认情况下,每个Git仓库都具有整个历史记录的完整文件副本。即便是中等规模的开发团队也会产生数千个提交,每个月向仓库添加几百兆的数据。而随着仓库的占用空间增加,Git难以管理所有数据,导致其运行越来越不顺畅。如此一来,开发者的时间就会被浪费在执行命令后等待反馈的操作上,如使用git status获取被修改的文件,或者使用git fetch将代码拉取至本地。由于等待的时间过长,开发者大多会倾向于切换至完成另外的任务,待命令执行完成后再切换回来。而这种来回切换任务的工作方式常常会降低开发者的生产力。

  对于处理巨型Git仓库的问题,微软显然是颇有经验。毕竟Windows操作系统的代码就是使用Git进行管理,为了克服上述的问题,微软开发了VFS for Git(以前称为GVFS),此项目使用虚拟文件系统绕过了许多仓库大小的限制,所以Windows开发者在如此庞大的项目前也能正常使用Git。

8ff47954c88e6244e8c1c1ce2260a400.jpg

  在开发Vit for Git的同时,微软通过使用自定义跟踪系统和收集用户反馈来确定性能瓶颈。在此期间,微软也为Git客户端贡献了一些代码,包括提交树(Commit-Graph)功能以及对git push和稀疏检出的改进。基于这些贡献以及其他许多对Git的近期改进,微软启动了一个项目——无需虚拟文件系统即可支持巨型 Git仓库。这就是Scalar的诞生背景。

  Scalar 是一个使用C#编写的.NET Core应用程序,仅支持在Windows和macOS平台中运行。Scalar通过设置所建议的配置值和运行后台维护来最大程度优化Git命令的性能。无论开发者使用什么服务来托管代码仓库,Scalar都能有效地加速Git指令。微软提到,只要使用 Scalar为体积最大的代码仓库进行注册,就能马上感受到Git执行速度大的幅提升。

10fc8439b67b676545de0608a7c9cad0.jpg

  对于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一样容易使用。


本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。