进击云原生

V2

2022/07/01阅读:12主题:自定义主题1

Git 2.37 带有稳定的内置文件系统监视器,改进了性能和安全性

Git 2.37 发布,带来重大变化!!

Git 源代码管理系统 2.37 版本周发布,新功能包括用于提高性能的内置文件系统监视器,现在在 Windows 和 Mac 上稳定,用于更好地管理已删除对象的杂乱包,以及完全集成支持稀疏克隆,避免了在只需要一部分时下载整个存储库的需要。

根据最近的一项调查,近 94% 的开发人员使用 Git,尽管我们的直觉是只有少数人探索更高级的功能。git 文档列出了大约 150 个命令

https://git-scm.com/docs/git

分为“porcelain”高级命令和“plumbing”低级命令,其中许多有子选项。尽管它已经成熟,但在性能、安全性和开发人员工作流程等领域还有很多工作要做。

文件系统监视器的目的是提高 git status 等命令的性能,这可能需要扫描整个工作目录。它在 Windows 和 macOS 上的 Git 中可用,并通过配置设置启用。复杂之处在于,Git 还支持使用外部文件系统监视器,通常是 Watchman,创新之处在于,以前实验性的内置文件系统监视器现在稳定,导致一些令人困惑的消息。

当使用多个版本的 git 时,像这样的新功能也会出现问题,这在 IDE 安装自己的版本时很常见。该文档尚未将 Linux 作为内置文件系统监视器的支持平台包括在内。

https://git-scm.com/docs/git-config#Documentation/git-config.txt-corefsmonitor

部分和稀疏克隆是另一个关键特性,在使用大型存储库时非常有意义。去年看到了稀疏索引的引入:

https://github.blog/2021-11-10-make-your-monorepo-feel-small-with-gits-sparse-index/

这可以在性能上产生巨大的差异,但需要注意的是并非所有 Git 命令都理解稀疏索引。那些未集成的会触发兼容性检查,在第一次读取索引时将稀疏索引转换为完整索引。

2.37 版扩展了对核心 Git 项目中所有命令的支持,现在包括 git show、git sparse-checkout 和 git stash,其中最后一个提供了“在某些情况下将近 80% 的加速”。

另一个名为 cruft packs 的新功能允许将无法访问的对象存储在单个文件中,并附有文件时间表,Git 团队称这避免了.git/objects 的碎片可能导致存储库性能下降甚至降低整个系统的性能。

https://git-scm.com/docs/cruft-packs

在诸如 <protocol>://<user>:<password>@<domain>/<path> 这样的 URL 中包含 git 凭据是一种安全风险,尤其是当该 URL 可能传递给其他 git 程序时。可以将新的 transfer.credentialsInUrl 设置设置为“warn”或“die”,以防止无意中使用此机制。

2.37 的发行说明在这里:

https://github.com/git/git/blob/v2.37.0/Documentation/RelNotes/2.37.0.txt,

高级软件工程师 Taylor Blau 的 GitHub 博客描述了这些变化:

https://github.blog/2022-06-27-highlights-from-git-2-37/

交流

请关注微信公众号【进击云原生】,扫码关注,了解更多咨询,更有免费资源供您学习

扫码关注,加群学习
扫码关注,加群学习

分类:

后端

标签:

后端

作者介绍

进击云原生
V2

公众号:进击云原生