Git 2.37已经发布,这是它的新闻

推出 新版本 git 2.37, 这是其中之一 最流行的版本控制系统、可靠、高性能的软件,提供基于分叉和分叉合并的灵活的非线性开发工具。

为确保历史完整性和抗更改性,每次提交都使用所有先前历史的“向后”隐式哈希,还可以验证单个标签和提交开发人员的数字签名。

Git 2.37关键新功能

与以前的版本相比, 新版本接受了 395 处更改, 75 位开发者参与筹备,其中 20 位是首次参与开发。

在此新版本中,突出显示了 部分指数机制 (稀疏索引),它只覆盖存储库的一部分,se 已准备好广泛使用. 部分索引可以在执行部分克隆操作(稀疏签出)或对存储库的不完整副本进行操作的存储库中提高性能并节省空间。

新版本完成了工作 在命令中集成部分索引 “git show”、“git sparse-checkout”和“git stash”. 使用部分索引最显着的性能提升是在“git stash”命令中,在某些情况下速度提高了 80%。

另一个引人注目的变化是 实施了新的“cruft packs”机制 打包存储库中未引用的无法访问的对象(分支或标签未引用)。 垃圾收集器会删除无法访问的对象,但它们会在存储库中保留一段时间,然后再删除它们以避免竞争条件。 为了跟踪不可达对象的周期,需要绑定,它们被标记为相似对象的更改时间,这不允许它们存储在一个捆绑文件中,其中所有对象都有一个共同的修改时间。

将每个以前使用的对象保存在一个单独的文件中,该文件在存在大量新的无法访问的对象时会导致问题,目前还没有。 提议的“cruft packs”机制允许将所有无法访问的对象存储在一个捆绑文件中,并且每个对象的修改时间数据反映在一个单独的表中,该表存储在扩展名为“.mtimes”的文件中。

对于 Windows 和 macOS,有一个内置机制 跟踪对文件系统的更改,其中 无需列出整个工作目录 在执行诸如“git status”之类的操作时。 以前,要通过挂钩跟踪更改,您可以连接外部文件系统更改跟踪实用程序,例如 Watchman,但这需要安装额外的程序和配置。 此功能现在已内置并可通过“git config core.fsmonitor true”启用。

命令 “git sparse-checkout”已放弃对“--cone”模式替代方案的支持 部分克隆的模板定义,它允许在定义受克隆操作影响的存储库部分时,使用“.gitignore”语法列出单个文件,这不允许用于优化部分索引。

其他变化 脱颖而出:

  • 提高了配置 fsync() 调用以将更改刷新到磁盘的灵活性。
  • 在“core.fsyncMethod”参数中添加了对“batch”同步策略的支持,通过在单个 fsync() 调用刷新的重写缓存中累积更改来加快写入大量单独文件时的工作。
  • 诸如“git log”和“git rev-list”之类的遍历命令现在具有“–since-as-filter=X”选项来过滤有关早于“X”的提交的信息。
  • 在“git remote”命令中,指定“-v”标志提供有关存储库部分克隆的信息。
  • 新增“transfer.credentialsInUrl”设置,可以取值“warn”、“die”、“allow”。 如果参数“remote. .url”以纯文本形式指定凭据,如果“transfer.credentialsInUrl”设置设置为“die”,则尝试执行“get”或“push”操作将失败,或者如果设置为“warn”则发出警告。
  • 默认情况下,使用从 Perl 重写为 C 的“git add -i”命令的新交互模式实现。

最后 如果您有兴趣了解更多有关它的信息,您可以查看详细信息 在下面的链接中。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。