2019独角兽企业重金招聘Python工程师标准>>>

Git 2.18版本发布:支持Git协议v2,提升性能Git 2.18版本发布:支持Git协议v2,提升性能 新版本协议的主要驱动力是使 Git 服务端能够对各种 ref(分支与 tag)进行过滤操作。

这就意味着,Git 服务器无需将代码库中所有的 ref 一次性发送给客户端,再由客户端进行过滤。在大型的代码库中可能会存在不计其数的 ref,即使某些 ref 是客户端无需使用的,也不得不加载多达数个 MB 的 ref 数据。在使用 v2 协议之后,Git 服务器将根据客户端所需的操作类型,对 ref 进行过滤之后再将列表发送至客户端。Williams 举了一个例子,如果开发者所更新的分支仅比其远程分支落后几个提交,或是仅仅检查本地分支是否已更新,则完全没有必要在服务端传递整个 ref 列表,这对于时间和带宽都是一种浪费。Williams 表示,基于 Google 内部对协议 v2的使用,在访问例如 Chrome 这种包含了超过50万个分支和 tag 的大型仓库时,比起使用 v1 协议可达到三倍速以上。此外,通过使用新版本协议,更便于实现某些新的特性,例如按需选取 ref,以及拉取和推送 symref 等等。

支持协议 v2 的 Git 客户端仍然可以与尚未支持 v2 的旧版本服务端进行通信。这要感谢当初在设计时决定通过一个独立的通道发送 v2 所必须的额外信息。旧版本的服务端会直接忽略这个额外的通道,并返回 ref 的完整列表。

为了让开发者能够自行选择协议的版本,Git 现在添加了一个新的 -c 命令行选项,如以下示例:

git -c protocol.version=2 ls-remote 如果希望默认使用 v2 协议,可以修改 Git 的配置:

git config --global protocol.version=2 Git 2.18 中的另一个新特性是通过序列化的 commit graph 改善性能。简单来说,就是新版本的 Git 可以将 commit graph 的结构保存在某个文件中,并附加一些额外的元数据,以加速图形的加载。在进行获取列表,对提交历史进行过滤,以及计算合并的 base 等操作时,会表现得非常高效。这项功能是由微软的团队所实现的,该团队的成员 Derrick Stole 表示,对于大型代码库,例如 Linux kernel 或 Git 本身的代码库进行这类操作时,速度可提升 75–99%。Git 的 commit graph 仍然是一项处于实验性阶段的功能,因为某些 Git 特性无法很好地与 commit graph 相配合,例如浅克隆、对象替换,以及 commit graft 等等。如果不打算使用这些特性,可以通过运行 git config core.commitGraph true 命令启用 commit graph。

读者可在官方发布说明中了解 Git 2.18 的完整特性。

查看英文原文:Git 2.18 Adds Support for Git Protocol Version 2

原文来自:https://www.linuxidc.com/Linux/2018-07/153075.htm

本文地址:https://www.linuxprobe.com/git-2-18-git-v2.html编辑:周晓雪,审核员:逄增宝

转载于:https://my.oschina.net/u/3308739/blog/1860919

