Git 2.36 源代码控制发布

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

与上一版本相比,新版本接受了 717 处变更,96 位开发者参与准备,其中 26 位开发者是首次参与开发。 主要创新:

  • “-remerge-diff”选项已添加到“git log”和“git show”命令中,它允许您显示合并的整体结果与处理后提交中反映的实际数据之间的差异“ merge”命令,它允许您直观地评估作为结果合并冲突解决方案所做的更改。 通常的“git show”命令用缩进分隔不同的冲突解决方案,使更改变得难以理解。 例如,在下面的屏幕截图中,没有缩进的“+/-”行表示在注释中将 sha1 的第一个分支重命名为 oid 的最后一次冲突解决,而有缩进的“+/-”表示最初的冲突dwim_ref() 函数的第二个分支中出现附加参数引起的解析。
    Git 2.36 源代码控制发布

    使用“--remerge-diff”选项时,不会为每个父分支分离冲突解决方案之间的差异,而是显示具有合并冲突的文件和已解决冲突的文件之间的总体差异。

    Git 2.36 源代码控制发布

  • 提高了通过 fsync() 函数调用自定义刷新磁盘缓存行为的灵活性。 之前可用的 core.fsyncObjectFiles 参数已拆分为两个配置变量 core.fsync 和 core.fsyncMethod 以允许 fsync 不仅应用于对象文件 (.git/objects),还应用于其他 git 结构,例如引用 (.git /refs)、reflog 和 pack 文件。

    通过 core.fsync 变量,你可以指定一个 Git 内部结构的列表,在写操作之后,fsync 将被额外调用。 core.fsyncMethod 变量允许您选择刷新缓存的方法,例如,您可以选择 fsync 使用同名系统调用,或者指定 writeout-only 使用 pending writeback(pagecache writeback)。

  • 为了防止操纵其他用户将.git 目录替换为共享分区的漏洞,加强了对存储库所有者的验证。 现在只允许在它们自己的“.git”目录中运行任何 git 命令。 如果存储库目录由其他用户拥有,默认情况下会抛出错误。 可以使用 safe.directory 设置禁用此行为。
  • 在“git cat-file”命令中添加了 --batch-command 选项,用于显示 Git 对象的原始内容,补充了以前可用的“--batch”和“--batch-check”命令能够通过指示“contents <object>”自适应地选择输出类型以显示内容,或通过“info <object>”显示有关对象的信息。 此外,还支持“flush”命令来刷新输出缓冲区。
  • “-oid-only”(“--object-only”)选项已添加到“git ls-tree”命令,用于列出对象树的内容,类比“-- name-only”,仅显示对象标识符以简化来自脚本的调用。 “--format”选项也已实现,允许您通过组合模式、类型、名称和大小信息来定义自己的输出格式。
  • 在“git bisect run”命令中,实现了本例不设置脚本可执行文件符号,输出代码为126或127的错误的定义(之前如果脚本无法运行,全部修改标记为有问题)。
  • 向“git fetch”命令添加了“--refetch”选项以获取所有对象而不通知另一方本地系统上已有的内容。 当无法确定本地数据的完整性时,此行为对于在失败后恢复状态很有用。
  • 为 git update-index、git checkout-index、git read-tree 和 git clean 命令添加了对稀疏索引的支持,以提高执行稀疏索引的存储库的性能并节省空间。克隆(稀疏结帐)。
  • “git clone --filter=... --recurse-submodules”命令的行为已更改,现在导致子模块的部分克隆(以前,在执行此类命令时,过滤器仅应用于主要内容,并且子模块被完全克隆而不考虑过滤器)。
  • “git bundle”命令中添加了对指定过滤器以选择性放置内容的支持,类似于部分克隆操作。
  • 向“git branch”命令添加了“--recurse-submodules”选项以递归遍历子模块。
  • Userdiff 为 Kotlin 语言提出了一个新的处理程序。

来源: opennet.ru

添加评论