网站首页 > 精选文章 正文
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一样容易使用。
- 上一篇: 把一个 Git 仓库打包成 zip 压缩包
- 下一篇: vue实现滑块拖拽校验
猜你喜欢
- 2025-01-20 将 node_modules 目录放入 Git 仓库的优点
- 2025-01-20 把一个 Git 仓库打包成 zip 压缩包
- 2025-01-20 不同主机迁移git仓库Gitolite
- 2025-01-20 同步GIT仓库的操作 -- fetch命令
- 2025-01-20 git log 命令用法实例 (2)
- 2025-01-20 还在为 Git 仓库瘦身头疼?快来试试 repo-clean
- 2025-01-20 自建Git服务器 - 创建属于你自己的代码仓库,开启你的Git私服之旅
- 2025-01-20 中央仓库管理-基于工作空间和git-submodule实现共用和管理
- 2025-01-20 从零开始,小白也能学会的创建Git仓库实操
- 2025-01-20 无公网搭建私有GIT同步仓库思路
- 最近发表
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)