Git 2.18版本发布:支持Git协议v2,提升性能相关推荐

  1. 罗永浩回应做主播赚钱还债;360 否认裁员;Kubernetes 1.18 版本发布| 极客头条

    整理 | 屠敏 头图 | CSDN 下载自视觉中国 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦, ...

  2. 【Git】Git 基础命令 ( 添加暂存文件 git add | 提交文件至版本库 git commit | 查看版本库状态 git status | 查询文件修改 git diff )

    文章目录 一.添加暂存文件 git add 二.提交文件至版本库 git commit 三.查看版本库状态 git status 四.查询文件修改 git diff 一.添加暂存文件 git add ...

  3. CAP 2.3版本发布,支持 MongoDB

    前言 经过2个月的调整及测试,CAP 2.3 版本终于发布了,这个版本最大的特性就是对于 MongoDB 的支持,感谢博客园团队的keke同学对于 MongoDB 支持所提供的 PR,相信随着博客园的 ...

  4. git gui 历史版本_这些Git命令都不会,还是不要去面试了

    前言 以下,项目中经常使用的Git命令,汇总到这里以便与你能快速的学习和掌握Git命令,在文章最后有惊喜哟,一定要看到最后啊! 使用的 Git版本:git version 2.24.0 命令 git ...

  5. CTF之路:git项目本地版本库(.git文件夹)漏洞利用

    1.题目 BP监听数据包里有一个flag,base64试了一下,假的. 试试扫描后台目录,用御剑后台扫描珍藏版OK 题干提示用linux,kali linux平台有gobuster(但是扯淡的是202 ...

  6. OpenStack JUNO版本发布——支持Spark和NFV

    JUNO版本的重点更新内容: 包含了OpenStack Swift 2.0.0, 2.1.0, 2.2.0三个版本 存储策略 Keystone v3支持 服务器端账户到账户(account-to-ac ...

  7. 深蓝词库转换1.2版本发布——支持紫光拼音和拼音加加

    之前推出了深蓝词库转换工具,受到大家的欢迎,有朋友陆陆续续来信,希望增加一些实用的功能,于是乎今天深蓝词库转换1.2推出.该版本主要实现了3个新功能: 1.支持紫光拼音输入法的词库导入导出. 紫光拼音 ...

  8. OpenStack Juno 版本发布——支持Spark和NFV[转]

    作者:郑晨,OpenStack中国社区,转载请注明出处 美国时间2014年10月16日,OpenStack Juno版本正式发布,这是OpenStack开源云计算项目自2010年创立以来的第10个版本 ...

  9. git支持的协议大全

    1git协议 git可以使用四种主要的协议来传输资料:本地协议.HTTP协议.SSH协议以及Git协议.在此,将讨论不同协议的使用场景. 1.1本地协议 1.1.1基本知识 最基本的就是 本地协议(L ...

最新文章

  1. 用基于模型和接口的T4来生成RESTful服务
  2. php long2ip,php ip2long和long2ip函数实现
  3. JavaScript由哪三部分组成呢?
  4. SAP CRM调查问卷的评分和图表显示功能介绍 1
  5. 过防火墙一句话php2017,dedeCMS友情链接getshell漏洞利用
  6. SpringBoot | 用 IDEA构建第一个SpringBoot工程
  7. 西瓜视频 iOS 播放器技术重构
  8. 对 粒子滤波算法原理 的介绍,通俗易懂
  9. SketchUp 7 linux,SketchUp各版本有哪些兼容性更改?
  10. 移动端H5上传图片裁剪
  11. 系统登录页面短信验证码方式登录实现
  12. 如何在未越狱iOS设备上安装IPA
  13. Android内核的编译和调试
  14. 电脑故障维修大全 [3]
  15. 黑暗堵神传服务器维护是什么意思,神域之光8月8日停服维护公告
  16. 云计算模型 按需自助服务_数据中心云计算的安全策略
  17. internet协议服务器在哪,网络协议在哪设置
  18. 生态系统服务(InVEST模型)土壤保持、水源涵养、氮磷输出、生态保护、生物多样性、碳固
  19. STM32F103C8T6、FreeModbus从站的设计与测试(2)——硬件设计
  20. 曲线运动与万有引力公式_高中物理概念+公式大全

热门文章

  1. Android 数字签名学习笔记
  2. mysql集群安装配置
  3. 使用Javaweb实现在线调查问卷系统
  4. springboot+vue在线音乐网站
  5. SparkSQL核心编程
  6. hadoop完全分布式集群群起
  7. Structured Streaming从Kafka 0.8中读取数据的问题
  8. poj2739(尺取法+质数筛)
  9. DB2命令行查看执行计划
  10. unix awk手册读书笔记