Git 2.38 源代码控制发布

分布式源代码控制系统 Git 2.38 已发布。 Git 是最流行、可靠和高性能的版本控制系统之一,提供基于分支和合并的灵活的非线性开发工具。 为了确保历史记录的完整性和对追溯更改的抵抗力,在每次提交中都会使用整个先前历史记录的隐式哈希;还可以使用开发人员的数字签名来验证各个标签和提交。

与之前版本相比,新版本包含 699 处变更,由 92 名开发人员参与准备,其中 24 名开发人员首次参与开发。 主要创新点:

  • 主要结构包括“标量”实用程序,由微软开发用于管理大型存储库。 该实用程序最初是用 C# 编写的,但 git 包含了用 C 编写的修改版本。 新实用程序与 git 命令的不同之处在于,它默认启用在使用非常大的存储库时影响性能的附加功能和设置。 例如,当使用标量时,它适用:
    • 部分克隆可用于存储库的不完整副本。
    • 用于跟踪文件系统更改的内置机制 (FSMonitor),它允许您无需搜索整个工作目录。
    • 索引覆盖不同包文件(多包)中的对象。
    • 带有提交图索引的提交图文件,用于优化对提交信息的访问。
    • 后台定期工作,在后台维护存储库的最佳结构,而不阻塞交互式会话(每小时执行一次工作,主动从远程存储库下载新对象并使用提交图更新文件,以及打包过程存储库每晚启动)。
    • “sparseCheckoutCone”模式,限制部分克隆期间允许的模式。
  • 在“git rebase”命令中添加了 --update-refs 选项,以更新与正在移动的分支重叠的依赖分支,而不必手动签出每个依赖分支以切换到所需的提交。
  • 使“git rm”命令与部分索引兼容。
  • 改进了将文件从具有“cone”模式下的部分索引的工作区移动到不具有此模式的外部作用域时“git mv AB”命令的行为。
  • 位图文件格式已针对大型存储库进行了优化 - 添加了一个可选索引表,其中包含选定提交及其偏移量的列表。
  • “git merge-tree”命令实现了一种新模式,在该模式中,基于两个指定的提交,计算出具有合并结果的树,就好像这些提交的历史被合并一样。
  • 添加了“safe.barerepository”设置来控制在其他 git 存储库中托管裸存储库(不包含工作树的存储库)的能力。 当设置为“显式”时,将可以使用仅位于顶级目录中的裸存储库。 为了能够将裸存储库放置在子目录中,请使用“all”值。
  • “git grep”命令添加了“-m”(“—max-count”)选项,该选项类似于GNU grep中的同名选项,允许您限制显示的匹配项数量。
  • “ls-files”命令实现“--format”选项来配置输出字段(例如,您可以启用对象名称、模式等的输出)。
  • 在“git cat-file”中,当显示对象的内容时,可以考虑邮件映射文件中指定的作者电子邮件绑定。

来源: opennet.ru

添加评论